Subversion Repositories FlightCtrl

Compare Revisions

Ignore whitespace Rev 1753 → Rev 1754

/branches/V0.80d-Arthur-P/Flight-Ctrl_MEGA644_V0_80d_SVN1749.elf
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
Property changes:
Added: svn:mime-type
+application/octet-stream
\ No newline at end of property
/branches/V0.80d-Arthur-P/Flight-Ctrl_MEGA644_V0_80d_SVN1749.map
0,0 → 1,2004
Archive member included because of file (symbol)
 
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
fc.o (__addsf3)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) (__addsf3x)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
fc.o (__fixunssfsi)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o)
fc.o (__floatsisf)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_merge.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_merge)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o) (__fp_split3)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o) (__fp_zero)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o) (__fp_nan)
libfc644.a(libfc.o) jetimenu.o (LIBFC_JetiBox_Putchar)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o)
uart.o (__mulsi3)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o)
main.o (__udivmodqi4)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o)
timer0.o (__udivmodhi4)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o)
uart.o (__divmodhi4)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o)
libfc644.a(libfc.o) (__udivmodsi4)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o)
uart.o (__divmodsi4)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o)
uart.o (__prologue_saves__)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o)
uart.o (__epilogue_restores__)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o)
analog.o (__tablejump2__)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o)
main.o (__do_copy_data)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o)
main.o (__do_clear_bss)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
uart.o (memcpy_P)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o)
libfc644.a(libfc.o) (memchr)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
eeprom.o (__eeprom_read_byte_1F2021)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
eeprom.o (__eeprom_read_block_1F2021)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
eeprom.o (__eeprom_read_word_1F2021)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
eeprom.o (__eeprom_write_byte_1F2021)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
eeprom.o (__eeprom_write_word_1F2021)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
eeprom.o (__eeprom_write_block_1F2021)
 
Allocating common symbols
Common symbol size file
 
KopplungsteilNickRoll
0x2 fc.o
MesswertGierBias 0x2 fc.o
SPITransferCompleted
0x1 spi.o
KopplungsteilRollNick
0x2 fc.o
RequiredMotors 0x1 eeprom.o
Parameter_Servo4 0x1 fc.o
GPSInfo 0x8 spi.o
EE_Parameter 0x71 eeprom.o
DiffRoll 0x2 fc.o
MesswertRoll 0x2 fc.o
TrimNick 0x2 fc.o
Parameter_NaviGpsP 0x1 fc.o
ErsatzKompassInGrad
0x2 fc.o
GyroFaktorGier 0x1 fc.o
MittelIntegralRoll2
0x4 fc.o
Parameter_NaviGpsModeControl
0x1 fc.o
TrimRoll 0x2 fc.o
SPI_TX_Buffer 0x2 spi.o
MesswertNick 0x2 fc.o
NC_Version 0x5 spi.o
SPI_BufferIndex 0x1 spi.o
Aktuell_ay 0x2 analog.o
ToNaviCtrl 0x20 spi.o
Data3D 0xe uart.o
Parameter_NaviGpsI 0x1 fc.o
Capacity 0x7 capacity.o
Timer3D 0x2 uart.o
SPI_ChkSum 0x1 spi.o
RohMesswertRoll 0x2 fc.o
MIN_GAS 0x1 fc.o
Parameter_NaviGpsACC
0x1 fc.o
MittelIntegralNick2
0x4 fc.o
Channels 0x1 rc.o
Debug_Timer 0x2 uart.o
RohMesswertNick 0x2 fc.o
IntegralFaktorGier 0x1 fc.o
fdknerTjg5i83th589v44
0x6 libfc644.a(libfc.o)
DiffNick 0x2 fc.o
MittelIntegralNick 0x4 fc.o
Parameter_Servo3 0x1 fc.o
VersionInfo 0xa uart.o
MotorTest 0x10 uart.o
SPI_RxBufferIndex 0x1 spi.o
NaviAccNick 0x2 fc.o
Parameter_J16Timing
0x1 fc.o
MittelIntegralRoll 0x4 fc.o
NeutralAccZ_float 0x4 analog.o
Parameter_Servo5 0x1 fc.o
SPI_RxDataValid 0x1 spi.o
PPM_in 0x34 rc.o
WinkelOut 0x8 uart.o
ExternControl 0xb uart.o
IntegralFaktor 0x1 fc.o
Aktuell_az 0x2 analog.o
FromNaviCtrl 0x1a spi.o
StartLuftdruck 0x2 analog.o
_printf_P 0x2 main.o
tmp_motorwert 0x18 fc.o
Kompass_Timer 0x2 uart.o
RxdBuffer 0xa0 uart.o
Mixer 0x4e eeprom.o
Display_Timer 0x2 uart.o
Parameter_NaviOperatingRadius
0x1 fc.o
TxdBuffer 0xa0 uart.o
SPI_Buffer 0x1a spi.o
Aktuell_Nick 0x2 analog.o
Aktuell_Roll 0x2 analog.o
IlIlIlIIIIIIIlIllllll
0x23 libfc644.a(libfc.o)
Aktuell_ax 0x2 analog.o
Parameter_NaviWindCorrection
0x1 fc.o
s 0x1 fc.o
h 0x1 fc.o
Mittelwert_AccNick 0x2 fc.o
Parameter_NaviSpeedCompensation
0x1 fc.o
DebugOut 0x42 uart.o
DruckOffsetSetting 0x1 analog.o
FromNaviCtrl_Value 0x5 spi.o
BLConfig 0x8 twimaster.o
Motor 0x60 twimaster.o
Aktuell_Gier 0x2 analog.o
Parameter_J17Timing
0x1 fc.o
MAX_GAS 0x1 fc.o
MesswertGier 0x2 fc.o
Parameter_J16Bitmask
0x1 fc.o
ConfirmFrame 0x1 uart.o
NaviAccRoll 0x2 fc.o
GyroFaktor 0x1 fc.o
m 0x1 fc.o
ErsatzKompass 0x4 fc.o
Mittelwert_AccRoll 0x2 fc.o
Parameter_NaviGpsGain
0x1 fc.o
fgfdogjWEti45e9tjh394
0x4 libfc644.a(libfc.o)
PPM_diff 0x34 rc.o
Parameter_ExternalControl
0x1 fc.o
Parameter_J17Bitmask
0x1 fc.o
Parameter_NaviGpsD 0x1 fc.o
 
Memory Configuration
 
Name Origin Length Attributes
text 0x00000000 0x00020000 xr
data 0x00800060 0x0000ffa0 rw !x
eeprom 0x00810000 0x00010000 rw !x
*default* 0x00000000 0xffffffff
 
Linker script and memory map
 
Address of section .data set to 0x800100
LOAD C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
LOAD main.o
LOAD uart.o
LOAD timer0.o
LOAD analog.o
LOAD menu.o
LOAD eeprom.o
LOAD twimaster.o
LOAD rc.o
LOAD fc.o
LOAD GPS.o
LOAD spi.o
LOAD led.o
LOAD Spektrum.o
LOAD mymath.o
LOAD jetimenu.o
LOAD capacity.o
LOAD debug.o
LOAD isqrt.o
LOAD C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a
LOAD libfc644.a
LOAD C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a
LOAD C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a
LOAD C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a
 
.hash
*(.hash)
 
.dynsym
*(.dynsym)
 
.dynstr
*(.dynstr)
 
.gnu.version
*(.gnu.version)
 
.gnu.version_d
*(.gnu.version_d)
 
.gnu.version_r
*(.gnu.version_r)
 
.rel.init
*(.rel.init)
 
.rela.init
*(.rela.init)
 
.rel.text
*(.rel.text)
*(.rel.text.*)
*(.rel.gnu.linkonce.t*)
 
.rela.text
*(.rela.text)
*(.rela.text.*)
*(.rela.gnu.linkonce.t*)
 
.rel.fini
*(.rel.fini)
 
.rela.fini
*(.rela.fini)
 
.rel.rodata
*(.rel.rodata)
*(.rel.rodata.*)
*(.rel.gnu.linkonce.r*)
 
.rela.rodata
*(.rela.rodata)
*(.rela.rodata.*)
*(.rela.gnu.linkonce.r*)
 
.rel.data
*(.rel.data)
*(.rel.data.*)
*(.rel.gnu.linkonce.d*)
 
.rela.data
*(.rela.data)
*(.rela.data.*)
*(.rela.gnu.linkonce.d*)
 
.rel.ctors
*(.rel.ctors)
 
.rela.ctors
*(.rela.ctors)
 
.rel.dtors
*(.rel.dtors)
 
.rela.dtors
*(.rela.dtors)
 
.rel.got
*(.rel.got)
 
.rela.got
*(.rela.got)
 
.rel.bss
*(.rel.bss)
 
.rela.bss
*(.rela.bss)
 
.rel.plt
*(.rel.plt)
 
.rela.plt
*(.rela.plt)
 
.text 0x00000000 0xf2d0
*(.vectors)
.vectors 0x00000000 0x7c C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
0x00000000 __vectors
0x00000000 __vector_default
0x0000007c __ctors_start = .
*(.ctors)
0x0000007c __ctors_end = .
0x0000007c __dtors_start = .
*(.dtors)
0x0000007c __dtors_end = .
*(.progmem.gcc*)
.progmem.gcc_sw_table
0x0000007c 0x24 analog.o
.progmem.gcc_sw_table
0x000000a0 0x24 menu.o
.progmem.gcc_sw_table
0x000000c4 0x2e twimaster.o
*(.progmem*)
.progmem.data 0x000000f2 0x120 main.o
.progmem.data 0x00000212 0x215 uart.o
0x00000212 ANALOG_TEXT
.progmem.data 0x00000427 0x39 analog.o
.progmem.data 0x00000460 0x51e menu.o
.progmem.data 0x0000097e 0xa2 eeprom.o
.progmem.data 0x00000a20 0x18 fc.o
.progmem.data 0x00000a38 0x47 Spektrum.o
.progmem.data 0x00000a7f 0xb6 mymath.o
0x00000a7f pgm_sinlookup
.progmem.data 0x00000b35 0xe7 jetimenu.o
0x00000b35 JetiBox_Menu
.progmem.data 0x00000c1c 0x1aa libfc644.a(libfc.o)
0x00000c44 Msg1
0x00000caa Rec_Spektrum_LOW_RES
0x00000c1c Msg2
0x00000c9c Rec_Jeti
0x00000cf8 Rec_PPM
0x00000c94 Rec_ACT_DSL
0x00000ce6 Rec_Spektrum
0x00000ccd Rec_Spektrum_HI_RES
0x00000dc6 . = ALIGN (0x2)
*(.init0)
*(.init1)
*(.init2)
.init2 0x00000dc6 0xc C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
*(.init3)
*(.init4)
.init4 0x00000dd2 0x16 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o)
0x00000dd2 __do_copy_data
.init4 0x00000de8 0x10 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o)
0x00000de8 __do_clear_bss
*(.init5)
.init5 0x00000df8 0x52 libfc644.a(libfc.o)
0x00000df8 ndfcvbghs
*(.init6)
*(.init7)
*(.init8)
*(.init9)
.init9 0x00000e4a 0x4 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
*(.text)
.text 0x00000e4e 0x4 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
0x00000e4e __vector_1
0x00000e4e __bad_interrupt
0x00000e4e __vector_6
0x00000e4e __vector_3
0x00000e4e __vector_23
0x00000e4e __vector_25
0x00000e4e __vector_11
0x00000e4e __vector_13
0x00000e4e __vector_17
0x00000e4e __vector_19
0x00000e4e __vector_7
0x00000e4e __vector_27
0x00000e4e __vector_5
0x00000e4e __vector_4
0x00000e4e __vector_2
0x00000e4e __vector_21
0x00000e4e __vector_15
0x00000e4e __vector_29
0x00000e4e __vector_8
0x00000e4e __vector_14
0x00000e4e __vector_10
0x00000e4e __vector_16
.text 0x00000e52 0x9f0 main.o
0x00000ebc LipoDetection
0x00000e52 CalMk3Mag
0x00000fd0 main
.text 0x00001842 0x12cc uart.o
0x00001842 __vector_22
0x000024e6 UART_Init
0x00001d2a BearbeiteRxDaten
0x00001a7e AddCRC
0x0000256e DatenUebertragung
0x00001c56 Decode64
0x00001ade SendOutData
0x000018ae __vector_20
0x000024d6 uart_putchar
.text 0x00002b0e 0xb5c timer0.o
0x00002d1c SetDelay
0x00002d90 TIMER2_Init
0x00002e10 Timer_Init
0x00002d2e CheckDelay
0x00002d46 Delay_ms
0x00002d60 Delay_ms_Mess
0x00002e3e __vector_9
0x00002b0e __vector_18
.text 0x0000366a 0xa46 analog.o
0x000038f8 __vector_24
0x0000372a SucheGyroOffset
0x0000366a ADC_Init
0x00003676 SucheLuftruckOffset
.text 0x000040b0 0x15a2 menu.o
0x000040b0 LcdClear
0x000040c2 Menu_Putchar
0x000040d8 Menu
.text 0x00005652 0xa8c eeprom.o
0x00005d52 SetActiveParamSet
0x00005674 EEProm_Checksum
0x00005cba GetParamByte
0x00005acc ParamSet_DefaultSet3
0x00005df0 MixerTable_ReadFromEEProm
0x00005652 RAM_Checksum
0x00005cc6 SetParamByte
0x00005cd0 GetParamWord
0x00005cda SetParamWord
0x00005e70 MixerTable_Default
0x00005ce4 ParamSet_ReadFromEEProm
0x00005e34 MixerTable_WriteToEEProm
0x00005d6c ParamSet_WriteToEEProm
0x00005f1c ParamSet_Init
0x00005efe GetActiveParamSet
0x000058da ParamSet_DefaultSet2
0x000056e6 ParamSet_DefaultSet1
0x0000569c ParamSet_DefaultStickMapping
.text 0x000060de 0x912 twimaster.o
0x0000612a I2C_Reset
0x000060de I2C_Init
0x0000674e I2C_WriteBLConfig
0x000068a2 I2C_ReadBLConfig
0x00006170 __vector_26
.text 0x000069f0 0x4f8 rc.o
0x00006a28 __vector_12
0x000069f0 rc_sum_init
.text 0x00006ee8 0x5854 fc.o
0x00006ee8 CopyDebugValues
0x000087cc SendMotorData
0x000077dc Mittelwert
0x000070fc Piep
0x0000713e CalibrierMittelwert
0x00007280 SetNeutral
0x00008838 ParameterZuordnung
0x00008cf4 MotorRegler
.text 0x0000c73c 0x54 GPS.o
0x0000c73c GPS_Neutral
0x0000c77e GPS_BerechneZielrichtung
.text 0x0000c790 0x87e spi.o
0x0000c8e8 UpdateSPI_Buffer
0x0000cf8c SPI_StartTransmitPacket
0x0000c7d2 SPI_TransmitByte
0x0000c790 SPI_MasterInit
.text 0x0000d00e 0x218 led.o
0x0000d00e LED_Init
0x0000d02c LED_Update
.text 0x0000d226 0x4ac Spektrum.o
0x0000d226 SpektrumUartInit
0x0000d2dc SpektrumBinding
0x0000d440 SpektrumParser
.text 0x0000d6d2 0xa8 mymath.o
0x0000d76a c_cos_8192
0x0000d6d2 c_sin_8192
.text 0x0000d77a 0x5a6 jetimenu.o
0x0000da88 Menu_Battery
0x0000d77a Menu_Status
0x0000db42 Menu_PosInfo
0x0000d960 Menu_Temperature
0x0000dc76 JetiBox_Update
.text 0x0000dd20 0x1a8 capacity.o
0x0000dd4e Capacity_Update
0x0000dd20 Capacity_Init
.text 0x0000dec8 0x100 isqrt.o
0x0000dec8 isqrt32
0x0000df74 ihypot
0x0000df32 isqrt16
.text 0x0000dfc8 0xf7c libfc644.a(libfc.o)
0x0000eed2 __vector_28
0x0000ec04 LIBFC_ReceiverInit
0x0000e07e FGRT0589rge90gj459gg4
0x0000ed38 LIBFC_Init
0x0000e348 LIBFC_JetiBox_Clear
0x0000e2a0 FGtj76uzh56z3grEg5t45
0x0000e4ca __vector_30
0x0000e35a INiuzBtergGIBuB76T0G5
0x0000e322 LIBFC_JetiBox_Putchar
0x0000e628 IIllllIllIlllIIlllII
0x0000eeb0 LIBFC_Polling
0x0000e43c a48784362857632195659
0x0000e5e4 fgmjgnrtuth587th9rTrw
0x0000eb6a LIBFC_GetCPUType
0x0000dfc8 fomklkdtn89SFGrsgt9rf
0x0000e586 njkvnfuhgbuzrgezgf483
0x0000e422 KLNMIOHMUHG76GFGr43r3
0x0000e1ac DFGeefWEF43tgt5uGreg5
0x0000e606 wqqeRT45jth8g758735h4
0x0000ebc2 awokdjwqdjcjuhcuweih
0x0000e33c LIBFC_JetiBox_SetPos
0x0000e5b4 lkvgnfdgun57th38rgh84
.text 0x0000ef44 0x1a C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
0x0000ef44 memcpy_P
.text 0x0000ef5e 0x1a C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o)
0x0000ef5e memchr
0x0000ef78 . = ALIGN (0x2)
*(.text.*)
.text.fplib 0x0000ef78 0xa C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
0x0000ef78 __subsf3
0x0000ef7a __addsf3
.text.fplib 0x0000ef82 0x7c C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o)
0x0000ef82 __addsf3x
.text.fplib 0x0000effe 0x36 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
0x0000effe __fixsfsi
0x0000f024 __fp_lneg
0x0000effe __fixunssfsi
.text.fplib 0x0000f034 0x18 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o)
0x0000f038 __floatsisf
0x0000f034 __floatunssisf
.text.fplib 0x0000f04c 0x3a C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_merge.o)
0x0000f056 __fp_merge
.text.fplib 0x0000f086 0x52 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
0x0000f086 __fp_split3
0x0000f08c __fp_split2
0x0000f09e __fp_split1
0x0000f0ba __fp_split_a
.text.fplib 0x0000f0d8 0xa C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o)
0x0000f0d8 __fp_zero
0x0000f0de __fp_zerox
.text.fplib 0x0000f0e2 0x6 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o)
0x0000f0e2 __fp_nanERANGE
0x0000f0e2 __fp_nan
0x0000f0e2 __fp_nanEDOM
0x0000f0e2 __fp_nanx
.text.libgcc 0x0000f0e8 0x3e C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o)
0x0000f0e8 __mulsi3
.text.libgcc 0x0000f126 0x18 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o)
0x0000f126 __udivmodqi4
.text.libgcc 0x0000f13e 0x28 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o)
0x0000f13e __udivmodhi4
.text.libgcc 0x0000f166 0x26 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o)
0x0000f166 __divmodhi4
0x0000f166 _div
.text.libgcc 0x0000f18c 0x44 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o)
0x0000f18c __udivmodsi4
.text.libgcc 0x0000f1d0 0x36 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o)
0x0000f1d0 __divmodsi4
.text.libgcc 0x0000f206 0x38 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o)
0x0000f206 __prologue_saves__
.text.libgcc 0x0000f23e 0x36 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o)
0x0000f23e __epilogue_restores__
.text.libgcc 0x0000f274 0xc C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o)
0x0000f278 __tablejump__
0x0000f274 __tablejump2__
.text.eeprom 0x0000f280 0x10 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
0x0000f280 __eeprom_read_byte_1F2021
.text.eeprom 0x0000f290 0xa C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
0x0000f290 __eeprom_read_block_1F2021
.text.eeprom 0x0000f29a 0xa C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
0x0000f29a __eeprom_read_word_1F2021
.text.eeprom 0x0000f2a4 0x18 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
0x0000f2a4 __eeprom_write_byte_1F2021
.text.eeprom 0x0000f2bc 0xa C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
0x0000f2bc __eeprom_write_word_1F2021
.text.eeprom 0x0000f2c6 0xa C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
0x0000f2c6 __eeprom_write_block_1F2021
0x0000f2d0 . = ALIGN (0x2)
*(.fini9)
*(.fini8)
*(.fini7)
*(.fini6)
*(.fini5)
*(.fini4)
*(.fini3)
*(.fini2)
*(.fini1)
*(.fini0)
0x0000f2d0 _etext = .
 
.data 0x00800100 0xf4 load address 0x0000f2d0
0x00800100 PROVIDE (__data_start, .)
*(.data)
.data 0x00800100 0x4 main.o
0x00800102 PlatinenVersion
0x00800100 BattLowVoltageWarning
0x00800101 SendVersionToNavi
.data 0x00800104 0x4 uart.o
0x00800104 MeineSlaveAdresse
0x00800105 PcZugriff
0x00800107 UebertragungAbgeschlossen
0x00800106 DebugTextAnforderung
.data 0x00800108 0x9 timer0.o
0x00800108 BeepMuster
.data 0x00800111 0x10 analog.o
0x0080011f UBat
0x00800114 AnalogOffsetNick
0x00800112 AnalogOffsetGier
0x0080011b HiResRoll
0x00800111 AdReady
0x00800113 AnalogOffsetRoll
0x00800115 MessLuftdruck
0x00800117 Luftdruck
0x0080011d HiResNick
.data 0x00800121 0x51 menu.o
0x00800121 MaxMenue
0x00800122 DisplayBuff
.data 0x00800172 0x21 eeprom.o
.data 0x00800193 0x2 twimaster.o
0x00800193 I2CTimeout
.data 0x00800195 0x1 rc.o
0x00800195 NewPpmData
.data 0x00800196 0x4b fc.o
0x0080019e Parameter_CouplingYawCorrection
0x008001b7 Umschlag180Nick
0x008001b1 Ki
0x008001b0 Parameter_Luftdruck_D
0x0080019d Parameter_DynamicStability
0x008001a7 Parameter_Gyro_Gier_P
0x008001ac Parameter_KompassWirkung
0x008001a3 Parameter_ServoNickControl
0x008001a9 Parameter_Gyro_P
0x008001aa Parameter_Gyro_D
0x008001ae Parameter_Hoehe_P
0x0080019f Parameter_AchsKopplung2
0x0080019b ExternHoehenValue
0x008001ad Parameter_Hoehe_ACC_Wirkung
0x00800197 GIER_GRAD_FAKTOR
0x008001a1 Parameter_LoopGasLimit
0x008001a0 Parameter_AchsKopplung1
0x008001a8 Parameter_Gyro_I
0x008001a6 Parameter_Gyro_Gier_I
0x008001b3 Umschlag180Roll
0x008001af Parameter_MaxHoehe
0x008001a4 Parameter_I_Faktor
0x008001ab Parameter_Hoehe_GPS_Z
0x00800196 VarioCharacter
0x008001a2 Parameter_ServoRollControl
0x008001bb KompassSignalSchlecht
0x008001a5 Parameter_Gier_P
.data 0x008001e1 0xb spi.o
0x008001e1 SPI_CommandSequence
0x008001eb FromNC_Rotate_C
0x008001ea NaviDataOkay
.data 0x008001ec 0x2 led.o
0x008001ed J16Mask
0x008001ec J17Mask
.data 0x008001ee 0x1 Spektrum.o
.data 0x008001ef 0x4 libfc644.a(libfc.o)
0x008001f0 kf089uwjef89234hffhh
0x008001ef md5
0x008001f1 f8jhreghreGerg45gE542
*(.gnu.linkonce.d*)
0x008001f4 . = ALIGN (0x2)
*fill* 0x008001f3 0x1 00
0x008001f4 _edata = .
0x008001f4 PROVIDE (__data_end, .)
 
.bss 0x008001f4 0x6ae
0x008001f4 PROVIDE (__bss_start, .)
*(.bss)
.bss 0x008001f4 0x8 main.o
0x008001f5 FlugSekunden
0x008001f9 FlugMinuten
0x008001f7 FlugMinutenGesamt
0x008001f4 FoundMotors
.bss 0x008001fc 0x21 uart.o
0x0080020d SioTmp
0x008001fe Display_Interval
0x00800205 PC_DebugTimeout
0x00800210 GetVersionAnforderung
0x0080020b NeueKoordinateEmpfangen
0x00800200 Intervall3D
0x00800211 DebugDataAnforderung
0x00800204 PC_MotortestActive
0x0080020c NeuerDatensatzEmpfangen
0x00800212 DebugDisplayAnforderung
0x00800202 DebugDataIntervall
0x0080020a CntCrcError
0x008001fc AboTimeOut
0x0080020f GetPPMChannelAnforderung
0x00800213 DebugDisplayAnforderung1
0x0080020e DisplayLine
0x00800214 GetExternalControl
0x00800207 pRxData
0x00800206 RxDataLen
0x00800209 AnzahlEmpfangsBytes
.bss 0x0080021d 0x1b timer0.o
0x00800222 SendSPI
0x00800223 beeptime
0x0080021f ServoNickValue
0x00800228 CountMilliseconds
0x00800221 ServoActive
0x00800225 cntKompass
0x00800227 UpdateMotor
0x0080021d ServoRollValue
.bss 0x00800238 0x32 analog.o
0x00800241 messanzahl_AccHoch
0x00800238 ZaehlMessungen
0x0080023a VarioMeter
0x0080023c ExpandBaro
0x0080024a AdWertRoll
0x00800244 AdWertAccNick
0x0080024c AdWertNick
0x0080024e AdWertGierFilter
0x00800248 AdWertGier
0x00800252 AdWertNickFilter
0x00800246 AdWertAccRoll
0x0080023d SummenHoehe
0x00800250 AdWertRollFilter
0x00800242 AdWertAccHoch
.bss 0x0080026a 0x3 menu.o
0x0080026c DispPtr
0x0080026b MenuePunkt
0x0080026a RemoteKeys
.bss 0x0080026d 0xf twimaster.o
0x00800274 motor_write
0x00800271 BLFlags
0x00800276 twi_state
0x00800272 MissingMotor
0x00800273 motor_read
0x00800275 dac_channel
0x0080026f BLConfig_WriteMask
0x0080026d BLConfig_ReadMask
.bss 0x0080027c 0x71 rc.o
0x0080027c tmpChannels
.bss 0x008002ed 0xfb fc.o
0x00800341 Mess_Integral_Gier2
0x0080030d LageKorrekturRoll
0x0080031b StickGier
0x00800303 Looping_Oben
0x00800351 Mess_IntegralNick2
0x008002ed FCFlags
0x00800371 IntegralNick2
0x00800321 SenderOkay
0x008002fe Parameter_UserParam5
0x0080035d IntegralAccZ
0x00800359 Integral_Gier
0x0080031f StickNick
0x00800318 MotorenEin
0x00800379 ControlHeading
0x00800308 Looping_Nick
0x00800365 IntegralAccNick
0x00800313 HoehenWert
0x00800349 Mess_IntegralRoll2
0x008002f4 ExternStickGier
0x00800304 Looping_Unten
0x008002f0 MaxStickRoll
0x008002ee modell_fliegt
0x00800302 Parameter_UserParam1
0x00800388 AdNeutralRoll
0x00800309 HoverGas
0x00800306 Looping_Links
0x00800375 IntegralNick
0x00800335 Mess_Integral_Hoch
0x008002fc Parameter_UserParam7
0x0080038c BaroExpandActive
0x0080037c NaviCntAcc
0x0080032d TrichterFlug
0x00800380 NeutralAccX
0x00800339 SummeRoll
0x00800345 Mess_Integral_Gier
0x00800317 StartTrigger
0x0080030b LageKorrekturNick
0x008002ff Parameter_UserParam4
0x00800331 KompassStartwert
0x00800319 StickGas
0x00800307 Looping_Roll
0x008002fa CareFree
0x008002f8 ExternStickNick
0x00800301 Parameter_UserParam2
0x00800382 StartNeutralNick
0x00800333 KompassValue
0x00800361 IntegralAccRoll
0x0080032f KompassRichtung
0x0080034d Mess_IntegralRoll
0x0080031d StickRoll
0x0080038a AdNeutralNick
0x0080037e NeutralAccY
0x00800322 Poti
0x0080037a NeutralAccZ
0x008002fd Parameter_UserParam6
0x00800369 IntegralRoll2
0x008002f2 MaxStickNick
0x00800300 Parameter_UserParam3
0x00800386 AdNeutralGier
0x00800384 StartNeutralRoll
0x00800305 Looping_Rechts
0x008002f6 ExternStickRoll
0x0080032e HoehenReglerAktiv
0x0080030f SollHoehe
0x008002fb Parameter_UserParam8
0x0080032b GierGyroFehler
0x00800355 Mess_IntegralNick
0x0080033d SummeNick
0x0080036d IntegralRoll
.bss 0x008003e8 0x18 GPS.o
0x008003ec GpsZiel_X
0x008003f8 GPS_Roll2
0x008003f0 GpsAktuell_Y
0x008003fe GPS_Nick
0x008003fa GPS_Nick2
0x008003f4 GpsAktuell_X
0x008003e8 GpsZiel_Y
0x008003fc GPS_Roll
.bss 0x00800400 0x5 spi.o
0x00800402 FromNC_Rotate_S
0x00800400 NC_ErrorCode
0x00800401 SPI_CommandCounter
.bss 0x00800405 0xb led.o
0x00800407 LED2_Timing
0x00800409 LED1_Timing
0x00800405 J17Blinkcount
0x00800406 J16Blinkcount
.bss 0x00800410 0x5 Spektrum.o
0x00800410 SpektrumTimer
.bss 0x00800415 0x2 jetimenu.o
.bss 0x00800417 0xa capacity.o
0x00800417 update_timer
.bss 0x00800421 0xc libfc644.a(libfc.o)
0x00800422 IllIIllIlIlIlIllllII
0x00800425 DJFIORJHcvjr894hjhffj
0x00800424 IIIIIlIllllllIIllIIll
0x00800421 weiuncefcnsavsgvghjc
0x00800426 fij48zrhoih3498fhfo90
0x00800427 fojk48fj478fhw7fhw39
0x00800423 XSasC2389ufwejiCjuz32
*(COMMON)
COMMON 0x0080042d 0x2 main.o
0x0080042d _printf_P
COMMON 0x0080042f 0x1c6 uart.o
0x0080042f Data3D
0x0080043d Timer3D
0x0080043f Debug_Timer
0x00800441 VersionInfo
0x0080044b MotorTest
0x0080045b WinkelOut
0x00800463 ExternControl
0x0080046e Kompass_Timer
0x00800470 RxdBuffer
0x00800510 Display_Timer
0x00800512 TxdBuffer
0x008005b2 DebugOut
0x008005f4 ConfirmFrame
COMMON 0x008005f5 0x13 analog.o
0x008005f5 Aktuell_ay
0x008005f7 NeutralAccZ_float
0x008005fb Aktuell_az
0x008005fd StartLuftdruck
0x008005ff Aktuell_Nick
0x00800601 Aktuell_Roll
0x00800603 Aktuell_ax
0x00800605 DruckOffsetSetting
0x00800606 Aktuell_Gier
COMMON 0x00800608 0xc0 eeprom.o
0x00800608 RequiredMotors
0x00800609 EE_Parameter
0x0080067a Mixer
COMMON 0x008006c8 0x68 twimaster.o
0x008006c8 BLConfig
0x008006d0 Motor
COMMON 0x00800730 0x69 rc.o
0x00800730 Channels
0x00800731 PPM_in
0x00800765 PPM_diff
COMMON 0x00800799 0x68 fc.o
0x00800799 KopplungsteilNickRoll
0x0080079b MesswertGierBias
0x0080079d KopplungsteilRollNick
0x0080079f Parameter_Servo4
0x008007a0 DiffRoll
0x008007a2 MesswertRoll
0x008007a4 TrimNick
0x008007a6 Parameter_NaviGpsP
0x008007a7 ErsatzKompassInGrad
0x008007a9 GyroFaktorGier
0x008007aa MittelIntegralRoll2
0x008007ae Parameter_NaviGpsModeControl
0x008007af TrimRoll
0x008007b1 MesswertNick
0x008007b3 Parameter_NaviGpsI
0x008007b4 RohMesswertRoll
0x008007b6 MIN_GAS
0x008007b7 Parameter_NaviGpsACC
0x008007b8 MittelIntegralNick2
0x008007bc RohMesswertNick
0x008007be IntegralFaktorGier
0x008007bf DiffNick
0x008007c1 MittelIntegralNick
0x008007c5 Parameter_Servo3
0x008007c6 NaviAccNick
0x008007c8 Parameter_J16Timing
0x008007c9 MittelIntegralRoll
0x008007cd Parameter_Servo5
0x008007ce IntegralFaktor
0x008007cf tmp_motorwert
0x008007e7 Parameter_NaviOperatingRadius
0x008007e8 Parameter_NaviWindCorrection
0x008007e9 s
0x008007ea h
0x008007eb Mittelwert_AccNick
0x008007ed Parameter_NaviSpeedCompensation
0x008007ee Parameter_J17Timing
0x008007ef MAX_GAS
0x008007f0 MesswertGier
0x008007f2 Parameter_J16Bitmask
0x008007f3 NaviAccRoll
0x008007f5 GyroFaktor
0x008007f6 m
0x008007f7 ErsatzKompass
0x008007fb Mittelwert_AccRoll
0x008007fd Parameter_NaviGpsGain
0x008007fe Parameter_ExternalControl
0x008007ff Parameter_J17Bitmask
0x00800800 Parameter_NaviGpsD
COMMON 0x00800801 0x6d spi.o
0x00800801 SPITransferCompleted
0x00800802 GPSInfo
0x0080080a SPI_TX_Buffer
0x0080080c NC_Version
0x00800811 SPI_BufferIndex
0x00800812 ToNaviCtrl
0x00800832 SPI_ChkSum
0x00800833 SPI_RxBufferIndex
0x00800834 SPI_RxDataValid
0x00800835 FromNaviCtrl
0x0080084f SPI_Buffer
0x00800869 FromNaviCtrl_Value
COMMON 0x0080086e 0x7 capacity.o
0x0080086e Capacity
COMMON 0x00800875 0x2d libfc644.a(libfc.o)
0x00800875 fdknerTjg5i83th589v44
0x0080087b IlIlIlIIIIIIIlIllllll
0x0080089e fgfdogjWEti45e9tjh394
0x008008a2 PROVIDE (__bss_end, .)
0x0000f2d0 __data_load_start = LOADADDR (.data)
0x0000f3c4 __data_load_end = (__data_load_start + SIZEOF (.data))
 
.noinit 0x008008a2 0x0
0x008008a2 PROVIDE (__noinit_start, .)
*(.noinit*)
0x008008a2 PROVIDE (__noinit_end, .)
0x008008a2 _end = .
0x008008a2 PROVIDE (__heap_start, .)
 
.eeprom 0x00810000 0x0
*(.eeprom*)
0x00810000 __eeprom_end = .
 
.stab 0x00000000 0x9d8
*(.stab)
.stab 0x00000000 0x36c C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
.stab 0x0000036c 0x66c isqrt.o
0x678 (size before relaxing)
 
.stabstr 0x00000000 0xdc
*(.stabstr)
.stabstr 0x00000000 0xdc C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
 
.stab.excl
*(.stab.excl)
 
.stab.exclstr
*(.stab.exclstr)
 
.stab.index
*(.stab.index)
 
.stab.indexstr
*(.stab.indexstr)
 
.comment
*(.comment)
 
.debug
*(.debug)
 
.line
*(.line)
 
.debug_srcinfo
*(.debug_srcinfo)
 
.debug_sfnames
*(.debug_sfnames)
 
.debug_aranges
*(.debug_aranges)
 
.debug_pubnames
*(.debug_pubnames)
 
.debug_info
*(.debug_info)
*(.gnu.linkonce.wi.*)
 
.debug_abbrev
*(.debug_abbrev)
 
.debug_line
*(.debug_line)
 
.debug_frame
*(.debug_frame)
 
.debug_str
*(.debug_str)
 
.debug_loc
*(.debug_loc)
 
.debug_macinfo
*(.debug_macinfo)
OUTPUT(Flight-Ctrl_MEGA644_V0_80d_SVN1749.elf elf32-avr)
 
Cross Reference Table
 
Symbol File
ADC_Init analog.o
main.o
ANALOG_TEXT uart.o
AboTimeOut uart.o
AdNeutralGier fc.o
spi.o
rc.o
menu.o
AdNeutralNick fc.o
rc.o
menu.o
analog.o
AdNeutralRoll fc.o
rc.o
menu.o
analog.o
AdReady analog.o
fc.o
timer0.o
main.o
AdWertAccHoch analog.o
fc.o
menu.o
AdWertAccNick analog.o
fc.o
menu.o
AdWertAccRoll analog.o
fc.o
menu.o
AdWertGier analog.o
spi.o
fc.o
menu.o
AdWertGierFilter analog.o
AdWertNick analog.o
fc.o
menu.o
AdWertNickFilter analog.o
fc.o
AdWertRoll analog.o
fc.o
menu.o
AdWertRollFilter analog.o
fc.o
AddCRC uart.o
Aktuell_Gier analog.o
Aktuell_Nick analog.o
Aktuell_Roll analog.o
Aktuell_ax analog.o
Aktuell_ay analog.o
Aktuell_az fc.o
analog.o
AnalogOffsetGier analog.o
twimaster.o
menu.o
AnalogOffsetNick analog.o
twimaster.o
menu.o
AnalogOffsetRoll analog.o
twimaster.o
menu.o
AnzahlEmpfangsBytes uart.o
BLConfig twimaster.o
uart.o
BLConfig_ReadMask twimaster.o
BLConfig_WriteMask twimaster.o
BLFlags twimaster.o
fc.o
analog.o
main.o
BaroExpandActive fc.o
BattLowVoltageWarning main.o
spi.o
fc.o
BearbeiteRxDaten uart.o
main.o
BeepMuster timer0.o
fc.o
main.o
CalMk3Mag main.o
CalibrierMittelwert fc.o
Capacity capacity.o
jetimenu.o
spi.o
fc.o
menu.o
Capacity_Init capacity.o
main.o
Capacity_Update capacity.o
main.o
CareFree fc.o
Channels libfc644.a(libfc.o)
rc.o
menu.o
CheckDelay timer0.o
capacity.o
Spektrum.o
twimaster.o
analog.o
uart.o
main.o
CntCrcError uart.o
ConfirmFrame uart.o
ControlHeading fc.o
spi.o
CopyDebugValues fc.o
uart.o
CountMilliseconds timer0.o
DFGeefWEF43tgt5uGreg5 libfc644.a(libfc.o)
DJFIORJHcvjr894hjhffj libfc644.a(libfc.o)
Data3D uart.o
DatenUebertragung uart.o
main.o
DebugDataAnforderung uart.o
DebugDataIntervall uart.o
DebugDisplayAnforderung uart.o
DebugDisplayAnforderung1 uart.o
DebugOut spi.o
fc.o
uart.o
main.o
DebugTextAnforderung uart.o
Debug_Timer uart.o
Decode64 uart.o
Delay_ms timer0.o
fc.o
Delay_ms_Mess timer0.o
fc.o
analog.o
DiffNick fc.o
DiffRoll fc.o
DispPtr menu.o
uart.o
DisplayBuff menu.o
uart.o
DisplayLine uart.o
Display_Interval uart.o
Display_Timer uart.o
DruckOffsetSetting fc.o
analog.o
EEProm_Checksum eeprom.o
EE_Parameter libfc644.a(libfc.o)
jetimenu.o
Spektrum.o
led.o
spi.o
fc.o
rc.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
ErsatzKompass jetimenu.o
spi.o
fc.o
uart.o
ErsatzKompassInGrad fc.o
ExpandBaro analog.o
fc.o
ExternControl fc.o
menu.o
uart.o
main.o
ExternHoehenValue fc.o
ExternStickGier fc.o
main.o
ExternStickNick fc.o
main.o
ExternStickRoll fc.o
main.o
FCFlags fc.o
libfc644.a(libfc.o)
led.o
spi.o
twimaster.o
main.o
FGRT0589rge90gj459gg4 libfc644.a(libfc.o)
FGtj76uzh56z3grEg5t45 libfc644.a(libfc.o)
FlugMinuten main.o
menu.o
FlugMinutenGesamt main.o
menu.o
FlugSekunden main.o
jetimenu.o
FoundMotors main.o
FromNC_Rotate_C spi.o
fc.o
FromNC_Rotate_S spi.o
fc.o
FromNaviCtrl spi.o
fc.o
main.o
FromNaviCtrl_Value spi.o
fc.o
GIER_GRAD_FAKTOR fc.o
jetimenu.o
spi.o
uart.o
main.o
GPSInfo jetimenu.o
spi.o
GPS_BerechneZielrichtung GPS.o
GPS_Neutral GPS.o
fc.o
GPS_Nick GPS.o
spi.o
fc.o
main.o
GPS_Nick2 GPS.o
fc.o
GPS_Roll GPS.o
spi.o
fc.o
main.o
GPS_Roll2 GPS.o
fc.o
GetActiveParamSet eeprom.o
spi.o
fc.o
menu.o
uart.o
GetExternalControl uart.o
GetPPMChannelAnforderung uart.o
GetParamByte eeprom.o
analog.o
main.o
GetParamWord eeprom.o
fc.o
GetVersionAnforderung uart.o
GierGyroFehler fc.o
GpsAktuell_X GPS.o
GpsAktuell_Y GPS.o
GpsZiel_X GPS.o
GpsZiel_Y GPS.o
GyroFaktor fc.o
GyroFaktorGier fc.o
HiResNick analog.o
fc.o
HiResRoll analog.o
fc.o
HoehenReglerAktiv fc.o
HoehenWert fc.o
jetimenu.o
spi.o
menu.o
analog.o
HoverGas fc.o
I2CTimeout twimaster.o
menu.o
main.o
I2C_Init twimaster.o
main.o
I2C_ReadBLConfig twimaster.o
uart.o
I2C_Reset twimaster.o
main.o
I2C_WriteBLConfig twimaster.o
uart.o
IIIIIlIllllllIIllIIll libfc644.a(libfc.o)
IIllllIllIlllIIlllII libfc644.a(libfc.o)
INiuzBtergGIBuB76T0G5 libfc644.a(libfc.o)
IlIlIlIIIIIIIlIllllll libfc644.a(libfc.o)
IllIIllIlIlIlIllllII libfc644.a(libfc.o)
IntegralAccNick fc.o
IntegralAccRoll fc.o
IntegralAccZ fc.o
IntegralFaktor fc.o
IntegralFaktorGier fc.o
IntegralNick fc.o
spi.o
menu.o
timer0.o
uart.o
IntegralNick2 fc.o
IntegralRoll fc.o
spi.o
menu.o
timer0.o
uart.o
IntegralRoll2 fc.o
Integral_Gier fc.o
Intervall3D uart.o
J16Blinkcount led.o
J16Mask led.o
J17Blinkcount led.o
J17Mask led.o
JetiBox_Menu jetimenu.o
JetiBox_Update jetimenu.o
libfc644.a(libfc.o)
KLNMIOHMUHG76GFGr43r3 libfc644.a(libfc.o)
Ki fc.o
KompassRichtung fc.o
spi.o
menu.o
timer0.o
uart.o
KompassSignalSchlecht fc.o
KompassStartwert fc.o
spi.o
menu.o
timer0.o
uart.o
KompassValue fc.o
spi.o
menu.o
timer0.o
uart.o
Kompass_Timer uart.o
KopplungsteilNickRoll fc.o
KopplungsteilRollNick fc.o
LED1_Timing led.o
LED2_Timing led.o
LED_Init led.o
fc.o
eeprom.o
LED_Update led.o
main.o
LIBFC_GetCPUType libfc644.a(libfc.o)
LIBFC_Init libfc644.a(libfc.o)
main.o
LIBFC_JetiBox_Clear libfc644.a(libfc.o)
jetimenu.o
LIBFC_JetiBox_Putchar libfc644.a(libfc.o)
jetimenu.o
LIBFC_JetiBox_SetPos libfc644.a(libfc.o)
jetimenu.o
LIBFC_Polling libfc644.a(libfc.o)
main.o
LIBFC_ReceiverInit libfc644.a(libfc.o)
fc.o
uart.o
main.o
LageKorrekturNick fc.o
LageKorrekturRoll fc.o
LcdClear menu.o
uart.o
main.o
LipoDetection main.o
fc.o
uart.o
Looping_Links fc.o
Looping_Nick fc.o
Looping_Oben fc.o
Looping_Rechts fc.o
Looping_Roll fc.o
Looping_Unten fc.o
Luftdruck analog.o
fc.o
MAX_GAS fc.o
MIN_GAS fc.o
MaxMenue menu.o
uart.o
MaxStickNick fc.o
MaxStickRoll fc.o
MeineSlaveAdresse uart.o
Menu menu.o
uart.o
Menu_Battery jetimenu.o
Menu_PosInfo jetimenu.o
Menu_Putchar menu.o
uart.o
Menu_Status jetimenu.o
Menu_Temperature jetimenu.o
MenuePunkt menu.o
uart.o
MessLuftdruck analog.o
fc.o
menu.o
Mess_IntegralNick fc.o
Mess_IntegralNick2 fc.o
Mess_IntegralRoll fc.o
Mess_IntegralRoll2 fc.o
Mess_Integral_Gier fc.o
uart.o
Mess_Integral_Gier2 fc.o
Mess_Integral_Hoch fc.o
analog.o
MesswertGier fc.o
MesswertGierBias fc.o
MesswertNick fc.o
MesswertRoll fc.o
MissingMotor twimaster.o
fc.o
menu.o
main.o
MittelIntegralNick fc.o
MittelIntegralNick2 fc.o
MittelIntegralRoll fc.o
MittelIntegralRoll2 fc.o
Mittelwert fc.o
Mittelwert_AccNick fc.o
Mittelwert_AccRoll fc.o
Mixer fc.o
twimaster.o
eeprom.o
menu.o
uart.o
main.o
MixerTable_Default eeprom.o
MixerTable_ReadFromEEProm eeprom.o
MixerTable_WriteToEEProm eeprom.o
uart.o
Motor capacity.o
jetimenu.o
fc.o
twimaster.o
menu.o
main.o
MotorRegler fc.o
main.o
MotorTest fc.o
uart.o
MotorenEin fc.o
led.o
rc.o
twimaster.o
uart.o
main.o
Msg1 libfc644.a(libfc.o)
Msg2 libfc644.a(libfc.o)
NC_ErrorCode spi.o
jetimenu.o
NC_Version spi.o
main.o
NaviAccNick spi.o
fc.o
NaviAccRoll spi.o
fc.o
NaviCntAcc fc.o
spi.o
NaviDataOkay spi.o
jetimenu.o
timer0.o
main.o
NeueKoordinateEmpfangen uart.o
NeuerDatensatzEmpfangen uart.o
NeutralAccX fc.o
menu.o
analog.o
NeutralAccY fc.o
menu.o
analog.o
NeutralAccZ fc.o
menu.o
analog.o
NeutralAccZ_float analog.o
NewPpmData rc.o
libfc644.a(libfc.o)
Spektrum.o
fc.o
PC_DebugTimeout uart.o
PC_MotortestActive uart.o
fc.o
twimaster.o
PPM_diff libfc644.a(libfc.o)
Spektrum.o
fc.o
rc.o
PPM_in libfc644.a(libfc.o)
Spektrum.o
spi.o
fc.o
rc.o
menu.o
timer0.o
uart.o
main.o
ParamSet_DefaultSet1 eeprom.o
ParamSet_DefaultSet2 eeprom.o
ParamSet_DefaultSet3 eeprom.o
ParamSet_DefaultStickMapping eeprom.o
ParamSet_Init eeprom.o
main.o
ParamSet_ReadFromEEProm eeprom.o
fc.o
uart.o
ParamSet_WriteToEEProm eeprom.o
uart.o
ParameterZuordnung fc.o
Parameter_AchsKopplung1 fc.o
Parameter_AchsKopplung2 fc.o
Parameter_CouplingYawCorrection fc.o
Parameter_DynamicStability fc.o
Parameter_ExternalControl fc.o
Parameter_Gier_P fc.o
Parameter_Gyro_D fc.o
Parameter_Gyro_Gier_I fc.o
Parameter_Gyro_Gier_P fc.o
Parameter_Gyro_I fc.o
Parameter_Gyro_P fc.o
Parameter_Hoehe_ACC_Wirkung fc.o
Parameter_Hoehe_GPS_Z fc.o
Parameter_Hoehe_P fc.o
Parameter_I_Faktor fc.o
Parameter_J16Bitmask fc.o
Parameter_J16Timing led.o
fc.o
Parameter_J17Bitmask fc.o
Parameter_J17Timing led.o
fc.o
Parameter_KompassWirkung fc.o
Parameter_LoopGasLimit fc.o
Parameter_Luftdruck_D fc.o
Parameter_MaxHoehe fc.o
Parameter_NaviGpsACC fc.o
Parameter_NaviGpsD fc.o
Parameter_NaviGpsGain fc.o
Parameter_NaviGpsI fc.o
Parameter_NaviGpsModeControl fc.o
Parameter_NaviGpsP fc.o
Parameter_NaviOperatingRadius fc.o
Parameter_NaviSpeedCompensation fc.o
Parameter_NaviWindCorrection fc.o
Parameter_Servo3 fc.o
Parameter_Servo4 fc.o
timer0.o
Parameter_Servo5 fc.o
timer0.o
Parameter_ServoNickControl fc.o
spi.o
menu.o
timer0.o
Parameter_ServoRollControl fc.o
spi.o
timer0.o
Parameter_UserParam1 fc.o
spi.o
uart.o
Parameter_UserParam2 fc.o
spi.o
uart.o
Parameter_UserParam3 fc.o
spi.o
Parameter_UserParam4 fc.o
spi.o
Parameter_UserParam5 fc.o
spi.o
Parameter_UserParam6 fc.o
spi.o
Parameter_UserParam7 fc.o
spi.o
Parameter_UserParam8 fc.o
spi.o
timer0.o
PcZugriff uart.o
main.o
Piep fc.o
uart.o
main.o
PlatinenVersion main.o
libfc644.a(libfc.o)
spi.o
fc.o
rc.o
eeprom.o
menu.o
analog.o
timer0.o
Poti fc.o
spi.o
menu.o
RAM_Checksum eeprom.o
twimaster.o
Rec_ACT_DSL libfc644.a(libfc.o)
Rec_Jeti libfc644.a(libfc.o)
Rec_PPM libfc644.a(libfc.o)
Rec_Spektrum libfc644.a(libfc.o)
Rec_Spektrum_HI_RES libfc644.a(libfc.o)
Rec_Spektrum_LOW_RES libfc644.a(libfc.o)
RemoteKeys menu.o
uart.o
RequiredMotors jetimenu.o
twimaster.o
eeprom.o
main.o
RohMesswertNick fc.o
RohMesswertRoll fc.o
RxDataLen uart.o
RxdBuffer uart.o
SPITransferCompleted spi.o
SPI_Buffer spi.o
SPI_BufferIndex spi.o
SPI_ChkSum spi.o
SPI_CommandCounter spi.o
SPI_CommandSequence spi.o
SPI_MasterInit spi.o
main.o
SPI_RxBufferIndex spi.o
SPI_RxDataValid spi.o
SPI_StartTransmitPacket spi.o
main.o
SPI_TX_Buffer spi.o
SPI_TransmitByte spi.o
main.o
SendMotorData fc.o
main.o
SendOutData uart.o
SendSPI timer0.o
spi.o
main.o
SendVersionToNavi main.o
fc.o
SenderOkay fc.o
libfc644.a(libfc.o)
Spektrum.o
spi.o
rc.o
menu.o
timer0.o
main.o
ServoActive timer0.o
fc.o
uart.o
main.o
ServoNickValue timer0.o
fc.o
menu.o
ServoRollValue timer0.o
SetActiveParamSet eeprom.o
fc.o
SetDelay timer0.o
capacity.o
Spektrum.o
twimaster.o
analog.o
uart.o
main.o
SetNeutral fc.o
main.o
SetParamByte eeprom.o
analog.o
main.o
SetParamWord eeprom.o
fc.o
menu.o
SioTmp uart.o
SollHoehe fc.o
spi.o
menu.o
SpektrumBinding Spektrum.o
SpektrumParser Spektrum.o
libfc644.a(libfc.o)
SpektrumTimer Spektrum.o
timer0.o
SpektrumUartInit Spektrum.o
libfc644.a(libfc.o)
StartLuftdruck fc.o
analog.o
StartNeutralNick fc.o
StartNeutralRoll fc.o
StartTrigger fc.o
StickGas fc.o
StickGier fc.o
main.o
StickNick fc.o
main.o
StickRoll fc.o
main.o
SucheGyroOffset analog.o
fc.o
SucheLuftruckOffset analog.o
fc.o
main.o
SummeNick fc.o
uart.o
SummeRoll fc.o
uart.o
SummenHoehe analog.o
fc.o
TIMER2_Init timer0.o
main.o
Timer3D uart.o
Timer_Init timer0.o
main.o
ToNaviCtrl spi.o
TrichterFlug fc.o
TrimNick fc.o
TrimRoll fc.o
TxdBuffer uart.o
UART_Init uart.o
main.o
UBat analog.o
capacity.o
jetimenu.o
spi.o
fc.o
menu.o
main.o
UebertragungAbgeschlossen uart.o
Umschlag180Nick fc.o
uart.o
Umschlag180Roll fc.o
uart.o
UpdateMotor timer0.o
main.o
UpdateSPI_Buffer spi.o
VarioCharacter fc.o
jetimenu.o
VarioMeter analog.o
fc.o
VersionInfo spi.o
fc.o
menu.o
analog.o
uart.o
main.o
WinkelOut spi.o
fc.o
uart.o
main.o
XSasC2389ufwejiCjuz32 libfc644.a(libfc.o)
ZaehlMessungen analog.o
fc.o
__addsf3 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
fc.o
__addsf3x C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
__bad_interrupt C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__bss_end C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o)
__bss_start C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o)
__data_end C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o)
__data_load_start C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o)
__data_start C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o)
__divmodhi4 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o)
libfc644.a(libfc.o)
jetimenu.o
mymath.o
Spektrum.o
spi.o
fc.o
rc.o
menu.o
timer0.o
uart.o
__divmodsi4 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o)
jetimenu.o
spi.o
fc.o
menu.o
uart.o
__do_clear_bss C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_clear_bss.o)
libfc644.a(libfc.o)
debug.o
capacity.o
jetimenu.o
mymath.o
Spektrum.o
led.o
spi.o
GPS.o
fc.o
rc.o
twimaster.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
__do_copy_data C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_copy_data.o)
libfc644.a(libfc.o)
debug.o
capacity.o
jetimenu.o
mymath.o
Spektrum.o
led.o
spi.o
GPS.o
fc.o
rc.o
twimaster.o
eeprom.o
menu.o
analog.o
timer0.o
uart.o
main.o
__eeprom_read_block_1F2021 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
eeprom.o
__eeprom_read_byte_1F2021 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rb.1F2021.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rblk.1F2021.o)
eeprom.o
__eeprom_read_word_1F2021 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_rw.1F2021.o)
eeprom.o
__eeprom_write_block_1F2021 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
eeprom.o
__eeprom_write_byte_1F2021 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wb.1F2021.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_wblk.1F2021.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
eeprom.o
__eeprom_write_word_1F2021 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(ee_ww.1F2021.o)
eeprom.o
__epilogue_restores__ C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_epilogue.o)
libfc644.a(libfc.o)
Spektrum.o
fc.o
eeprom.o
menu.o
uart.o
__fixsfsi C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
__fixunssfsi C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
fc.o
__floatsisf C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o)
fc.o
__floatunssisf C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o)
__fp_lneg C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o)
__fp_merge C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_merge.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(floatsisf.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
__fp_nan C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
__fp_nanEDOM C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o)
__fp_nanERANGE C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o)
__fp_nanx C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_nan.o)
__fp_split1 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
__fp_split2 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
__fp_split3 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
__fp_split_a C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_split.o)
__fp_zero C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_merge.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fixsfsi.o)
__fp_zerox C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(fp_zero.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3x.o)
__heap_end C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__init C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__mulsi3 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_mulsi3.o)
fc.o
analog.o
timer0.o
uart.o
__prologue_saves__ C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_prologue.o)
libfc644.a(libfc.o)
fc.o
uart.o
__stack C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
main.o
__subsf3 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libm.a(addsf3.o)
__tablejump2__ C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o)
twimaster.o
menu.o
analog.o
__tablejump__ C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_tablejump.o)
__udivmodhi4 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodhi4.o)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o)
libfc644.a(libfc.o)
capacity.o
jetimenu.o
fc.o
menu.o
analog.o
timer0.o
__udivmodqi4 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodqi4.o)
libfc644.a(libfc.o)
menu.o
main.o
__udivmodsi4 C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_udivmodsi4.o)
C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodsi4.o)
libfc644.a(libfc.o)
__vector_1 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_10 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_11 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_12 rc.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_13 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_14 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_15 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_16 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_17 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_18 timer0.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_19 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_2 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_20 uart.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_21 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_22 uart.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_23 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_24 analog.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_25 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_26 twimaster.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_27 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_28 libfc644.a(libfc.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_29 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_3 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_30 libfc644.a(libfc.o)
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_4 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_5 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_6 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_7 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_8 C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_9 timer0.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vector_default C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
__vectors C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
_div C:/Programs/WinAVR/lib/gcc/avr/3.4.6/avr5\libgcc.a(_divmodhi4.o)
_printf_P libfc644.a(libfc.o)
jetimenu.o
Spektrum.o
fc.o
eeprom.o
menu.o
analog.o
uart.o
main.o
a48784362857632195659 libfc644.a(libfc.o)
awokdjwqdjcjuhcuweih libfc644.a(libfc.o)
beeptime timer0.o
spi.o
fc.o
main.o
c_cos_8192 mymath.o
fc.o
c_sin_8192 mymath.o
cntKompass timer0.o
dac_channel twimaster.o
f8jhreghreGerg45gE542 libfc644.a(libfc.o)
fdknerTjg5i83th589v44 libfc644.a(libfc.o)
fgfdogjWEti45e9tjh394 libfc644.a(libfc.o)
fgmjgnrtuth587th9rTrw libfc644.a(libfc.o)
fij48zrhoih3498fhfo90 libfc644.a(libfc.o)
fojk48fj478fhw7fhw39 libfc644.a(libfc.o)
fomklkdtn89SFGrsgt9rf libfc644.a(libfc.o)
h fc.o
ihypot isqrt.o
fc.o
isqrt16 isqrt.o
isqrt32 isqrt.o
kf089uwjef89234hffhh libfc644.a(libfc.o)
lkvgnfdgun57th38rgh84 libfc644.a(libfc.o)
m fc.o
main main.o
C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/crtm644p.o
md5 libfc644.a(libfc.o)
memchr C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memchr.o)
libfc644.a(libfc.o)
memcpy_P C:/Programs/WinAVR/bin/../lib/gcc/avr/3.4.6/../../../../avr/lib/avr5\libc.a(memcpy_P.o)
uart.o
messanzahl_AccHoch analog.o
modell_fliegt fc.o
analog.o
motor_read twimaster.o
main.o
motor_write twimaster.o
fc.o
ndfcvbghs libfc644.a(libfc.o)
njkvnfuhgbuzrgezgf483 libfc644.a(libfc.o)
pRxData uart.o
pgm_sinlookup mymath.o
rc_sum_init rc.o
main.o
s fc.o
tmpChannels rc.o
tmp_motorwert fc.o
twi_state twimaster.o
fc.o
analog.o
uart_putchar uart.o
libfc644.a(libfc.o)
Spektrum.o
fc.o
eeprom.o
analog.o
main.o
update_timer capacity.o
weiuncefcnsavsgvghjc libfc644.a(libfc.o)
wqqeRT45jth8g758735h4 libfc644.a(libfc.o)
/branches/V0.80d-Arthur-P/FlightCtrl.aps
0,0 → 1,0
<AVRStudio><MANAGEMENT><ProjectName>FlightCtrl</ProjectName><Created>15-May-2007 11:20:41</Created><LastEdit>11-Oct-2007 22:58:54</LastEdit><ICON>241</ICON><ProjectType>0</ProjectType><Created>15-May-2007 11:20:41</Created><Version>4</Version><Build>4, 13, 0, 528</Build><ProjectTypeName>AVR GCC</ProjectTypeName></MANAGEMENT><CODE_CREATION><ObjectFile>default\Flight-Ctrl.elf</ObjectFile><EntryFile></EntryFile><SaveFolder>F:\SVN\MikroKopter\FlightCtrl\branches\V0.64_ZeroWarnings\</SaveFolder></CODE_CREATION><DEBUG_TARGET><CURRENT_TARGET>AVR Simulator</CURRENT_TARGET><CURRENT_PART>ATmega644.xml</CURRENT_PART><BREAKPOINTS></BREAKPOINTS><IO_EXPAND><HIDE>false</HIDE></IO_EXPAND><REGISTERNAMES><Register>R00</Register><Register>R01</Register><Register>R02</Register><Register>R03</Register><Register>R04</Register><Register>R05</Register><Register>R06</Register><Register>R07</Register><Register>R08</Register><Register>R09</Register><Register>R10</Register><Register>R11</Register><Register>R12</Register><Register>R13</Register><Register>R14</Register><Register>R15</Register><Register>R16</Register><Register>R17</Register><Register>R18</Register><Register>R19</Register><Register>R20</Register><Register>R21</Register><Register>R22</Register><Register>R23</Register><Register>R24</Register><Register>R25</Register><Register>R26</Register><Register>R27</Register><Register>R28</Register><Register>R29</Register><Register>R30</Register><Register>R31</Register></REGISTERNAMES><COM>Auto</COM><COMType>0</COMType><WATCHNUM>0</WATCHNUM><WATCHNAMES><Pane0></Pane0><Pane1></Pane1><Pane2></Pane2><Pane3></Pane3></WATCHNAMES><BreakOnTrcaeFull>0</BreakOnTrcaeFull></DEBUG_TARGET><Debugger><Triggers></Triggers></Debugger><AVRGCCPLUGIN><FILES><SOURCEFILE>uart.c</SOURCEFILE><SOURCEFILE>analog.c</SOURCEFILE><SOURCEFILE>eeprom.c</SOURCEFILE><SOURCEFILE>fc.c</SOURCEFILE><SOURCEFILE>GPS.c</SOURCEFILE><SOURCEFILE>main.c</SOURCEFILE><SOURCEFILE>menu.c</SOURCEFILE><SOURCEFILE>printf_P.c</SOURCEFILE><SOURCEFILE>rc.c</SOURCEFILE><SOURCEFILE>timer0.c</SOURCEFILE><SOURCEFILE>twimaster.c</SOURCEFILE><HEADERFILE>uart.h</HEADERFILE><HEADERFILE>_Settings.h</HEADERFILE><HEADERFILE>analog.h</HEADERFILE><HEADERFILE>fc.h</HEADERFILE><HEADERFILE>gps.h</HEADERFILE><HEADERFILE>main.h</HEADERFILE><HEADERFILE>menu.h</HEADERFILE><HEADERFILE>old_macros.h</HEADERFILE><HEADERFILE>printf_P.h</HEADERFILE><HEADERFILE>rc.h</HEADERFILE><HEADERFILE>Settings.h</HEADERFILE><HEADERFILE>timer0.h</HEADERFILE><HEADERFILE>twimaster.h</HEADERFILE></FILES><CONFIGS><CONFIG><NAME>default</NAME><USESEXTERNALMAKEFILE>NO</USESEXTERNALMAKEFILE><EXTERNALMAKEFILE></EXTERNALMAKEFILE><PART>atmega644</PART><HEX>1</HEX><LIST>1</LIST><MAP>1</MAP><OUTPUTFILENAME>Flight-Ctrl.elf</OUTPUTFILENAME><OUTPUTDIR>default\</OUTPUTDIR><ISDIRTY>1</ISDIRTY><OPTIONS><OPTION><FILE>GPS.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>analog.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>eeprom.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>fc.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>main.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>menu.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>printf_P.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>rc.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>timer0.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>twimaster.c</FILE><OPTIONLIST></OPTIONLIST></OPTION><OPTION><FILE>uart.c</FILE><OPTIONLIST></OPTIONLIST></OPTION></OPTIONS><INCDIRS/><LIBDIRS/><LIBS><LIB>libc.a</LIB><LIB>libm.a</LIB></LIBS><LINKOBJECTS/><OPTIONSFORALL>-Wall -gdwarf-2 -Wstrict-prototypes -std=gnu99 -Os -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -DVERSION_HAUPTVERSION=0 -DVERSION_NEBENVERSION=64 -DVERSION_KOMPATIBEL=5</OPTIONSFORALL><LINKEROPTIONS></LINKEROPTIONS><SEGMENTS/></CONFIG></CONFIGS><LASTCONFIG>default</LASTCONFIG><USES_WINAVR>1</USES_WINAVR><GCC_LOC>C:\Program Files\WinAVR\bin\avr-gcc.exe</GCC_LOC><MAKE_LOC>C:\Program Files\WinAVR\utils\bin\make.exe</MAKE_LOC></AVRGCCPLUGIN><IOView><usergroups/></IOView><Files><File00000><FileId>00000</FileId><FileName>main.c</FileName><Status>1</Status></File00000><File00001><FileId>00001</FileId><FileName>uart.c</FileName><Status>1</Status></File00001><File00002><FileId>00002</FileId><FileName>menu.c</FileName><Status>1</Status></File00002><File00003><FileId>00003</FileId><FileName>timer0.c</FileName><Status>1</Status></File00003><File00004><FileId>00004</FileId><FileName>fc.c</FileName><Status>1</Status></File00004><File00005><FileId>00005</FileId><FileName>fc.h</FileName><Status>1</Status></File00005><File00006><FileId>00006</FileId><FileName>menu.h</FileName><Status>1</Status></File00006><File00007><FileId>00007</FileId><FileName>TWIMASTER.C</FileName><Status>1</Status></File00007><File00008><FileId>00008</FileId><FileName>twimaster.h</FileName><Status>1</Status></File00008><File00009><FileId>00009</FileId><FileName>uart.h</FileName><Status>1</Status></File00009><File00010><FileId>00010</FileId><FileName>_Settings.h</FileName><Status>1</Status></File00010><File00011><FileId>00011</FileId><FileName>analog.h</FileName><Status>1</Status></File00011><File00012><FileId>00012</FileId><FileName>gps.h</FileName><Status>1</Status></File00012><File00013><FileId>00013</FileId><FileName>main.h</FileName><Status>1</Status></File00013><File00014><FileId>00014</FileId><FileName>old_macros.h</FileName><Status>1</Status></File00014><File00015><FileId>00015</FileId><FileName>printf_P.h</FileName><Status>1</Status></File00015><File00016><FileId>00016</FileId><FileName>rc.h</FileName><Status>1</Status></File00016><File00017><FileId>00017</FileId><FileName>Settings.h</FileName><Status>1</Status></File00017><File00018><FileId>00018</FileId><FileName>timer0.h</FileName><Status>1</Status></File00018></Files><Events><Bookmarks></Bookmarks></Events><Trace><Filters></Filters></Trace></AVRStudio>
/branches/V0.80d-Arthur-P/GPS.c
0,0 → 1,32
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
signed int GPS_Nick = 0;
signed int GPS_Roll = 0;
signed int GPS_Nick2 = 0;
signed int GPS_Roll2 = 0;
long GpsAktuell_X = 0;
long GpsAktuell_Y = 0;
long GpsZiel_X = 0;
long GpsZiel_Y = 0;
void GPS_Neutral(void)
{
GpsZiel_X = GpsAktuell_X;
GpsZiel_Y = GpsAktuell_Y;
}
 
void GPS_BerechneZielrichtung(void)
{
GPS_Nick = 0;
GPS_Roll = 0;
}
 
 
 
 
/branches/V0.80d-Arthur-P/GPS.d
0,0 → 1,3
GPS.o GPS.d : GPS.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/GPS.lst
0,0 → 1,101
1 .file "GPS.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global GpsZiel_Y
11 .global GpsZiel_Y
12 .section .bss
15 GpsZiel_Y:
16 0000 0000 0000 .skip 4,0
17 .global GpsZiel_X
18 .global GpsZiel_X
21 GpsZiel_X:
22 0004 0000 0000 .skip 4,0
23 .global GpsAktuell_Y
24 .global GpsAktuell_Y
27 GpsAktuell_Y:
28 0008 0000 0000 .skip 4,0
29 .global GpsAktuell_X
30 .global GpsAktuell_X
33 GpsAktuell_X:
34 000c 0000 0000 .skip 4,0
35 .global GPS_Roll2
36 .global GPS_Roll2
39 GPS_Roll2:
40 0010 0000 .skip 2,0
41 .global GPS_Nick2
42 .global GPS_Nick2
45 GPS_Nick2:
46 0012 0000 .skip 2,0
47 .global GPS_Roll
48 .global GPS_Roll
51 GPS_Roll:
52 0014 0000 .skip 2,0
53 .global GPS_Nick
54 .global GPS_Nick
57 GPS_Nick:
58 0016 0000 .skip 2,0
59 .text
60 .global GPS_Neutral
62 GPS_Neutral:
63 /* prologue: frame size=0 */
64 /* prologue end (size=0) */
65 0000 8091 0000 lds r24,GpsAktuell_X
66 0004 9091 0000 lds r25,(GpsAktuell_X)+1
67 0008 A091 0000 lds r26,(GpsAktuell_X)+2
68 000c B091 0000 lds r27,(GpsAktuell_X)+3
69 0010 8093 0000 sts GpsZiel_X,r24
70 0014 9093 0000 sts (GpsZiel_X)+1,r25
71 0018 A093 0000 sts (GpsZiel_X)+2,r26
72 001c B093 0000 sts (GpsZiel_X)+3,r27
73 0020 8091 0000 lds r24,GpsAktuell_Y
74 0024 9091 0000 lds r25,(GpsAktuell_Y)+1
75 0028 A091 0000 lds r26,(GpsAktuell_Y)+2
76 002c B091 0000 lds r27,(GpsAktuell_Y)+3
77 0030 8093 0000 sts GpsZiel_Y,r24
78 0034 9093 0000 sts (GpsZiel_Y)+1,r25
79 0038 A093 0000 sts (GpsZiel_Y)+2,r26
80 003c B093 0000 sts (GpsZiel_Y)+3,r27
81 /* epilogue: frame size=0 */
82 0040 0895 ret
83 /* epilogue end (size=1) */
84 /* function GPS_Neutral size 33 (32) */
86 .global GPS_BerechneZielrichtung
88 GPS_BerechneZielrichtung:
89 /* prologue: frame size=0 */
90 /* prologue end (size=0) */
91 0042 1092 0000 sts (GPS_Nick)+1,__zero_reg__
92 0046 1092 0000 sts GPS_Nick,__zero_reg__
93 004a 1092 0000 sts (GPS_Roll)+1,__zero_reg__
94 004e 1092 0000 sts GPS_Roll,__zero_reg__
95 /* epilogue: frame size=0 */
96 0052 0895 ret
97 /* epilogue end (size=1) */
98 /* function GPS_BerechneZielrichtung size 9 (8) */
100 /* File "GPS.c": code 42 = 0x002a ( 40), prologues 0, epilogues 2 */
DEFINED SYMBOLS
*ABS*:00000000 GPS.c
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:15 .bss:00000000 GpsZiel_Y
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:21 .bss:00000004 GpsZiel_X
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:27 .bss:00000008 GpsAktuell_Y
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:33 .bss:0000000c GpsAktuell_X
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:39 .bss:00000010 GPS_Roll2
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:45 .bss:00000012 GPS_Nick2
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:51 .bss:00000014 GPS_Roll
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:57 .bss:00000016 GPS_Nick
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:62 .text:00000000 GPS_Neutral
C:\Users\Arthur-P\AppData\Local\Temp/cceGbaaa.s:88 .text:00000042 GPS_BerechneZielrichtung
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
/branches/V0.80d-Arthur-P/Hex-Files/BootLoader_MEGA644P_20MHZ_V0_1.hex
0,0 → 1,64
:10F8000011241FBECFEFD0E1DEBFCDBF11E0A0E0DD
:10F81000B1E0E0EEFBEF02C005900D92A030B10721
:10F82000D9F712E0A0E0B1E001C01D92A230B1070B
:10F83000E1F70C943B7C0C941D7C0895982F8091EB
:10F84000C00085FFFCCF9093C60008958091C00052
:10F850008823E4F78091C600992708958DE40E94DB
:10F860001E7C8BE40E941E7C82E40E941E7C8CE441
:10F870000E941E7C0895CFEFD0E1DEBFCDBFE0E057
:10F88000F0E014915F01772474BE98E10FB6F8940C
:10F8900090936000109260000FBE7092C5008AE2E3
:10F8A0008093C4008091C00082608093C0009093D8
:10F8B000C10086E08093C200EF01072D8091C00057
:10F8C00087FF0DC0013031F48091C6008A3AB1F152
:10F8D00000E005C08091C6008B3109F401E0CE0143
:10F8E00021968436910528F11F3F41F0112331F014
:10F8F000E0910001F091010109951BC01092C50033
:10F900008AE28093C4008AE00E941E7C8DE00E94FF
:10F910001E7C86E50E941E7C80E30E941E7C8EE297
:10F920000E941E7C81E30E941E7C8AE30E941E7C52
:10F9300005C080E593EC0197F1F7C0CF0E942E7CC3
:10F940000E94267C813611F489E547C1813471F427
:10F950000E94267CA82EBB24BA2CAA240E94267CB6
:10F960009927A82AB92AB694A79406C1823629F401
:10F9700089E50E941E7C81E00BC1823409F083C0BE
:10F980000E94267C9927D82FCC270E94267C992775
:10F99000C82BD92B0E94267C082F12E0812E11E063
:10F9A000912EEE24FF2464010894811C911CEC1616
:10F9B000FD0618F40E94267C01C08FEFD6018C93BF
:10F9C0000894E11CF11CBFEFEB16F10461F358F34E
:10F9D000E4E77E1609F0DEC0063409F03DC0FFEF13
:10F9E000AF16F7EFBF0608F033C0DE01A5016627AA
:10F9F0007727440F551F661F771F6A017B01C2E0FE
:10FA0000D1E001E08991992729913327322F2227CC
:10FA1000822B932B0C01FA0100935700E8951124D7
:10FA20004E5F5F4F6F4F7F4F129761F785E0F60192
:10FA300080935700E89507B600FCFDCF81E18093E5
:10FA40005700E89576956795579547955A0194C064
:10FA500080E00E941E7C90C0053409F08DC0F50145
:10FA60009E01A2E0B1E0E1BD8F2F992782BD8D916B
:10FA700080BD3196FA9AF99AF999FECF215030401B
:10FA800091F75F0179C0873609F047C00E94267C54
:10FA90009927D82ECC240E94267C9927C82AD92AB7
:10FAA0000E94267C863411F5E6016501EE24FF24D0
:10FAB000CC0CDD1CEE1CFF1CF60105911491802F6F
:10FAC0000E941E7C812F99270E941E7C82E090E07C
:10FAD000A0E0B0E0C80ED91EEA1EFB1E229761F717
:10FAE000F694E794D794C79456012ACF853409F049
:10FAF00027CF7501E1BC8F2D992782BDF89A089414
:10FB0000E11CF11C80B50E941E7C0894C108D1083C
:10FB1000C114D10479F7570113CF853601F594E765
:10FB2000791651F580E090E0A0E0B0E023E0FC0120
:10FB300020935700E89507B600FCFDCF80509F4FFB
:10FB4000AF4FBF4F8F3FE7EF9E07E0E0AE07E0E02B
:10FB5000BE0768F381E180935700E8950DC08534B6
:10FB600069F488E190E02CE00FB6F894A8958093B2
:10FB700060000FBE209360008DE02FC08035E1F360
:10FB80008C34D1F3803711F483E527C0843721F416
:10FB90000E941E7C80E021C0843521F40E94267CD6
:10FBA000782EEACF8B3109F4C9CE8A3A09F4C6CE51
:10FBB000863529F480E30E941E7C81E30EC08337E2
:10FBC00041F489E00E941E7C86E90E941E7C8EE141
:10FBD00004C08B3109F4B4CE8FE30E941E7CB0CEFA
:040000030000F80001
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/BootLoader_MEGA644_20MHZ_V0_1.hex
0,0 → 1,64
:10F8000011241FBECFEFD0E1DEBFCDBF11E0A0E0DD
:10F81000B1E0E0EEFBEF02C005900D92A030B10721
:10F82000D9F712E0A0E0B1E001C01D92A230B1070B
:10F83000E1F70C943B7C0C941D7C0895982F8091EB
:10F84000C00085FFFCCF9093C60008958091C00052
:10F850008823E4F78091C600992708958DE40E94DB
:10F860001E7C8BE40E941E7C82E40E941E7C8CE441
:10F870000E941E7C0895CFEFD0E1DEBFCDBFE0E057
:10F88000F0E014915F01772474BE98E10FB6F8940C
:10F8900090936000109260000FBE7092C5008AE2E3
:10F8A0008093C4008091C00082608093C0009093D8
:10F8B000C10086E08093C200EF01072D8091C00057
:10F8C00087FF0DC0013031F48091C6008A3AB1F152
:10F8D00000E005C08091C6008B3109F401E0CE0143
:10F8E00021968436910528F11F3F41F0112331F014
:10F8F000E0910001F091010109951BC01092C50033
:10F900008AE28093C4008AE00E941E7C8DE00E94FF
:10F910001E7C86E50E941E7C80E30E941E7C8EE297
:10F920000E941E7C81E30E941E7C8AE30E941E7C52
:10F9300005C080E593EC0197F1F7C0CF0E942E7CC3
:10F940000E94267C813611F489E547C1813471F427
:10F950000E94267CA82EBB24BA2CAA240E94267CB6
:10F960009927A82AB92AB694A79406C1823629F401
:10F9700089E50E941E7C81E00BC1823409F083C0BE
:10F980000E94267C9927D82FCC270E94267C992775
:10F99000C82BD92B0E94267C082F12E0812E11E063
:10F9A000912EEE24FF2464010894811C911CEC1616
:10F9B000FD0618F40E94267C01C08FEFD6018C93BF
:10F9C0000894E11CF11CBFEFEB16F10461F358F34E
:10F9D000E4E77E1609F0DEC0063409F03DC0FFEF13
:10F9E000AF16F7EFBF0608F033C0DE01A5016627AA
:10F9F0007727440F551F661F771F6A017B01C2E0FE
:10FA0000D1E001E08991992729913327322F2227CC
:10FA1000822B932B0C01FA0100935700E8951124D7
:10FA20004E5F5F4F6F4F7F4F129761F785E0F60192
:10FA300080935700E89507B600FCFDCF81E18093E5
:10FA40005700E89576956795579547955A0194C064
:10FA500080E00E941E7C90C0053409F08DC0F50145
:10FA60009E01A2E0B1E0E1BD8F2F992782BD8D916B
:10FA700080BD3196FA9AF99AF999FECF215030401B
:10FA800091F75F0179C0873609F047C00E94267C54
:10FA90009927D82ECC240E94267C9927C82AD92AB7
:10FAA0000E94267C863411F5E6016501EE24FF24D0
:10FAB000CC0CDD1CEE1CFF1CF60105911491802F6F
:10FAC0000E941E7C812F99270E941E7C82E090E07C
:10FAD000A0E0B0E0C80ED91EEA1EFB1E229761F717
:10FAE000F694E794D794C79456012ACF853409F049
:10FAF00027CF7501E1BC8F2D992782BDF89A089414
:10FB0000E11CF11C80B50E941E7C0894C108D1083C
:10FB1000C114D10479F7570113CF853601F594E765
:10FB2000791651F580E090E0A0E0B0E023E0FC0120
:10FB300020935700E89507B600FCFDCF80509F4FFB
:10FB4000AF4FBF4F8F3FE7EF9E07E0E0AE07E0E02B
:10FB5000BE0768F381E180935700E8950DC08534B6
:10FB600069F488E190E02CE00FB6F894A8958093B2
:10FB700060000FBE209360008DE02FC08035E1F360
:10FB80008C34D1F3803711F483E527C0843721F416
:10FB90000E941E7C80E021C0843521F40E94267CD6
:10FBA000782EEACF8B3109F4C9CE8A3A09F4C6CE51
:10FBB000863529F480E30E941E7C81E30EC08337E2
:10FBC00041F489E00E941E7C86E90E941E7C8EE141
:10FBD00004C08B3109F4B4CE8FE30E941E7CB0CEFA
:040000030000F80001
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/Flight-Ctrl_MEGA1284p_V0_80d.hex
0,0 → 1,3925
:100000000C94E7060C9436070C9436070C943607CC
:100010000C9436070C9436070C9436070C9436076C
:100020000C9436070C9402170C9436070C94360780
:100030000C9423350C9436070C9436070C94360731
:100040000C9436070C9436070C947B150C943607E9
:100050000C944B0C0C9436070C94150C0C9436072E
:100060000C94171C0C9436070C94C7300C9436076C
:100070000C94E9760C9436070C94E5710C943607D1
:100080000C9436070C9436070C943607421C471C18
:100090004C1C551C6C1C831C931CA31CC01CAC1E4C
:1000A000831C6E1D7F1DAE1DCC1DE91D431E9E1EB3
:1000B0007C200E21CB214B22B42264236F25CC253A
:1000C00039268326CE261B276C27C6272528BF283E
:1000D0005A29542AEF3016315931C931E1312232CF
:1000E000D532953395339533953395339533953391
:1000F00095339533953395334C334E3353336B33BC
:100100006D330A0D426174743A0020256420436502
:100110006C6C732000204C6F77207761726E696E73
:1001200067206C6576656C3A2025642E2564000A8C
:100130000D466F756E6420424C2D4374726C3A20EC
:10014000002564000A0D0A0D2121204D4953534911
:100150004E4720424C2D4354524C3A2025642021D6
:1001600021000A0D3D3D3D3D3D3D3D3D3D3D3D3D7B
:100170003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DAF
:100180003D3D3D3D3D3D3D000A0D43616C69627260
:100190006174696E67207072657373757265207320
:1001A000656E736F722E2E004F4B0A0D000A0D46BE
:1001B0006C696768742D74696D65202575206D699B
:1001C0006E2020546F74616C3A2575206D696E0045
:1001D0000A0D436F6E74726F6C3A2000486561645B
:1001E000696E67486F6C64004E6F726D616C202899
:1001F0004143432D4D6F646529000A0D3D3D3D3D52
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D1E
:100210003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A41
:100220000D00416E676C654E69636B2020202020B5
:100230002020416E676C65526F6C6C20202020205E
:1002400020204163634E69636B2020202020202002
:100250002020416363526F6C6C20202020202020DE
:1002600020205961774779726F202020202020209C
:1002700020204865696768742056616C7565202088
:1002800020204163635A202020202020202020208D
:1002900020204761732020202020202020202020A3
:1002A0002020436F6D706173732056616C756520FB
:1002B0002020566F6C74616765205B302E31565D6F
:1002C00020205265636569766572204C6576656CA1
:1002D00020204779726F20436F6D70617373202007
:1002E00020204D6F746F722031202020202020208C
:1002F00020204D6F746F722032202020202020207B
:1003000020204D6F746F7220332020202020202069
:1003100020204D6F746F7220342020202020202058
:1003200020203136202020202020202020202020A6
:100330002020313720202020202020202020202095
:100340002020313820202020202020202020202084
:100350002020313920202020202020202020202073
:100360002020536572766F2020202020202020201E
:100370002020486F7665726761732020202020203E
:10038000202043757272656E74205B302E31415DA2
:1003900020204361706163697479205B6D41685D01
:1003A0002020323420202020202020202020202027
:1003B0002020323520202020202020202020202016
:1003C0002020323620202020202020202020202005
:1003D00020203237202020202020202020202020F4
:1003E00020204932432D4572726F72202020202038
:1003F0002020424C204C696D697420202020202050
:1004000020204750535F4E69636B2020202020201E
:1004100020204750535F526F6C6C202020202020FA
:10042000202021212120494E434F4D504154494223
:100430004C4520212121002E000A0D20444143205B
:100440006F7220493243204552524F522120436857
:1004500065636B204932432C2033567265662C202D
:1004600044414320616E6420424C2D4374726C0001
:100470005B25695D005B25695D002B204D696B7212
:100480006F4B6F70746572202B0048573A56256485
:100490002E25642053573A25642E25642563005386
:1004A000657474696E673A2564202573004861722B
:1004B0006477617265204572726F7220313A2564EB
:1004C000202121004D697373696E6720424C2D43D2
:1004D00074726C3A25642121004D6978657220455B
:1004E00072726F722100493243204552524F52219D
:1004F0002121004865696768743A20202535690024
:10050000536574706F696E743A2535690050726571
:1005100073737572653A253569004F666673657445
:100520003A20202535690048656967687420636F43
:100530006E74726F6C0044495341424C454400480C
:10054000656967687420636F6E74726F6C004449EC
:100550005341424C4544006163742E2062656172D0
:10056000696E67004E69636B3A20202020202025A9
:10057000356900526F6C6C3A2020202020202535F0
:100580006900436F6D706173733A202020253569CF
:10059000004B313A25346920204B323A253469200A
:1005A000004B333A25346920204B343A25346920F6
:1005B000004B353A25346920204B363A25346920E2
:1005C000004B373A25346920204B383A25346920CE
:1005D000004E693A2534692020526F3A253469204B
:1005E0000047733A253469202047693A2534692049
:1005F0000050313A253469202050323A25346920A0
:100600000050333A253469202050343A253469208B
:10061000004779726F202D2053656E736F72004E04
:1006200069636B25346920282533692E25692900E3
:10063000526F6C6C25346920282533692E25692971
:100640000047696572253469202825336929004EE1
:1006500069636B2025346920282533692E25782984
:1006600000526F6C6C2025346920282533692E25B3
:10067000782900596177202025346920282533699D
:1006800029004E69636B20253469202825336929A8
:10069000282533692900526F6C6C20253469202885
:1006A00025336929282533692900596177202025B8
:1006B00034692028253369292825336929004143D5
:1006C00043202D2053656E736F72004E69636B205B
:1006D00025346920282533692900526F6C6C202548
:1006E0003469202825336929005A20202020253408
:1006F0006920282533692900566F6C746167653A53
:100700002020202533692E253169560043757272E9
:10071000656E743A2020202533692E253169410009
:10072000506F7765723A20202020202534695700C9
:100730004469736368617267653A202535696D4164
:10074000680052656365697665720052432D5253A5
:1007500053493A202020202534690052432D5175F9
:10076000616C6974793A202534690052432D4368DD
:10077000616E6E656C733A25346900436F6D70610C
:1007800073730048656164696E673A202025356996
:100790000056616C75653A2020202025356900538C
:1007A000746172743A2020202025356900506F74DE
:1007B00069313A202025336900506F7469323A203C
:1007C0002025336900506F7469333A20202533693E
:1007D00000506F7469343A202025336900506F74DB
:1007E00069353A202025336900506F7469363A2004
:1007F0002025336900506F7469373A20202533690A
:1008000000506F7469383A202025336900536572AF
:10081000766F202000536574706F696E74202025F8
:10082000336900506F736974696F6E3A20253369BC
:100830000052616E67653A2533692D25336900459D
:10084000787465726E436F6E74726F6C2020004E08
:10085000693A2534692020526F3A253469200047CF
:10086000733A253469202047693A253469200048C5
:10087000693A253469202043663A253469200042CC
:100880004C2D4374726C204572726F727320002578
:10089000336420253364202533642025336420000D
:1008A00025336420253364202533642025336420D8
:1008B00000253364202533642025336420253364E8
:1008C0002000424C2054656D7065726174757265CC
:1008D00000253369202533692025336920253369B4
:1008E00020002533692025336920253369202533ED
:1008F00069200025336920253369202533692025A7
:1009000033692000424C2D4374726C20666F756E03
:1009100064200020256320202025632020202563DB
:10092000202020256320002025632020202563200F
:1009300020202563202020256320002025632020FF
:10094000202D2020202D2020202D2000313000318E
:100950003100313200466C696768742D54696D65E9
:10096000202000546F74616C3A2535756D696E00F6
:100970004163743A20202535756D696E00287265D3
:1009800073657429000A0D47656E65726174696E3E
:10099000672064656661756C7420506172616D6575
:1009A00074657220536574202564000A0D557369BF
:1009B0006E6720506172616D657465722053657455
:1009C000202564000A0D47656E65726174696E6763
:1009D0002064656661756C74204D69786572205479
:1009E00061626C65000A0D4D697865722D436F6E0A
:1009F0006669673A202725732720282575204D6FC3
:100A0000746F727329000A0D3D3D3D3D3D3D3D3DF6
:100A10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D06
:100A20003D3D3D3D3D3D000A0D414343206E6F7409
:100A30002063616C69627261746564210D0A000A49
:100A40000D506C6561736520636F6E6E6563742015
:100A50005370656B7472756D207265636569766538
:100A60007220666F722062696E64696E67204E4FF5
:100A7000572E2E2E006F6B2E0A0D0054696D656F78
:100A800075742E0A0D0000008F001E01AD013B029F
:100A9000CA025803E603740402058F051B06A70665
:100AA0003307BE074808D2085B09E3096B0AF20A5C
:100AB000780BFD0B810C040D860D070E870E060FBB
:100AC000840F00107B10F5106E11E5115B12CF1230
:100AD0004213B31323149214FE146A15D3153B1654
:100AE000A11605176717C81727188318DE183719B6
:100AF0008E19E319361A871AD61A231B6E1BB61BDA
:100B0000FD1B411C831CC31C001D3C1D751DAB1D22
:100B1000E01D121E421E6F1E9A1EC31EE91E0D1FEF
:100B20002E1F4D1F691F841F9B1FB01FC31FD31F84
:100B3000E11FEC1FF51FFB1FFF1F0020030100003A
:100B4000BD6B00020101B06C01030202446D0200A2
:100B50000303A16D2532692E2531695600253364C2
:100B6000256320253033646D005374617475730000
:100B70004552524F523A20253264002534692025CF
:100B800032693A25303269002534696D25630025C4
:100B900033692025336920253369202533690025F1
:100BA00033692025336920253369202533690054B2
:100BB000656D706572617475726573202020200008
:100BC0002563432020202020002532692E2531690D
:100BD0005620202533692E25316941002534695777
:100BE000202536696D4168002532756D2F732053BD
:100BF00061743A2564200020203344004E6F46780B
:100C0000004447505300486F6D653A2533646D20AA
:100C10002533642563004E6F204E617669437472FC
:100C20006C21000A0D7777772E4D696B726F4B6FD1
:100C3000707465722E646520286329204869537991
:100C40007374656D7320476D6248000A0D746865A2
:100C500020757365206F66207468697320736F66F2
:100C60007477617265206973206F6E6C792070658E
:100C7000726D6974746564200A0D6F6E206F7269FD
:100C800067696E616C204D696B726F4B6F70746534
:100C9000722D48617264776172650041435420444B
:100CA000534C004A65746920736174656C6C697497
:100CB000005370656B7472756D20736174656C6C34
:100CC000697420284C6F77207265736F6C75746936
:100CD0006F6E29005370656B7472756D207361744B
:100CE000656C6C6974202832303438290053706583
:100CF0006B7472756D20736174656C6C6974004DF2
:100D0000756C74697369676E616C2050504D000A90
:100D10000D52656365697665723A2000756E6B6E7B
:100D20006F776E2E205573696E672050504D2E2EB2
:100D30002E006E6F7420737570706F72746564200E
:100D4000627920686172647761726521000A0D3DE5
:100D50003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC3
:100D60003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DB3
:100D70003D3D000A0D466C69676874436F6E74727E
:100D80006F6C0A0D48617264776172653A25642E52
:100D900025640A0D536F6674776172653A5625644F
:100DA0002E2564256320000A0D3D3D3D3D3D3D3D22
:100DB0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D63
:100DC0003D3D3D3D3D3D3D3D3D3D3D3D0000112412
:100DD0001FBECFEFD0E4DEBFCDBF11E0A0E0B1E099
:100DE000E8E3F4EF00E00BBF02C007900D92A23FD2
:100DF000B107D9F718E0A2EFB1E001C01D92AC39FC
:100E0000B107E1F77AEAE2E0F0E081E2809357008F
:100E1000D4907E010894E11CF11C20EF37EF41E0F3
:100E200050E087016FE0DA01C9012F5F3F4F4F4F5C
:100E30005F4FABBFFC018791F80181938F01615037
:100E400067FFF1CFF7016EE08191782770956150CF
:100E500067FFFACF8889781729F0F7E9DF1611F4D0
:100E60000000FECF0E94F7070C941B7A0C94000040
:100E700080910406E82FFF27EE0FFF1FE55DF84F76
:100E8000808191818D5E9F4F14F0109203018081CB
:100E900091818A5B9F4FCCF4809103018823A9F450
:100EA00081E08093030180915B048F5F80935B04FA
:100EB000853038F088EE93E09093220280932102EF
:100EC00004C066E970E00E948D3880915B04992728
:100ED0009093D5058093D40508951F93CF93DF9306
:100EE000182F882389F082E091E09F938F938FE5FC
:100EF00092E19F938F93E0912704F0912804099544
:100F00000F900F900F900F9080912706823308F07A
:100F100044C084EF91E00E948216EC01112329F075
:100F2000CE010E948B168823D9F3C2E0D0E026E5DB
:100F300030E080911D0190911E018217930730F0DF
:100F40002196255D3F4FC730D10598F38091270644
:100F50009927C89F9001C99F300DD89F300D11244B
:100F6000209300011123D9F068EC70E08C2F0E94CF
:100F70008D38DF93CF938AE091E09F938F938FE535
:100F800092E19F938F93E0912704F09128040995B3
:100F90008DB79EB706968DBF02C0809300011123C6
:100FA00011F1809100016AE00E946E79892F9927E2
:100FB0009F938F93809100010E946E7999279F9350
:100FC0008F9385E191E09F938F938FE592E19F93BB
:100FD0008F93E0912704F091280409952DB73EB72F
:100FE000285F3F4F2DBFDF91CF911F910895CFEF25
:100FF000D0E4DEBFCDBF8824992414B815B807EE1D
:1010000013E00253104017FFFCCF85E180930201EB
:1010100081E887B93E9A8FEF88B98BE184B981E086
:1010200085B98EE38AB987E48BB9469A84B7877FFE
:1010300084BF80916000886180936000109260009E
:1010400084EC99E09093220280932102109216037F
:10105000109215031092300710922F071092180368
:101060001092170310921A031092190384EC94E063
:10107000A0E0B0E08093950190939601A093970132
:10108000B093980128980E94EB160E94BC160E940B
:1010900067120E9407350E94D01A0E947E300E947B
:1010A000C8630E94906E0E941C76809102018C3071
:1010B00010F4299A01C0299878940E94982F809161
:1010C0006B02826080936B0210926D020E94F54366
:1010D00084EF91E00E9482168C0180916B0280FD6A
:1010E00005C0C8010E948B168823B9F38FE291E0F6
:1010F0009F938F93BFE5AB2EB2E1BB2EBF92AF9211
:10110000E0912704F0912804099580EA9FE00E946D
:1011100082168C01C0E0D0E00F900F900F900F90DE
:10112000ADECEA2EA6E0FA2EF1E8CF2EF6E0DF2EA7
:101130000E94F54380916B0280FD05C0C8010E94AA
:101140008B168823B9F3F60180811816ACF40BC016
:101150000E94F54380916B0280FD05C0C8010E948A
:101160008B168823B9F3C8010E948B16882321F4BB
:10117000F7018081882364F7F701808187FF18C019
:101180002196DF93CF93219781E491E09F938F93F2
:10119000BF92AF92E0912704F091280409958091C5
:1011A000F2018F5F8093F2018DB79EB706968DBFD7
:1011B0002196E4E0F0E0CE0EDF1E88E090E0E80E3D
:1011C000F91ECC30D10508F4B3CFC0E0D0E00AEC72
:1011D00016E0E1E8EE2EE6E0FE2EF801838187FDC1
:1011E0001CC0F70180811816C4F42196DF93CF93B9
:1011F000219784E491E09F938F938FE592E19F93F1
:101200008F93E0912704F0912804099582E0809360
:101210001F028DB79EB706968DBFF8018381807837
:101220008383219684E090E0E80EF91E085F1F4F4B
:10123000CC30D10590F282E691E09F938F93CFE579
:10124000D2E1DF93CF93E0912704F0912804099530
:10125000909102068091F2010F900F900F900F90E5
:10126000981728F48091410480618093410488E8B4
:1012700091E09F938F93DF93CF93E0912704F091B8
:101280002804099588EE93E00E9482168C010E9442
:10129000D61A0F900F900F900F90C8010E948B16D6
:1012A0008823D9F388EA91E09F938F93DF93CF93BC
:1012B000E0912704F0912804099580E00E944F39BD
:1012C000809102010F900F900F900F908A3011F0D3
:1012D000843110F0289801C0289A80ED97E090930F
:1012E00022028093210285E580935D048EE090E0E8
:1012F0000E94102E9927182F00278FE090E00E945F
:10130000102E080F111D1093F8010093F7018AE0C9
:1013100090E00E94102E9927182F00278BE090E074
:101320000E94102E080F111D1093F6010093F50175
:101330000F5F1F4F39F08091F7019091F8018F5F97
:101340009F4F41F41092F8011092F7011092F601AC
:101350001092F5018091F5019091F6019F938F9382
:101360008091F7019091F8019F938F938DEA91E01E
:101370009F938F93DF93CF93E0912704F0912804FC
:1013800009958DB79EB708968DBF80ED91E09F932C
:101390008F93DF93CF93E0912704F0912804099570
:1013A000809110060F900F900F900F90E0912704FE
:1013B000F091280482FF07C08CED91E09F938F93FA
:1013C000DF93CF9308C088EE91E09F938F938FE5D2
:1013D00092E19F938F9309950F900F900F900F902C
:1013E0000E94F31F88E893E190939201809391010A
:1013F00081E080935C040E946D0780912A060E9420
:1014000082758AEF91E09F938F93DF93CF93E09162
:101410002704F0912804099580ED97E00E94821638
:101420008C018AEF90E00E948216EC0183E08093A9
:10143000AC050F900F900F900F90CE010E948B166D
:10144000882339F084E690E00E948216EC010E9425
:10145000D87680912502882309F4DFC180910F019D
:10146000882309F4DAC11092250280915B04882355
:1014700019F00E94380702C00E9489460E94F54375
:10148000209102012A3011F0243110F0289801C077
:10149000289A80911B0390914104882339F0809110
:1014A0001B03815080931B03977F0AC080916F00BC
:1014B000806280936F0010922C0710922B07986027
:1014C00090934104809191019091920101979093A2
:1014D0009201809391018091910190919201892BC9
:1014E00029F080916C02882309F43EC0809191011B
:1014F00090919201892B01F50E94A43085E090E043
:1015000090939201809391018091E6059091E70577
:1015100001969093E7058093E6058091E702806845
:101520008093E7028091410481608093410480911F
:10153000AD0582608093AD0580910801909109010D
:101540008F5F9F4F19F5809112038823F9F080E196
:1015500097E2909322028093210280E890E090939A
:1015600009018093080112C02A3011F0243110F0D3
:10157000289801C0289A8091210290912202892BFB
:1015800029F48091E7028F778093E702809125020A
:10159000882309F042C10E94AB120E94890EC80143
:1015A0000E948B16882309F434C10C5E1F4F809172
:1015B0006C0290914104882339F092609093410429
:1015C0008091AD0582600CC09D7F90934104809115
:1015D000910190919201079728F08091AD058D7F40
:1015E0008093AD058091910190919201079728F029
:1015F000809141048E7F809341048091050188236E
:1016000021F081508093050125C0809367041092DA
:10161000F3021092F2021092F1021092F002109274
:10162000EF021092EE0280910801909109018F5F04
:101630009F4F81F480911B03882361F488E99AE32A
:10164000909322028093210280E09CE09093090114
:10165000809308018091E801893C70F0815080936B
:10166000E8018091E7028F7B8093E702809141043B
:101670008B7F8093410435C080910908882309F14C
:101680008091E70280648093E70280914104846046
:101690008093410480910801909109018F5F9F4FD1
:1016A00081F480911203882361F088E99AE3909392
:1016B00022028093210280E098EA909309018093AE
:1016C00008011092F9031092F8031092F703109298
:1016D000F6038FEF9FEF90933708809336081092B0
:1016E000E80180910001282F332780911D019091FE
:1016F0001E0182179307CCF48091E70280628093E9
:10170000E70280910801909109018F5F9F4FC1F41A
:1017100080E797E1909322028093210280E093E09A
:1017200090930901809308010BC080912102909150
:101730002202892B29F48091E7028F7D8093E702B2
:101740000E94C66784E08093200280911203882360
:1017500029F45AEA852E55E0952E12C08091F901A0
:101760008F5F8093F901813359F41092F9018091D0
:10177000F3019091F40101969093F4018093F301A9
:101780000894811C911CF2E78F16FBE09F0609F07C
:1017900040C0882499242091F7013091F8012F5FEF
:1017A0003F4F3093F8012093F7018091F50190911C
:1017B000F60101969093F6018093F501832F992706
:1017C000682F8EE090E00E94182E8091F701909192
:1017D000F8019070682F8FE090E00E94182E8091A1
:1017E000F5019091F601892F9927682F8AE090E002
:1017F0000E94182E8091F5019091F6019070682F4B
:101800008BE090E00E94182E84E190E00E94821606
:101810008C010E9416680E94A76E80912002882386
:1018200009F00BCE0E94E96308CE1F920F920FB60B
:101830000F9211248F939F93EF93FF938091070151
:101840008823E1F480911302909114020196909301
:10185000140280931302FC01E45FFA4FE081ED3043
:1018600019F0803A910539F4109214021092130283
:1018700081E080930701E093C60004C01092140237
:1018800010921302FF91EF919F918F910F900FBED5
:101890000F901F9018951F920F920FB60F92112460
:1018A0002F933F934F935F936F937F938F939F9368
:1018B000AF93BF93CF93EF93FF9390E08091C600D7
:1018C00080930B0250911902503A10F090931A0233
:1018D00080910B028D3009F065C080911A02823030
:1018E00009F060C090931A02852F992786599B4F63
:1018F000FC01329740812091150230911602241B81
:101900003109DC0111978C91281B3109C9019F70A5
:10191000909316028093150246E0969587954A9516
:10192000E1F7982F935C909317022F733070235C2C
:10193000209318028081981729F48C91281711F4AC
:1019400091E006C090E0809108028F5F80930802CA
:10195000C0910A02CC2309F074C0992309F471C024
:1019600081E080930A02580F509307025150E52FEF
:10197000FF27E659FB4F8DE0808380916C04823510
:1019800009F05FC00E94F31F88E190E02CE00FB6E1
:10199000F894A895809360000FBE20936000C093D8
:1019A0001F024FC020911A02822F99278130910582
:1019B000F9F0823091051CF4892B21F040C0029788
:1019C00011F13DC080910B02833239F480910A02FB
:1019D000882319F481E080931A0280910B0280938E
:1019E0006A0481E08093190280910B02992722C03A
:1019F0002F5F20931A02E52FFF27E659FB4F8091B6
:101A00000B02808309C0E52FFF27E659FB4F809129
:101A10000B028083503A20F45F5F5093190202C09A
:101A200010921A0220910B028091150290911602D9
:101A3000820F911D909316028093150202C010929E
:101A40001A02FF91EF91CF91BF91AF919F918F912A
:101A50007F916F915F914F913F912F910F900FBEAA
:101A60000F901F901895AC01A0E0B0E09D01A81761
:101A7000B90748F4ECE0F5E08191280F311D11968B
:101A8000A417B507C8F33F70FD01E45FFA4FC90121
:101A900056E0969587955A95E1F7835C8083119679
:101AA000FD01E45FFA4F2F733070822F835C8083D7
:101AB000A35FBA4F8DE08C931092070180910C05C3
:101AC0008093C6000895A0E0B0E0E9E6FDE00C9444
:101AD000E7792C859D850E85BB2483E280930C05D8
:101AE0009F5990930D0520930E0533E0E32EF12CC2
:101AF000002309F49EC0CF84D888BE016D5E7F4F5D
:101B0000A989BA890150109709F493C01097B9F0C8
:101B1000F601EB0DF11DB3949081119791F4002320
:101B200049F1FB016E5F7F4FDB01C080D1806E5FAA
:101B30007F4F0D90BC91A02DBB24015002C090E0BE
:101B400019C01097B9F0F601EB0DF11DB394408167
:101B5000119791F4002341F1FB016E5F7F4FDB0190
:101B6000C080D1806E5F7F4F0D90BC91A02DBB24B3
:101B7000015002C040E018C01097B1F0F601EB0D23
:101B8000F11DB3941081119781F4002371F0FB01D2
:101B90003296DB01CD90DC90BF016E5F7F4FA0815C
:101BA000B181BB24015001C010E0F701E45FFA4F9E
:101BB000892F86958695835C80830894E11CF11CAF
:101BC000F701E45FFA4F892F99278370907024E022
:101BD000880F991F2A95E1F755279A0194E03695C9
:101BE00027959A95E1F7822B835C80830894E11C0A
:101BF000F11CF701E45FFA4F4F705070440F551F0E
:101C0000440F551F812F992726E0969587952A9591
:101C1000E1F7842B835C80830894E11CF11CF701BD
:101C2000E45FFA4F1F73135C10830894E11CF11CEE
:101C30006ACFC7010E94330DE9E00C94037AA3E058
:101C40007A2F409107024650442309F458C0E72FE9
:101C5000FF27E659FB4F80818D537F5FE72FFF27DA
:101C6000E659FB4F20812D537F5FE72FFF27E65971
:101C7000FB4F30813D537F5FE72FFF27E659FB4F36
:101C800060816D537F5F9927880F991F880F991F77
:101C9000522F52955F70582B822F99278F7090701A
:101CA000F4E0880F991FFA95E1F7232F26952695E2
:101CB000282B832F992783709070E6E0880F991F57
:101CC000EA95E1F7682B41504F3FC9F0EA2FFF2713
:101CD000E659FB4F5083AF5F41504F3F81F0EA2FF1
:101CE000FF27E659FB4F2083AF5F41504F3F39F04C
:101CF000EA2FFF27E659FB4F6083AF5FA5CF8DE644
:101D000094E09093060280930502A350A0930402EE
:101D10000895A2E0B0E0EFE8FEE00C94ED79809148
:101D20000A02882309F4C7C30E941F0E80916B0426
:101D3000823609F081C280916C0499278137910520
:101D400009F4C0C082379105C4F48D36910509F4B9
:101D500082C08E36910544F48B34910531F186367C
:101D6000910509F454C168C28E36910509F45BC02F
:101D70008037910509F49FC05FC28537910509F44A
:101D8000E2C18637910544F48337910509F4DCC03C
:101D90008437910539F150C28737910509F410C293
:101DA0008937910509F46AC147C2E0910502F091B3
:101DB00006028081918190932E0380932D032091C0
:101DC0002B0330912C03821B930B845E9D4F68E69E
:101DD00071E00E948E79845B904090932A038093F7
:101DE00029032AC280910702A0910502B091060240
:101DF000853140F080E1E5E4F4E00D9001928A95B0
:101E0000E1F70DC08D919D910D90BC91A02D809317
:101E1000450490934604A0934704B093480480EF90
:101E2000809302024BC0809107018823E1F38DE487
:101E300090E09F938F9384E796E09F938F9381E048
:101E40008F938F938EE48F930E94630D8DB79EB70F
:101E500007968DBFF1C1A0910502B09106021C91B9
:101E6000113081F48DE4E4E7F6E00D9001928A955B
:101E7000E1F70E94182F1983809141048F7E80938F
:101E8000410401C01982809107018823E1F381E0B8
:101E900090E09F938F93CE0101969F938F9381E063
:101EA0008F938F938DE48F930E94630DADB7BEB770
:101EB0001796ADBFC1C181E080930D028FEF809373
:101EC0000501BAC1E0910502F091060280818F3FC1
:101ED00039F40E947B2FE0910502F0910602808385
:101EE000E0910502F09106028081882311F481E0DF
:101EF00003C0863010F085E08083E0910502F09108
:101F0000060280810E942E2EE0910502F0910602C9
:101F100080818983809107018823E1F380E790E045
:101F20009F938F9383E096E09F938F9381E090E05F
:101F30009F938F93CE0101969F938F9382E08F930F
:101F400081E08F9381E571C12091050230910602F5
:101F5000D9018C918150853008F040C0F901818110
:101F60008435E1F52F5F3F4F80E7E3E0F6E0D901EC
:101F70000D9001928A95E1F7F90182910E94972EC6
:101F8000809142069927AA27BB27BC01CD0124ECEA
:101F900039E040E050E00E944F79DC01CB018093B2
:101FA000B5019093B601A093B701B093B8018091A9
:101FB00043069927AA27BB27BC01CD010E944F7970
:101FC000DC01CB018093B1019093B201A093B301E6
:101FD000B093B4010E947B2F898301C01982809144
:101FE00007018823E1F381E090E09F938F93CE0176
:101FF00001969F938F9381E08F938F9383E58F93C7
:102000000E94630D8DB79EB707968DBF26C0E091E5
:102010000502F0910602E0818E2F8150853018F480
:102020008E2F0E942E2E0E947B2F89838091070184
:102030008823E1F381E090E09F938F93CE01019696
:102040009F938F9381E08F938F9386E48F930E9469
:10205000630DADB7BEB71796ADBF8091120388234D
:1020600029F46EE670E089810E948D3880E00E943C
:102070006D0780912A060E948275DEC0E0910502FC
:10208000F09106028081992787FD909590934607ED
:10209000809345078181992787FD90959093480704
:1020A000809347078281992787FD909590934A07EF
:1020B000809349078381992787FD909590934C07DA
:1020C00080934B078481992787FD909590934E07C5
:1020D00080934D078581992787FD909590935007B0
:1020E00080934F078681992787FD9095909352079B
:1020F000809351078781992787FD90959093540786
:10210000809353078085992787FD90959093560774
:10211000809355078185992787FD9095909358075F
:10212000809357078285992787FD909590935A074A
:10213000809359078385992787FD909590935C0735
:1021400080935B0779C0E0910502F09106028081DF
:102150000E9460348A83882319F481E0898301C056
:102160001982809107018823E1F388E090E09F9332
:102170008F9382EC96E09F938F9321E030E03F9322
:102180002F9380910502909106029F938F933F9326
:102190002F93CE0102969F938F933F932F93CE015F
:1021A000820F931F9F938F9384E08F9381E08F938F
:1021B00085E58F930E94630DEDB7FEB773963BC024
:1021C000809104028930C0F120910502309106020D
:1021D0002F5F3F4F88E0A2ECB6E0F90101900D922D
:1021E0008A95E1F7D9018E910E94B6338A838823BC
:1021F00019F481E0898301C0198280910701882345
:10220000E1F321E030E03F932F93CE0102969F93BC
:102210008F933F932F93CE01820F931F9F938F93A2
:1022200082E08F9381E08F9387E58F930E94630D07
:10223000EDB7FEB73B96EDBF80916C0499278436CD
:10224000910509F4CDC085369105ACF48136910530
:1022500009F481C0823691052CF48B34910509F480
:102260005DC021C18236910509F482C08336910593
:1022700009F491C018C18C36910509F4FFC08D3660
:1022800091054CF48736910509F40AC18836910509
:1022900009F4C4C008C18437910529F08637910537
:1022A00009F4FAC000C180910702A0910502B09123
:1022B0000602803140F080E1E5E4F4E00D90019207
:1022C0008A95E1F70DC08D919D910D90BC91A02D47
:1022D0008093450490934604A0934704B093480428
:1022E000809107018823E1F31F92809104018F936D
:1022F00084E58F930E94630D8AEF809302028FEF33
:102300008093050180EA9FE00E9482169093FB0172
:102310008093FA010F900F900F90C5C0E0910502D5
:10232000F09106028081918190932E0380932D037A
:1023300020912B0330912C03821B930B845E9D4FC5
:1023400068E671E00E948E79845B904090932A0346
:1023500080932903A8C0E0910502F09106028081D4
:1023600080930601803298F08FE1809306010FC0C0
:10237000A0910502B09106028BE0EDE5F4E00D902E
:1023800001928A95E1F7809166048093EE058FEFC4
:102390008093050188C08091FE019091FF01892BF7
:1023A00089F4E0910502F0910602E081EE2351F0FC
:1023B0008AE0E89FC00111240E948216909338049D
:1023C00080933704E0910502F091060290818AE043
:1023D000989FC00111249093FF018093FE0115C0C6
:1023E0008FEF80930501E0910502F0910602908144
:1023F0008AE0989FC001112490930102809300020B
:10240000892B19F081E080930F0280EA9FE00E94FF
:1024100082169093FB018093FA0145C08FEF809361
:102420000501E0910502F0910602908197FD08C038
:1024300082E080930C021092FD011092FC011AC000
:10244000909580916402892B8093640291818AE047
:10245000989FC00111249093FD018093FC0184E0BA
:1024600080930C0280EA9FE00E9482169093FB0109
:102470008093FA0181E08093100215C08FEF809362
:102480000501E0910502F0910602808180936502CA
:1024900081E08093110207C081E080930E0203C0A7
:1024A00081E08093120210920A02109206021092AA
:1024B000050210920402E3E0CE5F0C94097A982F93
:1024C0008091C00085FFFCCF9093C60008950F93C4
:1024D0001F9388E18093C1008091C0008260809347
:1024E000C0008091C10080688093C1008091C100CC
:1024F00080648093C10000E010E00093C5008AE290
:1025000090E08093C40080910002909101020E94AB
:10251000821690933A04809339048CED90E00E94E7
:102520008216909369048093680410923B0480E5BE
:1025300080933C0483E080933F048BE080933D04D0
:1025400010923E04109306020093050210920402BA
:102550001F910F910895A0E1B0E0E1EBF2E10C943E
:10256000EA7980910701882309F4C1C28091FA01B8
:102570009091FB010E948B16882361F01092FD015F
:102580001092FC0110920102109200021092FF01C1
:102590001092FE018091FC019091FD01892B41F088
:1025A00080910A0590910B050E948B16882329F4CF
:1025B00080911002882309F460C08091070188236C
:1025C00009F45BC080910C0200E211E08430A8F0B5
:1025D0000E94072080E590E09F938F931F930F93B5
:1025E00081E08F938F9388E48F930E94630D2DB7C2
:1025F0003EB7295F3F4F2DBF34C01092660282E282
:1026000094E09F938F938CEF9FE19F938F93E09142
:102610002704F0912804099584E190E09F938F931B
:102620001F930F9381E090E09F938F938CE092E053
:102630009F938F9382E08F9381E08F9388E48F93B1
:102640000E94630D80910C02982F8F5F80930C0283
:102650002DB73EB7215F3F4F2DBF943010F0109241
:102660000C028091FC019091FD010E9482169093D2
:102670000B0580930A0510921002809111028823A5
:1026800051F180910701882331F10E94072080E5F4
:1026900090E09F938F9380E291E09F938F9321E04E
:1026A00030E03F932F938FE191E09F938F933F937F
:1026B0002F9385E692E09F938F9383E08F9381E041
:1026C0008F938CE48F930E94630D109211028DB74B
:1026D0009EB70F968DBF80910E028823D1F0809116
:1026E00007018823B1F08AE090E09F938F938BE3FA
:1026F00094E09F938F9381E08F938F9386E58F93E0
:102700000E94630D10920E022DB73EB7295F3F4F16
:102710002DBF809112028823D9F080910701882370
:10272000B9F08BE090E09F938F938DE594E09F93B9
:102730008F9381E08F93809104018F9387E48F932F
:102740000E94630D109212028DB79EB707968DBF3F
:1027500080916804909169040E948B16882309F483
:1027600061C080910701882309F45CC080911F0635
:102770009927880F991F880F991F7C010027F7FC64
:102780000095102F80916F0390917003A0917103B9
:10279000B0917203BC01CD01A80197010E94C379D9
:1027A00030935604209355048091670390916803F9
:1027B000A0916903B0916A03BC01CD01A801970102
:1027C0000E94C37930935804209357048091FC02EF
:1027D000809359048091FB0280935A0488E090E032
:1027E0009F938F9385E594E09F938F9381E08F93E0
:1027F00083E08F938BE68F930E94630D80915B043F
:102800002DB73EB7295F3F4F2DBF853018F086E0CA
:1028100080935B0483E690E00E94821690936904A3
:10282000809368048091000290910102892B41F00D
:102830008091390490913A040E948B16882321F4E8
:1028400080910F02882339F180910701882319F1C3
:102850000E94833782E490E09F938F938CEA95E007
:102860009F938F9381E08F938F9384E48F930E9443
:10287000630D10920F028DB79EB707968DBF8091A2
:10288000000290910102009731F00E94821690930D
:102890003A04809339048091FE019091FF01892BC5
:1028A00009F4B8C080913704909138040E948B16C7
:1028B000882309F4AFC080910701882309F4AAC0D6
:1028C00080911F069927880F991F880F991F7C01F7
:1028D0000027F7FC0095102F80916F0390917003F3
:1028E000A0917103B0917203BC01CD01A8019701C1
:1028F0000E94C37930932A042093290480916703AE
:1029000090916803A0916903B0916A03BC01CD0165
:10291000A80197010E94C37930932C0420932B04C3
:102920002091F1073091F2074091F3075091F4079D
:10293000DA01C90163E0880F991FAA1FBB1F6A95BE
:10294000D1F7820F931FA41FB51F820F931FA41FDF
:10295000B51F2091950130919601409197015091BA
:102960009801BC01CD010E94C37930932E042093BD
:102970002D048091370390913803A0913903B091D1
:102980003A0339E0B595A795979587953A95D1F78C
:1029900080932F048091330390913403A0913503E9
:1029A000B091360329E0B595A795979587952A9517
:1029B000D1F78093300480913F0390914003A09120
:1029C0004103B091420309E0B595A7959795879586
:1029D0000A95D1F7809331048EE090E09F938F9316
:1029E00089E294E09F938F9381E08F938F9383E4A8
:1029F0008F930E94630D8091FE019091FF010E94D0
:102A0000821690933804809337042DB73EB7295F20
:102A10003F4F2DBF809106018F3F71F1992714E040
:102A2000880F991F1A95E1F78E5D9D4F40E150E0A8
:102A3000BC01CE0101960E94A27780E190E09F93B5
:102A40008F93CE0101969F938F9381E090E09F93A7
:102A50008F9386E091E09F938F9382E08F9381E044
:102A60008F9381E48F930E94630D8FEF8093060113
:102A70008DB79EB70B968DBF8091EE058823D1F060
:102A8000809107018823B1F081E090E09F938F93BC
:102A90008EEE95E09F938F9381E08F938F9382E4E6
:102AA0008F930E94630D1092EE052DB73EB7295FFC
:102AB0003F4F2DBF80910D028823C9F080910701FF
:102AC0008823A9F084E390E09F938F938BE297E0B3
:102AD0009F938F9381E08F938F9380E58F930E94D4
:102AE000630D10920D028DB79EB707968DBFE6E07D
:102AF000C05F0C94067A1F920F920FB60F921124AA
:102B00002F933F935F936F937F938F939F93AF9395
:102B1000BF93EF93FF9320E080912002882329F058
:102B20008091200281508093200280910A048823A2
:102B300019F0815080930A0480912802815080937B
:102B400028028F3F09F057C089E0809328028091C6
:102B500026029091270201969093270280932602E5
:102B600080910A018F5F817080930A01882319F494
:102B700081E08093250286B180912102909122020A
:102B8000892B21F180912102909122020B9750F024
:102B900080912102909122020A97909322028093C1
:102BA000210204C01092220210922102809121027F
:102BB00090912202209108013091090182239323F0
:102BC000892B11F021E008C020E006C08FEF9FEFB5
:102BD000909309018093080180910201222331F032
:102BE0008A3011F45A9A07C0479A05C08A3011F406
:102BF0005A9801C0479880912902882309F472C02D
:102C00002091E801222309F06DC08091100683FF16
:102C100069C086B19927FC01E071F07084FF14C08F
:102C20008091230290912402019690932402809334
:102C300023028091230290912402895E934008F43C
:102C400051C0209329024EC080912302909124020A
:102C5000892B09F443C080912302909124028A5663
:102C60009140E0F5809123029091240269E270E0A6
:102C70000E947A798091230290912402860F971FF7
:102C80009093240280932302809123029091240246
:102C90000B9750F080912302909124020A97909311
:102CA0002E0380932D0304C0F0932E03E0932D0395
:102CB00080912D0390912E0320912B0330912C03B2
:102CC000821B930B845E9D4F68E671E00E948E79B3
:102CD000845B904090932A038093290310922402EE
:102CE00010922302FF91EF91BF91AF919F918F912D
:102CF0007F916F915F913F912F910F900FBE0F9039
:102D00001F9018952091260230912702280F391F15
:102D1000C901019608952091260230912702821B55
:102D2000930B892F99278695807490700895CF937F
:102D3000DF930E948216EC01CE010E948B1688233D
:102D4000D9F3DF91CF910895CF93DF930E9482163C
:102D5000EC0109C080910F01882329F090930F01A5
:102D60008FEC80937A00CE010E948B16982F8823D7
:102D700089F3DF91CF9108959FB7F8945F983E9AB9
:102D8000469A8091B0008F708093B0008091B0001F
:102D900083608093B0008091B1008B738093B10009
:102DA0008091B1008B608093B1001092B2008FEFE0
:102DB0008093B3008091B00080688093B0008091D0
:102DC00070008A7F80937000809170008260809391
:102DD00070009FBF08958AE090E00E948216909351
:102DE00031028093300282E085BD83EA84BD17BC46
:102DF00084EB88BD86E086BD80916E008160809303
:102E00006E0008951F920F920FB60F9211242F9308
:102E10003F934F935F936F937F938F939F93AF9362
:102E2000BF93CF93DF93EF93FF9380910201909133
:102E30002A02843108F011C1992309F06AC38091F4
:102E4000B00086FFECC08091B0008F7B8093B00013
:102E500089EA93E090932C0280932B0280910B01DE
:102E600090910C019C01220F331F280F391F809174
:102E7000A1019927880F991F880F991F280F391FC3
:102E800037FF02C02D5F3F4FC901959587959595F6
:102E9000879590930C0180930B0190931E02809371
:102EA0001D02809165066091310620916F0330917B
:102EB0007003409171035091720380FF2CC07727FB
:102EC00088279927EA01D90157FF04C0A158BF4FAD
:102ED000CF4FDF4FE7E0D595C795B795A795EA9512
:102EE000D1F79D01AE010E944F799B01AC0197FF84
:102EF00004C0215C3F4F4F4F5F4F66E055954795AB
:102F0000379527956A95D1F780911D0290911E0201
:102F1000820F931F2BC0772788279927EA01D901B1
:102F200057FF04C0A158BF4FCF4FDF4F27E0D595C3
:102F3000C795B795A7952A95D1F79D01AE010E9437
:102F40004F799B01AC0197FF04C0215C3F4F4F4F6D
:102F50005F4FF6E05595479537952795FA95D1F748
:102F600080911D0290911E02821B930B90931E0272
:102F700080931D0280913206282F3327220F331FA2
:102F8000220F331F80911D0290911E02821793071A
:102F90007CF080913306282F3327220F331F220F16
:102FA000331F80911D0290911E022817390724F4C7
:102FB00030931E0220931D0220912B0230912C028F
:102FC00080911D0290911E02280F391F205032401F
:102FD00030932C0220932B0280911D0290911E02AF
:102FE00097FD0396959587959595879590931E02E5
:102FF00080931D0245E02D3D340718F08CED95E0DF
:1030000005C02757314030F487E791E090932C02B8
:1030100080932B0280912B0290912C0243C28091CD
:10302000B00080648093B00080913806282F332749
:103030008DED96E0289FA001299F500D389F500DDF
:103040001124CA0120912D0230912E02821B930B74
:1030500090932C0280932B0259C2992309F059C2F4
:103060008091B00086FF23C28091B0008F7B809357
:10307000B000E0912F02EE23F1F480913806282F62
:1030800033278DED96E0289FA001299F500D389F92
:10309000500D1124CA0120912D0230912E02821B65
:1030A000930B90932C0280932B0210922E0210927D
:1030B0002D02469A2BC289EA93E090932C028093CA
:1030C0002B028E2F99278330910509F4A4C18430F7
:1030D00091053CF48130910561F0029709F4D2C06A
:1030E000AAC18430910509F499C1059709F4A0C1DA
:1030F000A2C180910B0190910C019C01220F331F02
:10310000280F391F8091A1019927880F991F880FD7
:10311000991F280F391F37FF02C02D5F3F4FC9018C
:10312000959587959595879590930C0180930B01C4
:1031300090931E0280931D02809165066091310676
:1031400020916F033091700340917103509172038D
:1031500080FF2CC0772788279927EA01D90157FFDC
:1031600004C0A158BF4FCF4FDF4F27E0D595C7957B
:10317000B795A7952A95D1F79D01AE010E944F7989
:103180009B01AC0197FF04C0215C3F4F4F4F5F4F45
:10319000A6E05595479537952795AA95D1F7809143
:1031A0001D0290911E02820F931F27C07727882748
:1031B000992757FF04C021583F4F4F4F5F4FF7E00B
:1031C0005595479537952795FA95D1F70E944F79F0
:1031D0009B01AC0197FF04C0215C3F4F4F4F5F4FF5
:1031E000E6E05595479537952795EA95D1F7809173
:1031F0001D0290911E02821B930B90931E028093DE
:103200001D0280913206282F3327220F331F220FF1
:10321000331F80911D0290911E02821793077CF04C
:1032200080913306282F3327220F331F220F331F9D
:1032300080911D0290911E022817390724F43093C3
:103240001E0220931D0280912B0290912C0220914E
:103250001D0230911E02820F931F80509240909366
:103260002C0280932B0280911D0290911E0297FDEB
:103270000396959587959595879590931E028093D3
:103280001D02ECC080910D0190910E019C01220F56
:10329000331F280F391F8091A0019927880F991F8C
:1032A000880F991F280F391F37FF02C02D5F3F4F2E
:1032B000C901959587959595879590930E01809373
:1032C0000D0190931C0280931B0280916506609112
:1032D0003506A0916703B0916803C0916903D0914E
:1032E0006A0381FF2AC07727882799279D01AE01AD
:1032F000D7FF04C021583F4F4F4F5F4FA7E0559570
:10330000479537952795AA95D1F70E944F799B014C
:10331000AC0197FF04C0215C3F4F4F4F5F4FF6E079
:103320005595479537952795FA95D1F780911B02CA
:1033300090911C02820F931F29C077278827992715
:103340009D01AE01D7FF04C021583F4F4F4F5F4F43
:10335000E7E05595479537952795EA95D1F70E946F
:103360004F799B01AC0197FF04C0215C3F4F4F4F49
:103370005F4F76E055954795379527957A95D1F724
:1033800080911B0290911C02821B930B90931C0254
:1033900080931B0280913606282F3327220F331F7C
:1033A000220F331F80911B0290911C0282179307FA
:1033B0007CF080913706282F3327220F331F220FEE
:1033C000331F80911B0290911C022817390724F4A7
:1033D00030931C0220931B0280912B0290912C02AF
:1033E00020911B0230911C02820F931F805092404B
:1033F00090932C0280932B0280911B0290911C02CF
:1034000097FD0396959587959595879590931C02C2
:1034100080931B0223C08091BF0702C0809199074F
:103420009927880F991F880F991F87559E4F12C0A3
:103430008091C707F5CFFF27EE0FFF1FE55DF84F1F
:1034400020813181220F331F80912B0290912C0219
:10345000820F931F90932C0280932B0280912B025A
:1034600090912C0255E08D3D950718F08CED95E07C
:1034700005C08757914030F487E791E090932C0284
:1034800080932B0220912B0230912C022C5B304038
:1034900030932C0220932B0280912D0290912E02CA
:1034A000820F931F90932E0280932D022FC0809144
:1034B000B00080648093B0008CEB90E090932C027D
:1034C00080932B0280912D0290912E0284549F4F65
:1034D00090932E0280932D0280911F02882321F069
:1034E00080911B03853B20F480911F02823011F4F0
:1034F000469801C0469A80912F028F5F80932F02D9
:1035000090913806981710F410922F0281E0809362
:103510002A0220912B0230912C0241E02F373407F0
:1035200030F08FEF8093B3002F5F30400FC02F3FFC
:103530003105C9F0C0F0A9014F5F50404F37510528
:1035400050F480E88093B3002058304030932C0230
:1035500020932B0212C08FEF8093B30050932C0264
:1035600040932B020AC080912B028093B3001092EB
:103570002C0210922B0210922A02FF91EF91DF9100
:10358000CF91BF91AF919F918F917F916F915F91FB
:103590004F913F912F910F900FBE0F901F90189554
:1035A00010927C008FEC80937A000895CF93DF9384
:1035B00083E090E00E94102EC82FDD27C531D10591
:1035C00008F02A97C7BD1092360284E690E00E9468
:1035D000A41680911301909114018052934010F42D
:1035E000C0E0D0E0CA3FD105F8F4C7BD82E390E067
:1035F0000E94A41687E394E09F938F938FE592E156
:103600009F938F93E0912704F0912804099580916E
:103610001301909114010F900F900F900F90805212
:10362000934010F02196DECF6C2F83E090E00E9453
:10363000182EC093FF058091100680FF09C08C2FC3
:103640008A508B3E28F0809140048064809340042F
:10365000C7BD8CE291E00E94A416DF91CF9108953E
:10366000EF92FF921F93CF9310E080ED97E00E94BE
:1036700082167C01CCE8133019F4CB3008F0C9E095
:1036800010E080914602909147028C5F934024F4B1
:103690008091120181500AC08091460290914702A8
:1036A0008750944034F0809112018F5F8093120113
:1036B00001C011E080914402909145028C5F9340DB
:1036C00024F48091110181500AC0809144029091AC
:1036D00045028750944034F0809111018F5F8093B0
:1036E000110101C01F5F80914202909143028C5FE3
:1036F000934024F48091100181500AC080914202CD
:103700009091430287509440C4F0809110018F5FE4
:103710008093100113C089E394E09F938F938FE50A
:1037200092E19F938F93E0912704F09128040995EB
:103730000F900F900F900F905FC01F5F82E18093FA
:10374000700280916B028E7F80936B0285EA80937A
:10375000BC00809112018A3040F480914004816065
:10376000809340048AE08093120180911201863F89
:1037700040F08091400481608093400485EF809305
:103780001201809111018A3040F4809140048260DE
:10379000809340048AE08093110180911101863F5B
:1037A00040F08091400482608093400485EF8093D4
:1037B0001101809110018A3040F4809140048460AE
:1037C000809340048AE08093100180911001863F2D
:1037D00040F08091400484608093400485EF8093A2
:1037E000100180917002882339F0C7010E948B1666
:1037F000882309F090CFF5CF10920F018FEC8093C2
:103800007A0080910F018823E1F3CA3020F48AE026
:1038100090E00E94A416C15009F02DCF86E490E0FC
:103820000E94A416CF911F91FF90EF9008951F92D0
:103830000F920FB60F921124AF92BF92CF92DF92E8
:10384000EF92FF920F931F932F933F934F935F93AA
:103850006F937F938F939F93AF93BF93EF93FF9358
:1038600080914F02282F3327442755278F5F80935D
:103870004F02F9012231310508F08CC3EA5BFF4F9A
:103880000C94157A809178009091790046C08091CF
:103890007800909179002CC1809178009091790006
:1038A000909352028093510257C180917803909176
:1038B00079032091780030917900821B930B9093CB
:1038C000F0058093EF058091EF059091F0059093BE
:1038D0005C0280935B025EC18091780090917900D8
:1038E00020917A0330917B03821B930B9093FE050A
:1038F0008093FD058091FD059091FE0590935E02F9
:1039000080935D0249C380915502909156022091A7
:10391000780030917900820F931F90935602809324
:10392000550281E03AC38091530290915402209154
:10393000780030917900820F931F90935402809306
:10394000530284E02AC380911D0190911E019C01C5
:10395000220F331F280F391F809178009091790032
:1039600063E070E00E947A79260F371F369527951D
:103970003695279530931E0120931D0185E00DC3D8
:103980008091780090917900409174035091750373
:10399000841B950B90933D0280933C0280913C02E6
:1039A00090913D02029704F122E04E3E520784F4CA
:1039B000209150022B5F2093500225508091E80205
:1039C0009091E902845F914018F4215F20935002A6
:1039D00080915002853684F14F5F5F4F509375039D
:1039E00040937403845626C080913C0290913D021E
:1039F0008F5F9F4F0CF532E047325307ECF0209178
:103A000050022550209350022B5F8091E802909144
:103A1000E902845F914018F42F5020935002809166
:103A200050028C394CF441505040509375034093F0
:103A300074038C598093500281E080933B02809103
:103A40007800909179009093F6058093F505809128
:103A50003C0290913D029C01442737FD4095542F34
:103A600080912F0390913003A0913103B0913203E4
:103A7000820F931FA41FB51F80932F0390933003D1
:103A8000A0933103B093320320912F033091300380
:103A9000409131035091320357FF04C021503C4FF5
:103AA0004F4F5F4F0AE055954795379527950A95F3
:103AB000D1F780912F0390913003A0913103B09101
:103AC0003203821B930BA40BB50B80932F039093AF
:103AD0003003A0933103B09332032EC1809153027F
:103AE000909154022091780030917900820F931FB9
:103AF000909354028093530210924E0250C28091D0
:103B000002018A3071F480917800909179002091BF
:103B1000510230915202820F931F0196969587951C
:103B200017C04091510250915202843158F02091B7
:103B3000780030917900240F351F8FEF97E0821BBA
:103B4000930B06C08091780090917900840F951FA7
:103B5000909343028093420286E01FC280917803D3
:103B6000909179032091780030917900821B930B1A
:103B70009093F0058093EF058091EF059091F0050B
:103B800020915B0230915C02820F931F909341025F
:103B90008093400287E001C2809178009091790083
:103BA00020917A0330917B03821B930B9093FE0547
:103BB0008093FD058091FD059091FE0520915D02A9
:103BC00030915E02820F931F90933F0280933E02DA
:103BD000E3C1209155023091560280917800909176
:103BE0007900280F391F3093560220935502809197
:103BF00002018A3019F4220F331F04C0220F331F31
:103C0000220F331F30935602209355022091550204
:103C100030915602C90137FD0796A3E09595879527
:103C2000AA95E1F79093470280934602809157024C
:103C300090915802820F931F97FD01969595879555
:103C4000909358028093570220918403309185030A
:103C5000821B930B90931C0180931B0120914C02BB
:103C600030914D0280911B0190911C01280F391F4A
:103C700037FF02C02F5F3F4F3595279530934D0298
:103C800020934C024ECE20915302309154028091E9
:103C9000780090917900280F391F309354022093B7
:103CA0005302809102018A3019F4220F331F04C09D
:103CB000220F331F220F331F3093540220935302DD
:103CC0002091530230915402C90137FD079663E0F9
:103CD000959587956A95E1F7909345028093440204
:103CE0008091590290915A02820F931F97FD01967D
:103CF0009595879590935A0280935902209182035B
:103D000030918303821B930B90931A0180931901C6
:103D100020914A0230914B028091190190911A0131
:103D2000280F391F37FF02C02F5F3F4F359527956A
:103D300030934B0220934A0283E02FC110924F022E
:103D400081E080930F0180913202909133020196BD
:103D500090933302809332028091780090917900A1
:103D60009093140180931301809113019091140199
:103D7000AA27BB27A0905F02B0906002C0906102AA
:103D8000D0906202A80EB91ECA1EDB1EA0925F026E
:103D9000B0926002C0926102D0926202809163028E
:103DA0008F5F80936302823108F4F6C08091150121
:103DB00090911601A0911701B09118017C018D011D
:103DC00023E0EE0CFF1C001F111F2A95D1F7E81A03
:103DD000F90A0A0B1B0BEA0CFB1C0C1D1D1D809124
:103DE0003602992787FD9095A92FB92FBC01CD01E7
:103DF00026EC34E240E050E00E944F79DC01CB0138
:103E0000E81AF90A0A0B1B0BD801C7010496A11D79
:103E1000B11DB7FF05C0D801C7010B96A11DB11D8B
:103E200013E0B595A795979587951A95D1F7809347
:103E3000150190931601A0931701B093180180917A
:103E4000F7059091F8057C010027F7FC0095102FED
:103E50008091150190911601A0911701B091180160
:103E6000E81AF90A0A0B1B0BE0920D03F0920E03FD
:103E700000930F0310931003209137023091380202
:103E80004091390250913A0257FF04C0215F3F4FE1
:103E90004F4F5F4FF4E05595479537952795FA9525
:103EA000D1F78091370290913802A0913902B091F8
:103EB0003A02821B930BA40BB50B809337029093AD
:103EC0003802A0933902B0933A0280913702909160
:103ED0003802A0913902B0913A028E0D9F1DA01FA9
:103EE000B11F8093370290933802A0933902B093A8
:103EF0003A028091340290913502AC01E5E0440F22
:103F0000551FEA95E1F7481B590B809137029091B4
:103F10003802A0913902B0913A02B7FF03C00F9660
:103F2000A11DB11D74E0B595A795979587957A95D4
:103F3000D1F720910D0330910E03281B390B63E05C
:103F4000220F331F6A95E1F7240F351F37FF02C098
:103F5000215E3F4F45E0359527954A95E1F730932F
:103F6000350220933402D601C501D7FE03C0019665
:103F7000A11DB11DB595A7959795879580935F0273
:103F800090936002A0936102B093620289E08093F3
:103F9000630202C010924F0282E080934E02809131
:103FA0004E0280937C0080914F02882319F08FECA1
:103FB00080937A00FF91EF91BF91AF919F918F9184
:103FC0007F916F915F914F913F912F911F910F9131
:103FD000FF90EF90DF90CF90BF90AF900F900FBE0B
:103FE0000F901F90189590E2E0E2F1E08FE491933A
:103FF000815087FFFCCF089590916602E0E2F1E0E6
:10400000E90FF11D80839F5F909366020895EF9200
:10401000FF920F931F93CF93DF932091640220FFB1
:104020000AC080916502882311F0815002C08091FE
:104030001F018093650221FF0CC090916502809161
:104040001F01981719F41092650203C09F5F9093A7
:104050006502822F992780FF04C081FF02C0109261
:1040600065020E94F31F80916502282F3327CCEF51
:10407000EC2ECFE1FC2EC0912704D09128048A3089
:1040800098F481E1809366023F932F9380E794E058
:104090009F938F93FF92EF92FE0109952DB73EB744
:1040A0002A5F3F4F2DBF11C080E1809366023F938E
:1040B0002F9385E794E09F938F93FF92EF92FE01F9
:1040C00009958DB79EB706968DBF20916502822F08
:1040D0009927AA27BB27FC01429710F00C94B42A19
:1040E000E85AFF4FBCEFEB2EBFE1FB2EC091270437
:1040F000D09128040C94157A109266028AE794E015
:104100009F938F930CEF1FE1FF92EF92FE010995B1
:1041100084E1809366020F900F900F900F9084E6D9
:1041200090E09F938F9380E590E09F938F931F92F1
:104130001F92809102016AE00E946E79892F99276F
:104140009F938F93809102010E946E7999279F938C
:104150008F938AE894E09F938F93FF92EF92E09180
:104160002704F0912804099588E2809366022DB710
:104170003EB7225F3F4F2DBF85E796E09F938F9319
:104180000E947B2F99279F938F938FE994E09F93B1
:104190008F93FF92EF92E0912704F0912804099504
:1041A0008DB79EB708968DBF90914004992351F02A
:1041B0008CE380936602892F99279F938F938DEAD2
:1041C00094E085C690916C02992371F08CE3809302
:1041D0006602892F99279F938F9384EC94E09F9395
:1041E0008F931F930F9391C08091410484FF07C068
:1041F0008CE38093660289ED94E00C94462A8091CA
:10420000910190919201069710F00C94BD2A8CE3D5
:104210008093660286EE94E00C94462A8091100604
:10422000ACEFEA2EAFE1FA2EC0912704D09128041A
:1042300080FF74C01092660280910D0390910E036E
:10424000A0910F03B0911003BC01CD0125E030E037
:1042500040E050E00E94C3793F932F9383EF94E0B6
:104260009F938F93FF92EF92FE01099584E18093D3
:1042700066022DB73EB72A5F3F4F2DBF80910903DD
:1042800090910A03A0910B03B0910C03BC01CD01E6
:1042900025E030E040E050E00E94C3793F932F9347
:1042A00080E095E09F938F93FF92EF92E091270437
:1042B000F0912804099588E2809366028DB79EB735
:1042C00006968DBF80911301909114019F938F9357
:1042D0008DE095E09F938F93FF92EF92E0912704FA
:1042E000F091280409958CE3809366022DB73EB7C0
:1042F0002A5F3F4F2DBF87B599279F938F938AE100
:1043000095E09F938F93FF92EF92E0912704F091B5
:10431000280409958DB79EB706962FC7109266029E
:1043200087E295E09F938F93FF92EF92FE010995AC
:1043300084E1809366020F900F900F900F9086E3B8
:1043400095E09F938F93FF92EF92E0912704F09175
:104350002804099588E2809366020F900F900F90D1
:104360000F908FE395E09F938F93FF92EF92E091F0
:104370002704F091280409958CE3809366020F903E
:104380000F900F900F908EE495E09F938F93FF9284
:10439000EF920C944A2A1092660287E595E09F936B
:1043A0008F930CEF1FE1FF92EF92FE01099584E1DC
:1043B000809366020F900F900F900F9080916F0383
:1043C00090917003A0917103B0917203B7FF04C084
:1043D00081509C4FAF4FBF4FFAE0B595A795979589
:1043E0008795FA95D1F7BF93AF939F938F9384E608
:1043F00095E09F938F931F930F93E0912704F09183
:104400002804099588E2809366022DB73EB7285F9D
:104410003F4F2DBF8091670390916803A09169037E
:10442000B0916A03B7FF04C081509C4FAF4FBF4F9C
:10443000EAE0B595A79597958795EA95D1F7BF934B
:10444000AF939F938F9383E795E09F938F931F93F1
:104450000F93E0912704F091280409958CE3809351
:1044600066028DB79EB708968DBF80912D039091FF
:104470002E039F938F9382E895E09F938F931F93D2
:104480000F93E0912704F091280409952DB73EB7CA
:104490002A5F3F4F0DC71092660280912F079091BF
:1044A00030079F938F9380912D0790912E079F93B4
:1044B0008F9381E995E09F938F93FF92EF92FE0196
:1044C000099584E1809366028DB79EB708968DBFEB
:1044D00080913307909134079F938F938091310798
:1044E000909132079F938F9381EA95E09F938F93EA
:1044F000FF92EF92E0912704F0912804099588E259
:10450000809366022DB73EB7285F3F4F2DBF809145
:104510003707909138079F938F938091350790913B
:1045200036079F938F9381EB95E09F938F93FF9234
:10453000EF92E0912704F091280409958CE3809391
:1045400066028DB79EB708968DBF80913B0790910C
:104550003C079F938F938091390790913A079F93DF
:104560008F9381EC95E0A2C01092660280910506BF
:10457000E82FFF27EE0FFF1FE55DF84F8081918147
:104580009F938F9380910406E82FFF27EE0FFF1F64
:10459000E55DF84F808191819F938F9381ED95E048
:1045A0009F938F93FF92EF92FE01099584E1809390
:1045B00066028DB79EB708968DBF80910706E82FDB
:1045C000FF27EE0FFF1FE55DF84F808191819F93DC
:1045D0008F9380910606E82FFF27EE0FFF1FE55D02
:1045E000F84F8081918188589F4F9F938F9381EEE0
:1045F00095E09F938F93FF92EF92E0912704F091C3
:104600002804099588E2809366022DB73EB7285F9B
:104610003F4F2DBF80910906E82FFF27EE0FFF1FA8
:10462000E55DF84F8081918182599F4F9F938F93D1
:1046300080910806E82FFF27EE0FFF1FE55DF84F7A
:104640008081918182599F4F9F938F9381EF95E055
:104650009F938F93FF92EF92E0912704F0912804AB
:1046600009958CE3809366028DB79EB708968DBF3F
:1046700080910B06E82FFF27EE0FFF1FE55DF84F37
:104680008081918182599F4F9F938F9380910A06D9
:10469000E82FFF27EE0FFF1FE55DF84F8081918126
:1046A00082599F4F9F938F9381E096E09F938F93C2
:1046B000FF92EF92E0912704F091280409952DB71D
:1046C0003EB7285F3F4FF4C51092660281E196E045
:1046D0009F938F930CEF1FE1FF92EF92FE010995DC
:1046E000809102010F900F900F900F908A3009F087
:1046F000A1C084E180936602809184039091850338
:104700009C0197FF02C0295F3F4F287F821B930BBC
:104710009F938F93809184039091850397FD0796D3
:1047200073E0959587957A95E1F79F938F93209104
:1047300084033091850337FF02C0295F3F4F63E058
:10474000359527956A95E1F7809146029091470249
:10475000821B930B9F938F938FE196E09F938F9390
:104760001F930F93E0912704F0912804099588E2A4
:10477000809366028DB79EB70A968DBF80918203A3
:10478000909183039C0197FF02C0295F3F4F287FD0
:10479000821B930B9F938F9380918203909183034D
:1047A00097FD079653E0959587955A95E1F79F9366
:1047B0008F93209182033091830337FF02C0295FDA
:1047C0003F4F43E0359527954A95E1F780914402A4
:1047D00090914502821B930B9F938F9380E396E009
:1047E0009F938F931F930F93E0912704F0912804D8
:1047F00009958CE3809366022DB73EB7265F3F4F45
:104800002DBF80918003909181039F938F9380911E
:104810008003909181032091420230914302821BD8
:10482000930B9F938F9381E496E09F938F931F93B5
:104830000F93A3C38B3019F0843108F4ADC084E129
:104840008093660280918403909185039C0197FF79
:1048500002C0215F3F4F207F821B930B97FD019683
:10486000959587959F938F9380918403909185036D
:1048700097FD0F9624E0959587952A95E1F79F93EC
:104880008F93209184033091850337FF02C0295F05
:104890003F4F83E0359527958A95E1F78091460251
:1048A00090914702821B930B9F938F938FE496E026
:1048B0009F938F931F930F93E0912704F091280407
:1048C000099588E2809366022DB73EB7265F3F4F79
:1048D0002DBF80918203909183039C0197FF02C0BA
:1048E000215F3F4F207F821B930B97FD019695958B
:1048F00087959F938F93809182039091830397FD77
:104900000F96B4E095958795BA95E1F79F938F93AD
:10491000209182033091830337FF02C0295F3F4F0C
:10492000A3E035952795AA95E1F7809144029091EF
:104930004502821B930B9F938F9381E696E09F9392
:104940008F931F930F93E0912704F091280409950A
:104950008CE3809366028DB79EB70A968DBF8091D7
:1049600080039091810397FD0196959587959F937C
:104970008F93809180039091810320914202309126
:104980004302821B930B9F938F9383E796E09F9341
:104990008F931F930F938ECE8D3009F0EEC584E177
:1049A000809366028091120199279F938F93809143
:1049B00084039091850397FD0F96E4E09595879584
:1049C000EA95E1F79F938F932091840330918503BB
:1049D00037FF02C0295F3F4F73E0359527957A95E1
:1049E000E1F78091460290914702821B930B9F93BF
:1049F0008F9382E896E09F938F931F930F93E0919C
:104A00002704F0912804099588E2809366028DB707
:104A10009EB70A968DBF8091110199279F938F931E
:104A2000809182039091830397FD0F9664E09595A2
:104A300087956A95E1F79F938F9320918203309138
:104A4000830337FF02C0295F3F4F53E03595279519
:104A50005A95E1F78091440290914502821B930B95
:104A60009F938F9386E996E09F938F931F930F9365
:104A7000E0912704F091280409958CE38093660265
:104A80002DB73EB7265F3F4F2DBF8091100199276C
:104A90009F938F93809180039091810397FD01965E
:104AA000959587959F938F93809180039091810333
:104AB0002091420230914302821B930B9F938F936C
:104AC0008AEA96E09F938F931F930F93E0912704B8
:104AD000F091280409958DB79EB70A964EC310929F
:104AE00066028EEB96E09F938F93FF92EF92FE010A
:104AF000099584E1809366020F900F900F900F90BC
:104B000080917A0390917B039F938F9380913E02D3
:104B100090913F029F938F938BEC96E09F938F939E
:104B2000FF92EF92E0912704F0912804099588E222
:104B3000809366022DB73EB7285F3F4F2DBF80910F
:104B40007803909179039F938F9380914002909185
:104B500041029F938F938AED96E09F938F93FF92EC
:104B6000EF92E0912704F091280409958CE380935B
:104B700066028DB79EB708968DBF809174039091A1
:104B800075039F938F9380913C0290913D029F9378
:104B90008F9389EE96E08ACD1092660280911D0176
:104BA00090911E016AE070E00E948E799F938F932E
:104BB00080911D0190911E016AE070E00E948E7943
:104BC0007F936F9388EF96E09F938F93FF92EF927E
:104BD000FE01099584E1809366028DB79EB7089621
:104BE0008DBF80916808909169086AE070E00E942A
:104BF0007A799F938F9380916808909169086AE011
:104C000070E00E947A797F936F938CE097E09F9396
:104C10008F93FF92EF92E0912704F0912804099579
:104C200088E2809366022DB73EB7285F3F4F2DBFC5
:104C300080916A0890916B089F938F9380E297E030
:104C40009F938F93FF92EF92E0912704F0912804B5
:104C500009958CE3809366028DB79EB706968DBF4B
:104C600080916C0890916D089F938F9380E397E0FB
:104C70002EC11092660282E497E09F938F93FF9279
:104C8000EF92FE01099584E1809366020F900F90E8
:104C90000F900F9080912B0790912C079F938F93EB
:104CA0008BE497E09F938F93FF92EF92E09127041C
:104CB000F0912804099588E2809366028DB79EB72B
:104CC00006968DBF80911B0399279F938F938BE549
:104CD00097E09F938F93FF92EF92E0912704F091DA
:104CE000280409958CE3809366022DB73EB72A5FAE
:104CF0003F4F2DBF80912A07992701979F938F934C
:104D00008BE697E0FECA109266028BE797E09F93CE
:104D10008F93FF92EF92FE01099584E180936602E2
:104D20000F900F900F900F908091290390912A037C
:104D30009F938F9383E897E09F938F93FF92EF92D7
:104D4000E0912704F0912804099588E28093660297
:104D50002DB73EB72A5F3F4F2DBF80912D03909115
:104D60002E039F938F9381E997E09F938F93FF92F8
:104D7000EF92E0912704F091280409958CE3809349
:104D800066028DB79EB706968DBF80912B039091DA
:104D90002C039F938F938FE997E099C0109266023E
:104DA00080911C0399279F938F938DEA97E09F939F
:104DB0008F93FF92EF92FE01099584E18093660242
:104DC0008DB79EB706968DBF80911D0399279F933F
:104DD0008F9389EB97E09F938F93FF92EF92E091EF
:104DE0002704F0912804099588E2809366022DB784
:104DF0003EB72A5F3F4F2DBF80911E0399279F9397
:104E00008F9385EC97E09F938F93FF92EF92E091C1
:104E10002704F091280409958CE3809366028DB7EE
:104E20009EB706968DBF80911F0399279F938F93FE
:104E300081ED97E04CC01092660280912003992783
:104E40009F938F938DED97E09F938F93FF92EF92B7
:104E5000FE01099584E1809366028DB79EB70696A0
:104E60008DBF8091210399279F938F9389EE97E0BF
:104E70009F938F93FF92EF92E0912704F091280483
:104E8000099588E2809366022DB73EB72A5F3F4FAF
:104E90002DBF8091220399279F938F9385EF97E0F1
:104EA0009F938F93FF92EF92E0912704F091280453
:104EB00009958CE3809366028DB79EB706968DBFE9
:104EC0008091230399279F938F9381E098E09F938C
:104ED0008F93FF92EF92D5CA109266028DE098E010
:104EE0009F938F93FF92EF92FE01099584E1809347
:104EF00066020F900F900F900F908091A10199275B
:104F00009F938F9385E198E09F938F93FF92EF9209
:104F1000E0912704F0912804099588E280936602C5
:104F20008DB79EB706968DBF80911D0290911E028F
:104F30009F938F9383E298E09F938F93FF92EF92DA
:104F4000E0912704F091280409958CE38093660290
:104F50002DB73EB72A5F3F4F2DBF8091330699276B
:104F60009F938F938091320699279F938F9381E32C
:104F700098E09F938F93FF92EF92E0912704F09136
:104F8000280409958DB79EB70896F7C0109266025F
:104F90008FE398E09F938F93FF92EF92FE01099524
:104FA00084E1809366020F900F900F900F90809194
:104FB0006104992787FD90959F938F93809160045A
:104FC000992787FD90959F938F938FE498E09F9307
:104FD0008F93FF92EF92E0912704F09128040995B6
:104FE00088E2809366022DB73EB7285F3F4F2DBF02
:104FF00080916204992787FD90959F938F9380916C
:10500000630499279F938F938FE598E09F938F93E5
:10501000FF92EF92E0912704F091280409958CE328
:10502000809366028DB79EB708968DBF8091670406
:1050300099279F938F9380916404992787FD90957A
:105040009F938F938FE698E031CB109266028FE7A3
:1050500098E09F938F93FF92EF92FE01099584E170
:10506000809366020F900F900F900F908091E5064D
:1050700099278F7790709F938F938091DD06992762
:105080008F7790709F938F938091D50699278F7714
:1050900090709F938F938091CD0699278F77907012
:1050A0009F938F938FE898E09F938F93FF92EF9257
:1050B000E0912704F0912804099588E28093660224
:1050C0008DB79EB70C968DBF8091050799278F7776
:1050D00090709F938F938091FD0699278F779070A2
:1050E0009F938F938091F50699278F7790709F9368
:1050F0008F938091ED0699278F7790709F938F9370
:1051000080EA98E09F938F93FF92EF92E0912704BB
:10511000F091280409958CE3809366022DB73EB781
:10512000245F3F4F2DBF8091250799278F7790707F
:105130009F938F9380911D0799278F7790709F93EE
:105140008F938091150799278F7790709F938F93F6
:1051500080910D0799278F7790709F938F9381EBA4
:1051600098E09F938F93FF92EF92E0912704F09144
:10517000280409958DB79EB70C968DBFFEC110927D
:10518000660282EC98E09F938F93FF92EF92FE016C
:10519000099584E1809366020F900F900F900F9015
:1051A0008091E906992787FD90959F938F93809131
:1051B000E106992787FD90959F938F938091D9065B
:1051C000992787FD90959F938F938091D10699277A
:1051D00087FD90959F938F9381ED98E09F938F9398
:1051E000FF92EF92E0912704F0912804099588E25C
:1051F000809366022DB73EB7245F3F4F2DBF80914D
:105200000907992787FD90959F938F9380910107B8
:10521000992787FD90959F938F938091F906992701
:1052200087FD90959F938F938091F106992787FD35
:1052300090959F938F9382EE98E09F938F93FF9228
:10524000EF92E0912704F091280409958CE3809374
:1052500066028DB79EB70C968DBF8091290799275E
:1052600087FD90959F938F9380912107992787FDC4
:1052700090959F938F9380911907992787FD90951B
:105280009F938F9380911107992787FD90959F9306
:105290008F9383EF98E09F938F93FF92EF92E0912B
:1052A0002704F091280409952DB73EB7245F3F4F9E
:1052B0002DBF63C11092660284E099E09F938F93A3
:1052C0000CEF1FE1FF92EF92FE01099584E18093BC
:1052D00066020F900F900F900F908091E506881F47
:1052E0008827881F97E0899FC00111248D969F937E
:1052F0008F938091DD06881F8827881F96E0899FFD
:10530000C00111248D969F938F938091D506881F9D
:105310008827881F95E0899FC00111248D969F934F
:105320008F938091CD06881F8827881F9927880F23
:10533000991F880F991F8D969F938F9383E199E012
:105340009F938F93FF92EF92E0912704F0912804AE
:10535000099588E2809366028DB79EB70C968DBF43
:1053600080910507881F8827881F9BE0899FC001BF
:1053700011248D969F938F938091FD06881F882717
:10538000881F9AE0899FC00111248D969F938F9367
:105390008091F506881F8827881F99E0899FC001A2
:1053A00011248D969F938F938091ED06881F8827F7
:1053B000881F992723E0880F991F2A95E1F78D967A
:1053C0009F938F9387E299E09F938F93FF92EF9241
:1053D000E0912704F091280409958CE380936602FC
:1053E0002DB73EB7245F3F4F2DBF80910D07881F1B
:1053F0008827881F9CE0899FC00111248D969F9368
:105400008F938BE399E09F938F93FF92EF92E091BC
:105410002704F09128040995809115072DB73EB710
:105420002A5F3F4F2DBF87FF12C080E48093660242
:105430008CE499E09F938F93FF92EF92E091270481
:10544000F091280409950F900F900F900F90809184
:105450001D0787FF12C084E4809366028FE499E001
:105460009F938F931F930F93E0912704F09128044B
:1054700009950F900F900F900F908091250787FF4F
:105480007CC088E48093660282E599E09F938F93C5
:105490001F930F93E0912704F091280409950F9032
:1054A0000F900F900F9069C01092660285E599E009
:1054B0009F938F93FF92EF92FE01099584E1809371
:1054C00066020F900F900F900F908091F5019091D0
:1054D000F6019F938F9383E699E09F938F93FF92BA
:1054E000EF92E0912704F0912804099588E28093D7
:1054F00066028DB79EB706968DBF8091F701909199
:10550000F8019F938F9380E799E09F938F93FF9289
:10551000EF92E0912704F0912804099589E48093A3
:1055200066022DB73EB72A5F3F4F2DBF8DE799E04A
:105530009F938F93FF92EF92E0912704F0912804BC
:105540000995809164020F900F900F900F9083FF48
:1055500014C01092F8011092F70160E070E08EE044
:1055600090E00E94292E09C080911F01281719F48C
:10557000215020931F011092650210926402E6E010
:10558000CDB7DEB70C94067AF999FECF92BD81BDF6
:10559000F89A80B599270895F999FECF1FBA92BD60
:1055A00081BD60BD0FB6F894FA9AF99A0FBE0895BE
:1055B0004AEA20E030E02617370740F4FC018191E9
:1055C000480F2F5F3F4F26173707C8F3842F9927BF
:1055D0000895EAEA40E050E04617570778F49C0146
:1055E000F999FECF32BD21BDF89A80B5E80F4F5F23
:1055F0005F4F2F5F3F4F4617570790F38E2F992726
:10560000089581E08093060682E08093050683E09A
:105610008093040684E08093070685E08093080663
:1056200086E08093090687E080930A0688E08093ED
:105630000B0689E080930C068AE080930D068BE0D0
:1056400080930E068CE080930F0608951F93CF93EE
:10565000DF9384E58093030680910201843150F04A
:105660008AE080932306109245068BE180931F0603
:105670008EE40AC083E08093230680E2809345068F
:105680008EE180931F0685E5809342068093430652
:105690008AE68093100683E080936606AEE1A093CD
:1056A00011068FEF80931306EFE0E0931406A093AA
:1056B000120610921606F8E0F093170680E4809325
:1056C00018061092190684E1809315068EE08093E7
:1056D0001A06B0E1B0931B061CE010931C06F09371
:1056E0001D0686EE80931E0680E88093200650E516
:1056F0005093210686E980932206509324068093D6
:10570000250676E07093260681E2809327068DE2D7
:10571000809328069AE59093290680E280932B06D1
:1057200010922C0610922D0610922E0610922F0623
:1057300010924706109248061092490610924A06A7
:1057400034E63093300648E24093310661E06093DE
:1057500065061092320627EF2093330670933806C1
:105760008DE78093390680933A0680933B06309309
:10577000340640933506109236062093370682E3AE
:1057800080933C0690933D0680933E0610926406FB
:1057900090933F065093400660934106B0934406B1
:1057A000309346068FE580934B0683EF80934D063A
:1057B0008AEA80934F0680935006E0934C06E0936C
:1057C0004E068EEF80935106309352069093530607
:1057D00090935406909355068BE4809356068093DD
:1057E0005706809358061092590670935A06F09304
:1057F0005B0690935C06A0935D0630935E06309343
:105800005F0682E08093600660932A06109262062B
:1058100010926306A7E6B6E0E0E7F1E0ED01019043
:1058200009921A95E1F760E770E0CD018456904047
:105830000E94D82A80937306DF91CF911F9108951B
:10584000CF93DF9384E58093030680910201843136
:1058500050F08AE080932306109245068BE18093F6
:105860001F068EE40AC083E08093230680E28093C3
:1058700045068EE180931F0685E58093420680935E
:1058800043068AE68093100683E0809366067EE1F5
:10589000709311068FEF809313069FE09093140688
:1058A000709312061092160668E06093170680E463
:1058B0008093180610921906909315068AE080933B
:1058C0001A0680E180931B0656E050931C066093F5
:1058D0001D0686EE80931E0680E8809320062AE54A
:1058E0002093210688E78093220620932406809344
:1058F00025065093260681E2809327068DE2809349
:10590000280620932906E0E2E0932B0610922C064D
:1059100010922D0610922E0610922F061092470616
:10592000109248061092490610924A0644E64093A7
:10593000300638E230933106F1E0F09365061092BC
:10594000320697EF90933306509338068DE7809395
:10595000390680933A0680933B0640933406309391
:105960003506109236069093370682E380933C0604
:1059700020933D0680933E061092640620933F06D6
:1059800080E5809340068CE380934106E0934406D3
:105990009BE4909346068FE580934B0683EF8093BC
:1059A0004D068AEA80934F068093500684E18093E7
:1059B0004C0680934E068EEF80935106409352061C
:1059C0002093530620935406209355069093560631
:1059D00090935706909358061092590650935A0682
:1059E00060935B0620935C0670935D0640935E06B1
:1059F00040935F0682E080936006F0932A0610923F
:105A0000620610926306A7E6B6E08CE0E7E7F1E0F5
:105A1000ED01019009928A95E1F760E770E0CD0110
:105A2000845690400E94D82A80937306DF91CF91CC
:105A30000895CF93DF9384E580930306809102015C
:105A4000843150F08AE080932306109245068BE162
:105A500080931F068EE40AC083E08093230680E2D1
:105A6000809345068EE180931F0685E5809342066C
:105A7000809343068AE68093100683E0809366064F
:105A80006EE1609311068FEF809313069FE0909371
:105A90001406609312061092160678E070931706AB
:105AA00080E480931806109219069093150670935F
:105AB0001A0690E190931B0656E050931C067093D3
:105AC0001D0686EE80931E0680E88093200634E64D
:105AD0003093210688E78093220630932406809332
:105AE00025065093260681E2809327068DE2809357
:105AF00028062AE52093290690932B0610922C065F
:105B000010922D0610922E0610922F061092470624
:105B1000109248061092490610924A0630933006B9
:105B200048E240933106E1E0E093650610923206C8
:105B300097EF90933306509338068DE7809339069C
:105B400080933A0680933B063093340640933506A3
:105B5000109236069093370682E380933C0620939A
:105B60003D0680933E061092640620933F0680E532
:105B70008093400696E49093410680E28093440629
:105B8000909346068FE580934B0683EF80934D06F6
:105B90008AEA80934F068093500660934C06609388
:105BA0004E068EEF80935106309352062093530693
:105BB00020935406209355068BE4809356068093D9
:105BC0005706809358061092590650935A067093C0
:105BD0005B0620935C0660935D0630935E0630930F
:105BE0005F0682E080936006E0932A0610926206C8
:105BF00010926306A7E6B6E08CE0EFE7F1E0ED0176
:105C0000019009928A95E1F760E770E0CD01845632
:105C100090400E94D82A80937306DF91CF91089517
:105C2000F999FECF92BD81BDF89A80B59927089564
:105C3000F999FECF1FBA92BD81BD60BD0FB6F89431
:105C4000FA9AF99A0FBE089564EC7AE20E94DD7721
:105C500008954CEC5AE20E9417780895EF92FF9253
:105C60000F931F93CF93C82F8150853008F0C3E066
:105C700081E7C89F8001112483EFE82E8FEFF82E73
:105C8000E00EF11E60E770E0C7010E94E92A682F6C
:105C900098012D593F4F8FB39927AC014270507036
:105CA00081FDF9CF32BD21BDF89A80B5861711F07C
:105CB000CA0121C08FB399279C012270307081FDE9
:105CC000F9CFF2BCE1BCF89A80B5843511F0C90176
:105CD00012C081E7C89FC00111240D9724EC3AE25D
:105CE00041E750E0BC0183E096E00E94B8770E9453
:105CF000076881E090E0CF911F910F91FF90EF90A6
:105D00000895282F863010F025E003C0882309F479
:105D100021E0F999FECF1FBA82E090E092BD81BDEB
:105D200020BD0FB6F894FA9AF99A0FBE0895CF9352
:105D3000C82F80910306843509F042C0C63010F0A8
:105D4000C5E003C0CC2309F43BC060E770E083E00A
:105D500096E00E94D82A8093730681E7C89FC0010D
:105D600011242CEC3AE241E750E063E076E00D9735
:105D70000E94F5772CEC3AE24CE050E064E076E0EB
:105D800080E590E00E94F5776CE070E084E096E0BA
:105D90000E94D82A282FF999FECF1FBA8CE590E0EF
:105DA00092BD81BD20BD0FB6F894FA9AF99A0FBE44
:105DB0008C2F0E94812E0E94076881E090E002C033
:105DC00080E090E0CF9108956DE470E088EE93E07C
:105DD0000E94E92A482F8FB399279C0122703070C6
:105DE00081FDF9CF85E394E092BD81BDF89A80B53D
:105DF000841779F48FB399279C012270307081FD4C
:105E0000F9CF88EE93E092BD81BDF89A80B58130DC
:105E100011F0C901089524EC3AE24EE450E068EE36
:105E200073E084E796E00E94B87781E090E00895FF
:105E3000809174068130A9F46DE470E084E796E007
:105E40000E94D82A8093C1062CEC3AE24EE450E03E
:105E500064E776E088EE93E00E94F57781E090E0D9
:105E6000089580E090E00895CF93DF9381E08093E0
:105E70007406E4E7F6E08FE0158616861786108A2A
:105E80008150349687FFF8CF80E480938106809319
:105E9000820610928306809384068093850690EC98
:105EA00090938606109287068093880680938906D1
:105EB00010928A0690938B0690938C0680938D06A1
:105EC00010928E0680938F0690939006A5E7B6E019
:105ED00087E0E9E8F1E0ED01019009928A95E1F7A8
:105EE0006DE470E0CD0101970E94D82A8093C1062D
:105EF000DF91CF910895F999FECF82E090E092BDB5
:105F000081BDF89A80B5282F863078F023E0322FB3
:105F1000F999FECF1FBA82E090E092BD81BD30BDFD
:105F20000FB6F894FA9AF99A0FBE822F992708951E
:105F3000DF92EF92FF920F931F93CF93FF24DF2CFA
:105F4000EF2C81E090E00E94102E843539F031E092
:105F5000E32E64E581E090E00E94182E6CE070E092
:105F600080E590E00E94E92AC82FF999FECF8CE5E0
:105F700090E092BD81BDF89A80B58C1711F421E0B4
:105F8000D22EC1E001E010E0EE2029F48C2F0E9417
:105F90002E2E8823C1F591E0F92E1F930F9385E8EB
:105FA00099E09F938F938FE592E19F938F93E09178
:105FB0002704F091280409958DB79EB706968DBFEA
:105FC0000230110549F0033011054CF40130110580
:105FD00031F40E94262B05C00E94202C02C00E9492
:105FE000192DDD2059F024EC3AE24CE050E060E558
:105FF00070E084E096E00E94B87702C00E94012B16
:106000008C2F0E94972ECF5F0F5F1F4FC63008F472
:10601000BBCFFF2019F083E00E94812E0E947B2FCE
:10602000C82F0E942E2E8C2F99279F938F938BEA37
:1060300099E09F938F930FE512E11F930F93E091E7
:106040002704F091280409958DB79EB706968DBF59
:10605000EE2021F40E94E42E882399F484EC99E048
:106060009F938F931F930F93E0912704F09128043F
:1060700009950E94342F0E94182F0F900F900F90B7
:106080000F901092020690E0E1E8F6E0CFE0808108
:10609000349618160CF49F5FC150C7FFF8CF909349
:1060A0000206892F99279F938F9385E796E09F9308
:1060B0008F9385EE99E09F938F931F930F93E091B9
:1060C0002704F091280409958DB79EB708968DBFD7
:1060D00086E09AE09F938F931F930F93E09127049C
:1060E000F091280409950F900F900F900F90CF9189
:1060F0001F910F91FF90EF90DF9008959FB7F89454
:106100003998389A88B1836088B98091B9008C7FBA
:106110008093B9008AE28093B800109270021092C6
:106120006E0210926D02EAECF6E08BE010821182B2
:106130001282138214821582168217828150389639
:1061400087FFF4CF9FBF08951092700284E9809377
:10615000BC0010926E0210926D0280E88093BC0029
:106160001092BD001092BA001092BB001092B900BC
:106170001092B8000E947E301092BB0085E8809398
:10618000BC0080916B02826080936B0208951F9225
:106190000F920FB60F9211242F933F934F935F935B
:1061A0008F939F93EF93FF9380917002282F332753
:1061B000442755278F5F80937002F90127313105FD
:1061C00008F0B3C2E659FF4F0C94157A80916E0225
:1061D0008C3090F480916E028F5F80936E0280917C
:1061E0006E02E82FFF27EE0FFF1FEE0FFF1FEC5888
:1061F000F94F8585181654F780916E028C3070F037
:1062000010926A021092690210926E0285E08093E9
:10621000700280916D02880F8D5A04C080916E02C9
:10622000880F8E5A8093BB0085E874C280916E02FD
:10623000E82FFF2783E0EE0FFF1F8A95E1F7E65373
:10624000F94F81818093BB0085E88093BC008091E9
:106250006E02E82FFF27EE0FFF1FEE0FFF1FEE0F5E
:10626000FF1FE653F94F808180FF91C080916E023D
:10627000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F90
:10628000E653F94F8281882329F0809102068730F6
:1062900008F45FC28091690290916A02892B09F02B
:1062A00058C28091670290916802892B09F051C20F
:1062B0006EC080916E0221E030E002C0220F331FD9
:1062C0008A95E2F78091670290916802282339232A
:1062D000232B79F080916E02E82FFF27EE0FFF1F2E
:1062E000EE0FFF1FEE0FFF1FE653F94F80E184838F
:1062F0000DC080916E02E82FFF27EE0FFF1FEE0FFB
:10630000FF1FEE0FFF1FE653F94F148280916E02BC
:10631000E82FFF2753E0EE0FFF1F5A95E1F7E653F2
:10632000F94F8481282F332743E0220F331F4A95EA
:10633000E1F780916E02E82FFF2793E0EE0FFF1F39
:106340009A95E1F7E653F94F82818770822B80930B
:10635000BB0085E88093BC0020916E0281E090E054
:1063600002C0880F991F2A95E2F7209169023091A7
:106370006A0282239323892B51F082EC96E090935A
:1063800074028093730288E080937502E2C184E016
:1063900080C1E0917302F091740281918093BB00FF
:1063A00085E88093BC00F0937402E09373028091BF
:1063B0007502815080937502882309F4CAC183E075
:1063C00068C18091B900803351F5809171028823B2
:1063D00029F480916E028F5F8093710280916E022A
:1063E000E82FFF2783E0EE0FFF1F8A95E1F7E653C2
:1063F000F94F838199278F7790708F3791057CF4BF
:1064000080916E02E82FFF27EE0FFF1FEE0FFF1F98
:10641000EE0FFF1FE653F94F83818F5F8383109246
:10642000700284E98093BC008AE090E0909392012E
:106430008093910180916E028F5F80936E02109223
:10644000700262C18091B9008034A9F180916D021F
:10645000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1FAE
:10646000E653F94F83818F77838380916D028F5F2D
:1064700080936D0280916D028C30A0F010926D02BD
:106480001092680210926702809172028F5F80936F
:1064900072028C3038F01092720280916B028D7F04
:1064A00080936B0280916B02816080936B021092EB
:1064B000700284E971C080916D02E82FFF27EE0F12
:1064C000FF1FEE0FFF1FEE0FFF1FE653F94F8381F3
:1064D0008068838380916D02E82FFF27EE0FFF1FF6
:1064E000EE0FFF1FEE0FFF1FE653F94F808180FF75
:1064F0002FC080916D02E82FFF2753E0EE0FFF1FA2
:106500005A95E1F7E653F94F84819927009751F0A6
:106510004097D9F582EC96E09093740280937302D1
:1065200088E031C080916D02992743E0880F991F60
:106530004A95E1F78153994F9093740280937302C7
:1065400090916D02809172029817E1F483E01BC074
:1065500080916D02992733E0880F991F3A95E1F7F2
:106560008153994F909374028093730280916B02D0
:1065700081FD06C090916D0280917202981711F40E
:1065800082E001C081E080937502809175028130C4
:1065900011F485E801C085EC8093BC008091710204
:1065A00080936C0210927102D4C0E0917302F0915A
:1065B00074028091BB008083809173029091740279
:1065C00001969093740280937302809175028150BA
:1065D00080937502823010F085EC58C0813011F440
:1065E00085E854C080916B0281FF2DC08091E70245
:1065F00080FD1DC080916D02E82FFF2723E0EE0F84
:10660000FF1F2A95E1F7E653F94F86818A3F79F417
:1066100080916D02E82FFF2793E0EE0FFF1F9A9500
:10662000E1F7E653F94F8081816080830CC080914F
:106630006D02E82FFF2783E0EE0FFF1F8A95E1F739
:10664000E653F94F108280916D028F5F80936D0247
:1066500080916D028C30A0F010926D021092680251
:1066600010926702809172028F5F809372028C3069
:1066700038F01092720280916B028D7F80936B02D2
:106680001092700284E98093BC0049C08093BC00E2
:1066900086E0809370025DC088E9C4CD80916F026E
:1066A000880F805FBFCD80916F029927813091055F
:1066B00061F0823091051CF4892B21F04AC00297C9
:1066C00039F047C080911201ADCD80911101AACD62
:1066D00080911001A7CD80E8A5CD1092700284E9C9
:1066E0008093BC008AE090E09093920180939101A6
:1066F00080916F02823088F480916F028F5F809367
:106700006F0282E18093700280916B028E7F809392
:106710006B0285EA8093BC001CC010926F028091CE
:106720006B02816080936B0214C01092700284E946
:106730008093BC0080916B02816080936B028AE041
:1067400090E0909392018093910110926E021092CA
:106750006D02FF91EF919F918F915F914F913F91CA
:106760002F910F900FBE0F901F9018951F93CF93EE
:10677000DF93182F80911203882321F48091020265
:10678000882319F081E090E097C01D3008F092C096
:106790001123B1F0E12FFF2723E0EE0FFF1F2A9511
:1067A000E1F7E653F94F35978081359688230CF051
:1067B00081C03897808180FD03C083E090E07CC079
:1067C0008091C206823019F084E090E075C067E0E5
:1067D00070E082EC96E00E94D82A9091C906891751
:1067E00019F085E090E068C080ED97E00E94821685
:1067F000EC0180916B0280FD05C0CE010E948B16DA
:106800008823B9F3112319F48FEF90E00BC0212FE7
:1068100033272150304081E090E002C0880F991F5B
:106820002A95E2F790936A0280936902A1E0B0E0B2
:10683000EAECF6E040E050E06BE0CD01042E02C04F
:10684000880F991F0A94E2F72091690230916A0239
:1068500082239323892B11F01182128261504F5FA2
:106860005F4F389667FFE9CF10926E021092700268
:1068700080916B028E7F80936B0285EA8093BC00CF
:1068800080916B0280FD05C0CE010E948B1688238B
:10689000B9F38091690290916A02892B29F0CE01A7
:1068A0000E948B16882311F38091690290916A02ED
:1068B000009711F082E090E0DF91CF911F91089551
:1068C0000F931F93CF93DF93982F80911203882308
:1068D00021F480910202882319F081E090E092C0B7
:1068E0009D30A0F4992319F486E090E08BC0C92F65
:1068F000DD27FE0133E0EE0FFF1F3A95E1F7E65387
:10690000F94F35978081359687FD03C082E090E08E
:1069100079C03897808180FD03C083E090E072C029
:1069200080ED97E00E9482168C0180916B0280FDC1
:1069300005C0C8010E948B168823B9F3219721E076
:1069400030E0C90102C0880F991FCA95E2F7909301
:10695000680280936702D901EAECF6E040E050E07B
:106960006BE0CD01042E02C0880F991F0A94E2F754
:10697000209167023091680282239323892B11F0C2
:106980001182128261504F5F5F4F389667FFE9CFE7
:1069900010926D021092C2061092C90610927002F7
:1069A00080916B028E7F80936B0285EA8093BC009E
:1069B00080916B0280FD05C0C8010E948B16882360
:1069C000B9F38091670290916802892B29F0C80180
:1069D0000E948B16882311F38091C206823019F031
:1069E00084E090E00FC067E070E082EC96E00E94E7
:1069F000D82A9091C906891719F085E090E002C065
:106A000080E090E0DF91CF911F910F91089589E18F
:106A1000AFE5B7E0EBE2F7E0118210823296119613
:106A20001C921E921296815087FFF6CF109281031E
:106A300010928003109283031092820310928503B8
:106A40001092840308951F920F920FB60F92112493
:106A50000F931F932F933F934F935F936F937F9366
:106A60008F939F93AF93BF93CF93DF93EF93FF9356
:106A70008091660682FDCFC04091860050918700CC
:106A80008091770290917802481B590B8091860083
:106A9000909187009093780280937702CA018D5479
:106AA0009440A0917902B0917A02835F9A4178F480
:106AB0008091790280932A07149714F01092930121
:106AC00081E090E090937A028093790207C2AD3022
:106AD000B1050CF003C2CA018B5F9040845B91400A
:106AE00008F074C0425D5140FD01EA0FFB1FE55DF7
:106AF000F84F80819181FA01E81BF90BCF01F7FF74
:106B000003C0909581959F4F06975CF480911B037D
:106B1000883C20F480911B03865F01C088EC809341
:106B20001B03FD01EA0FFB1FE55DF84F808191819A
:106B30009C01220F331F280F391F240F351F37FFE9
:106B400002C02D5F3F4FE901D595C795D595C795F3
:106B5000CA0101968C179D0714F4219706C0415075
:106B60005040C417D5070CF4219680911B03833C39
:106B7000E0F08D010A0F1B1FF801E55DF84F8081E1
:106B800091819E01281B390BC90163E070E00E94CE
:106B90008E79CB01880F991F860F971F015A184FC6
:106BA000D80111969C938E9307C0AA0FBB1FA15AC0
:106BB000B84F11961C921E92E0917902F0917A02E0
:106BC000EE0FFF1FE55DF84FD183C083209179025E
:106BD00030917A022F5F3F4F30937A0220937902EF
:106BE00080910201843108F079C12530310511F41A
:106BF0005D9A01C05D988091790290917A02863009
:106C0000910511F45C9A01C05C98079711F45B9AA6
:106C100065C15B9863C14091860050918700809167
:106C20007B0290917C02481B590B809186009091C9
:106C3000870090937C0280937B02CA018D5494401C
:106C40006091E502835F9A4108F07AC06093760212
:106C500080917602843008F453C090912A07809185
:106C60007602981709F04CC05091E6025B3008F4A8
:106C70003FC0109293011092E50240E05F31C0F0F6
:106C8000E42FFF27EE0FFF1F9F012F543D4FDF0121
:106C9000A55DB84F8D919C91D9018D939C93DF0197
:106CA000A15AB84F8D919C91E553FD4F91838083FC
:106CB000E42FFF27EE0FFF1F9F01255D384FDF01F7
:106CC000A358BD4F8D919C91D90111969C938E93A1
:106CD000DF01A956BD4F8D919C91E15AF84F9183E8
:106CE0008083842F8F5F482F8D3040F28093E502A0
:106CF0008091E6028F3FB9F08F5F8093E60213C068
:106D00008091E602853620F08AE08093E60202C098
:106D10001092E602809102018A3011F0843110F065
:106D2000289A01C0289881E08093E502809112039F
:106D3000882309F0D3C08091760280932A07CEC0C1
:106D40006D3008F0A3C0CA018B5F9040845B914016
:106D500008F07EC0425D5140E62FFF27EE0FFF1F77
:106D6000E358FD4F80819181FA01E81BF90BCF01B7
:106D700005960B97B0F48091E6028A3120F080915D
:106D80001B03865F05C08B3028F080911B038E5F4C
:106D900080931B0380911B03893C18F088EC80933F
:106DA0001B03E62FFF27EE0FFF1FE358FD4F8081E7
:106DB00091819C01220F331F280F391F240F351F8B
:106DC00037FF02C02D5F3F4FE901D595C795D59597
:106DD000C795CA0101968C179D0714F4219706C028
:106DE00041505040C417D5070CF4219680911B03E5
:106DF0008E3BD8F0E62FFF27EE0FFF1FDF01A358D1
:106E0000BD4F8D919C919E01281B390BC90163E0F8
:106E100070E00E948E79CB01880F991F860F971F13
:106E2000E956FD4F9183808308C0E62FFF27EE0FC0
:106E3000FF1FE956FD4F118210828091E502E82F75
:106E4000FF27EE0FFF1FE358FD4FD183C08309C01A
:106E5000809102018A3011F0843110F0289A01C02B
:106E6000289880910201843188F48091E502853070
:106E700011F45D9A05C05D98863011F45C9A05C0E6
:106E80005C98873011F45B9A01C05B988091E502B1
:106E9000843120F48F5F8093E50220C08431F1F4C7
:106EA000809102018A3011F0843110F0289A01C0DB
:106EB00028988EE18093E5022CE0CFE5D7E0A1EBA6
:106EC000B2E0EBE2F7E08D919D9191838083329661
:106ED000198218822296215027FFF5CFFF91EF915A
:106EE000DF91CF91BF91AF919F918F917F916F91E2
:106EF0005F914F913F912F911F910F910F900FBE76
:106F00000F901F901895EF92FF920F931F9380910F
:106F10001F069927880F991F880F991F7C0100274A
:106F2000F7FC0095102F80916F0390917003A09152
:106F30007103B0917203BC01CD01A80197010E94B9
:106F4000C3793093AF052093AE058091670390918C
:106F50006803A0916903B0916A03BC01CD01A80147
:106F600097010E94C3793093B1052093B0058091B9
:106F7000E5079091E60797FD03969595879595957A
:106F800087959093B3058093B2058091F507909112
:106F9000F60797FD03969595879595958795909318
:106FA000B5058093B4058091800390918103209171
:106FB000420230914302821B930B9093B70580935A
:106FC000B60580910D0390910E03A0910F03B0912F
:106FD0001003BC01CD0125E030E040E050E00E940C
:106FE000C3793093B9052093B80580913C02909104
:106FF0003D029093BB058093BA0580912D0390913B
:107000002E039093BF058093BE0580911D01909142
:107010001E019093C1058093C00580911B039927A1
:107020009093C3058093C2058091F1079091F20778
:10703000A091F307B091F40720919501309196014A
:107040004091970150919801BC01CD010E94C379F4
:107050003093C5052093C4058091CB069927909362
:10706000C7058093C6058091D30699279093C905DB
:107070008093C8058091DB0699279093CB05809378
:10708000CA058091E30699279093CD058093CC059E
:1070900080911D0290911E029093D7058093D60592
:1070A00080916808909169089093DB058093DA05D8
:1070B00080916C0890916D089093DD058093DC05BC
:1070C00080916E0899279093E9058093E805809157
:1070D000F8039091F9039093EB058093EA05809172
:1070E000F6039091F7039093ED058093EC05809162
:1070F0004004882321F480914104882321F0809169
:10710000AD05816003C08091AD058E7F8093AD0594
:107110001F910F91FF90EF9008951F93CF93DF93EE
:10712000182FEB01809112038823A1F411501F3F07
:1071300089F0D0932202C093210280912102909184
:107140002202892BD1F7CE018C0F9D1F0E9497162A
:10715000115078F7DF91CF911F910895CF93DF936E
:10716000809102018D3011F40E94301B10927A0040
:1071700080914602909147029093AC078093AB07B1
:10718000809144029091450290939D0780939C07C3
:1071900080914202909143029093EB078093EA071B
:1071A00020913E0230913F02C901880F991F880F3C
:1071B000991F820F931F820F931F9093E60780936E
:1071C000E5072091400230914102C901880F991FC3
:1071D000880F991F820F931F820F931F9093F607BA
:1071E0008093F5078FEC80937A00ACE1B3E0C8E0C0
:1071F000D6E097E08991E82FFF27EE0FFF1FE55DAE
:10720000F84F0190F081E02DE259FF4F1E161F0646
:107210001CF0E0E0F0E005C0EF3FF10514F0EFEF07
:10722000F0E08C91282F3327E217F30714F48150F4
:1072300004C02E173F0714F48F5F8C939150119662
:1072400097FFD8CF809142069927AA27BB27BC0178
:10725000CD0124EC39E040E050E00E944F79DC01A0
:10726000CB018093B5019093B601A093B701B09381
:10727000B801809143069927AA27BB27BC01CD01FD
:107280000E944F79DC01CB018093B1019093B20150
:10729000A093B301B093B401DF91CF910895A0E022
:1072A000B0E0E5E5F9E30C94E479882EC0E0D0E0A5
:1072B0007E016E0110924004469AD0937B03C093E6
:1072C0007A03D0937903C0937803D0937503C09366
:1072D0007403D0938503C0938403D0938303C09336
:1072E0008203D0938103C093800310929E01109279
:1072F0009D01109236020E94AE3884E690E00E9412
:10730000A4160E94AE388091100680FF10C08091B4
:10731000130190911401875B934038F4809113011D
:10732000909114018E5E924010F40E94D61A0FE1E3
:107330008AE090E00E94A41680914202909143025C
:10734000C80FD91F8091460290914702E80EF91E9E
:107350008091440290914502C80ED91E015007FF4A
:10736000E7CF9701205F3F4F3695279536952795B4
:107370003093850320938403C601409696958795A4
:107380009695879590938303809382036096F5E0AA
:10739000D695C795FA95E1F7D0938103C093800302
:1073A00090937F0380937E0330937D0320937C032F
:1073B000882009F441C08091E5079091E60797FF86
:1073C00003C0909581959F4F6CE070E00E948E798C
:1073D0009B0170937B0360937A038091F5079091F2
:1073E000F60797FF03C0909581959F4F6CE070E082
:1073F0000E948E7970937903609378038091F505EC
:107400009091F6059093750380937403B90184E01D
:1074100090E00E94292E609178037091790386E0B4
:1074200090E00E94292E609174037091750388E0AA
:1074300090E00E94292E65C084E090E00E94242EF6
:1074400090937B0380937A0386E090E00E94242E41
:10745000909379038093780388E090E00E94242E33
:107460009C01909375038093740380917A039091AB
:107470007B038150984050F4809178039091790378
:107480008150984018F421503440D8F187E29AE0B6
:107490009F938F938FE592E19F938F93E0912704C1
:1074A000F091280409958091E5079091E60797FFF0
:1074B00003C0909581959F4F6CE070E00E948E799B
:1074C00070937B0360937A038091F5079091F607A0
:1074D00097FF03C0909581959F4F6CE070E00E94EC
:1074E0008E7970937903609378038091F50590917C
:1074F000F60590937503809374030F900F900F908F
:107500000F901092AC071092AB0710929D0710924B
:107510009C071092EB071092EA0784E690E00E9425
:10752000A41680913E0290913F029C01220F331FCE
:10753000220F331F280F391F280F391F3093E607FA
:107540002093E50780914002909141028C01000F49
:10755000111F000F111F080F191F080F191F10937B
:10756000F6070093F50780911F06C82EDD24EE2450
:10757000FF24442737FD4095542FC701B6010E94D0
:107580004F794B015C0160936F037093700380939C
:107590007103909372039801442737FD4095542F4F
:1075A000C701B6010E944F79DC01CB0180936703CC
:1075B00090936803A0936903B0936A0380924B038E
:1075C00090924C03A0924D03B0924E0380934303DC
:1075D00090934403A0934503B093460310923F0356
:1075E00010924003109241031092420380911501C2
:1075F00090911601A0911701B09118019093F80590
:107600008093F705109235021092340210922F03E6
:1076100010923003109231031092320380912D03A7
:1076200090912E0390932C0380932B030E949E63D2
:1076300082E390E09093220280932102809142069F
:107640009927AA27BB27BC01CD0124EC39E040E0F3
:1076500050E00E944F79DC01CB018856954CAF4F2A
:10766000BF4F8093B5019093B601A093B701B0933B
:10767000B801809143069927AA27BB27BC01CD01F9
:107680000E944F79DC01CB018856954CAF4FBF4F1C
:107690008093B1019093B201A093B301B093B40170
:1076A00010929A011092990180912D0390912E03CE
:1076B000AA2797FDA095BA2F2091950130919601A8
:1076C0004091970150919801BC01CD010E944F79E2
:1076D000DC01CB018093F1079093F207A093F307AD
:1076E000B093F407109226031092250381E0809353
:1076F00001010E9407688091E70284608093E7029D
:107700008FEF809363081092640880E2809365088D
:10771000CCE1D3E0A8E0B6E007E08D91E82FFF27A9
:10772000EE0FFF1FE55DF84F8081918182598993AB
:10773000015007FFF2CF84E680931B0380911F0264
:10774000882311F0469A579A80918403909185037B
:1077500080569940815C9B4228F080914004816072
:1077600080934004809182039091830380569940D6
:10777000815C9B4228F080914004826080934004A9
:1077800080918003909181038C529140895795405C
:1077900028F08091400484608093400480917A03B3
:1077A00090917B038C529140835C914028F08091B2
:1077B000400488608093400480917803909179031D
:1077C0008C529140835C914028F08091400480610C
:1077D000809340048091740390917503805092408F
:1077E0008355914028F0809140048062809340044A
:1077F000ECE0CDB7DEB70C94007AA3E1B0E0E3E0B3
:10780000FCE30C94DE7980918003909181032091B8
:10781000420230914302821B930B9093EB078093BB
:10782000EA0780914C0290914D0297FD07969C01CA
:1078300053E0359527955A95E1F73093AC0720939F
:10784000AB0780914A0290914B0297FD079643E067
:10785000959587954A95E1F790939D0780939C07AE
:107860003093B7072093B6079093AF078093AE0786
:107870008091E5079091E607AC01440F551F480F32
:10788000591F20913E0230913F02C901880F991F74
:10789000880F991F820F931F820F931F480F591F44
:1078A00057FF02C04D5F5F4F5595479555954795DA
:1078B0005093E6074093E5078091F5079091F6070E
:1078C000AC01440F551F480F591F209140023091C1
:1078D0004102C901880F991F880F991F820F931FBA
:1078E000820F931F480F591F57FF02C04D5F5F4F14
:1078F00055954795559547955093F6074093F5074D
:1079000020913E0230913F02C901880F991F880FD4
:10791000991F820F931F820F931F9C01442737FDED
:107920004095542F80915F0390916003A091610373
:10793000B0916203820F931FA41FB51F80935F0352
:1079400090936003A0936103B0936203209140027F
:1079500030914102C901880F991F880F991F820F2A
:10796000931F820F931F9C01442737FD4095542F8E
:1079700080915B0390915C03A0915D03B0915E03E5
:10798000820F931FA41FB51F80935B0390935C032A
:10799000A0935D03B0935E038091C0079091C107EF
:1079A00020913E0230913F02820F931F9093C107B6
:1079B0008093C0078091ED079091EE0720914002DF
:1079C00030914102820F931F9093EE078093ED0751
:1079D000809176039091770301969093770380933B
:1079E00076038091F5059091F6052091740330910E
:1079F0007503821B930B9C01442737FD4095542F40
:107A00008091570390915803A0915903B0915A0364
:107A1000820F931FA41FB51F8093570390935803A1
:107A2000A0935903B0935A038FEC80937A0010927D
:107A30000F01209147033091480340914903509131
:107A40004A0329873A874B875C8729543B46414044
:107A500050402CF028E43BE641E050E00DC0898521
:107A60009A85AB85BC85885B9449AE4FBF4F4CF47B
:107A700028EB34E94EEF5FEF2D833E834F83588729
:107A800008C089859A85AB85BC858D839E83AF832D
:107A9000B88720914F03309150034091510350918A
:107AA00052032D873E874F87588B29543B464140D0
:107AB00050402CF028E43BE641E050E00DC08D85BD
:107AC0009E85AF85B889885B9449AE4FBF4F4CF413
:107AD00028EB34E94EEF5FEF29833A834B835C83D5
:107AE00008C08D859E85AF85B88989839A83AB83CD
:107AF000BC83A091EA07B091EB07BB8BAA8BFD0179
:107B0000CF01AA2797FDA095BA2FA0903F03B09070
:107B10004003C0904103D0904203A80EB91ECA1E74
:107B2000DB1EA0923F03B0924003C0924103D0926B
:107B30004203E090F107F090F2070091F3071091F3
:107B4000F407E80EF91E0A1F1B1FE092F107F092DE
:107B5000F2070093F3071093F407F0910203F98BF7
:107B6000FF2309F098C180910103882309F093C194
:107B70008091100686FF8FC180919C0790919D0790
:107B8000AA2797FDA095BA2FBC01CD0129813A8182
:107B90004B815C810E944F799B01AC0197FF04C02F
:107BA0002150384F4F4F5F4F6BE0559547953795B4
:107BB00027956A95D1F780919D01682E77248824B6
:107BC0009924CA01B901A40193010E944F79DC01F3
:107BD000CB018093900390939103A0939203B09371
:107BE0009303B7FF04C08150904FAF4FBF4F1C01AC
:107BF0002D013CE055944794379427943A95D1F75A
:107C000020929003309291034092920350929303FA
:107C10008091AB079091AC07AA2797FDA095BA2F4A
:107C2000BC01CD012D813E814F8158850E944F7945
:107C300097FF04C06150784F8F4F9F4F2BE0959571
:107C40008795779567952A95D1F7A40193010E94AE
:107C50004F79DC01CB018093940390939503A0931B
:107C60009603B0939703B7FF04C08150904FAF4F76
:107C7000BF4F9C01AD018CE05595479537952795F1
:107C80008A95D1F7209394033093950340939603FC
:107C90005093970380919003909191039093940750
:107CA0008093930780919403909195039093980704
:107CB00080939707221933094409550920939403A7
:107CC000309395034093960350939703E20EF31E6F
:107CD000041F151FE092F107F092F2070093F307DB
:107CE0001093F40780919C018823B1F457FF04C0DE
:107CF0002F5F3F4F4F4F5F4F5595479537952795CE
:107D0000A21AB30AC40AD50AA0923F03B092400354
:107D1000C0924103D09242032A893B89790100270E
:107D2000F7FC0095102F8091940390919503A091FA
:107D30009603B0919703E80EF91E0A1F1B1FC80196
:107D4000B70129813A814B815C810E944F799B0167
:107D5000AC0197FF04C02150384F4F4F5F4FBBE03D
:107D60005595479537952795BA95D1F780919E01FE
:107D7000A82EBB24CC24DD24CA01B901A60195019B
:107D80000E944F79DC01CB01809388039093890393
:107D9000A0938A03B0938B03B7FF04C08150904F28
:107DA000AF4FBF4F3C014D01ACE095948794779461
:107DB0006794AA95D1F760928803709289038092A4
:107DC0008A0390928B03C801B7012D813E814F81B8
:107DD00058850E944F7997FF04C06150784F8F4FAC
:107DE0009F4FFBE09595879577956795FA95D1F725
:107DF000A60195010E944F79DC01CB0180938C0391
:107E000090938D03A0938E03B0938F03B7FF04C0AC
:107E10008150904FAF4FBF4FAC01BD01ECE0759565
:107E2000679557954795EA95D1F740938C03509302
:107E30008D0360938E0370938F032A893B8937FFEC
:107E400003C0309521953F4F21343105E4F1D40131
:107E5000C30197FE07C0B095A095909581959F4F5F
:107E6000AF4FBF4F81389105A105B10584F4DB0107
:107E7000CA0177FF07C0B095A095909581959F4F57
:107E8000AF4FBF4F81389105A105B105E4F081E006
:107E90008093270318C010929807109297071092AA
:107EA00094071092930710928C0310928D031092F6
:107EB0008E0310928F031092880310928903109200
:107EC0008A0310928B0380918C0390918D03A09173
:107ED0008E03B0918F03BC01CD0124E630E040E079
:107EE00050E00E94C379E0908803F0908903E21A81
:107EF000F30AF092AA07E092A90780918803909173
:107F00008903A0918A03B0918B03BC01CD0124E6C3
:107F100030E040E050E00E94C379DA01C9012091CD
:107F20008C0330918D038C01021B130B10939F0760
:107F300000939E078091950190919601A0919701E1
:107F4000B0919801BC01CD0128E631E040E050E05D
:107F50000E944F792091F1073091F2074091F30789
:107F60005091F407261737074807590764F0261B76
:107F7000370B480B590B2093F1073093F2074093CE
:107F8000F3075093F4072091F1073091F2074091E5
:107F9000F3075091F40757FF0CC0260F371F481FF7
:107FA000591F2093F1073093F2074093F307509342
:107FB000F40760919C0770919D076E0D7F1D9B01DA
:107FC000442737FD4095542F8091430390914403FB
:107FD000A0914503B0914603820F931FA41FB51FC4
:107FE0008093430390934403A0934503B0934603C7
:107FF0008091070390910803681B790BCB01AA2796
:1080000097FDA095BA2F29853A854B855C85820F0F
:10801000931FA41FB51F8093470390934803A09319
:108020004903B0934A03C090B101D090B201E090EF
:10803000B301F090B401C816D906EA06FB06C4F4F1
:1080400088EA91E6A0E0B0E08C199D09AE09BF096D
:108050008093470390934803A0934903B0934A0346
:108060008093430390934403A0934503B093460346
:1080700022273327A9012C193D094E095F09809158
:10808000470390914803A0914903B0914A03821796
:108090009307A407B507B4F4D701C601885A9146DF
:1080A000A040B0408093470390934803A0934903B6
:1080B000B0934A038093430390934403A0934503F2
:1080C000B09346036091AB077091AC07600F711FCE
:1080D0009B01442737FD4095542F80914B0390918D
:1080E0004C03A0914D03B0914E03820F931FA41F28
:1080F000B51F80934B0390934C03A0934D03B09313
:108100004E038091050390910603681B790BCB0108
:10811000AA2797FDA095BA2F2D853E854F855889B2
:10812000820F931FA41FB51F80934F03909350039A
:10813000A0935103B0935203E090B501F090B601C3
:108140000091B7011091B801E816F9060A071B075C
:10815000C4F488EA91E6A0E0B0E08E199F09A00B74
:10816000B10B80934F0390935003A0935103B093AE
:10817000520380934B0390934C03A0934D03B09311
:108180004E0322273327A9012E193F09400B510B1B
:1081900080914F0390915003A0915103B0915203ED
:1081A00082179307A407B507B4F4D801C701885A0A
:1081B0009146A040B04080934F0390935003A0930A
:1081C0005103B093520380934B0390934C03A093BD
:1081D0004D03B0934E0380913F0390914003A091D3
:1081E0004103B09142038093530390935403A093AF
:1081F0005503B093560380914F0390915003A09183
:108200005103B091520380936F0390937003A09336
:108210007103B09372038091470390914803A0913A
:108220004903B0914A038093670390936803A09336
:108230006903B0936A0380914B0390914C03A09122
:108240004D03B0914E0380936B0390936C03A09306
:108250006D03B0936E038091430390914403A0910A
:108260004503B09146038093630390936403A09306
:108270006503B093660380911B0190911C0197FDEB
:10828000079633E0959587953A95E1F79093AC077B
:108290008093AB078091190190911A0197FD079681
:1082A00023E0959587952A95E1F790939D07809314
:1082B0009C0780914602909147020F9734F488E121
:1082C0009CEF9093AC078093AB078091460290910E
:1082D0004702079734F480E398EF9093AC078093BC
:1082E000AB07209102012A30A9F4809146029091B7
:1082F0004702835F934034F088EE93E09093AC079D
:108300008093AB0780914602909147028A5F934029
:10831000DCF014C08091460290914702815D974045
:1083200034F088EE93E09093AC078093AB07809194
:10833000460290914702805E974034F080ED97E0CE
:108340009093AC078093AB078091440290914502D3
:108350000F9734F488E19CEF90939D0780939C07DE
:108360008091440290914502079734F480E398EF9E
:1083700090939D0780939C072A30A9F48091440232
:1083800090914502835F934034F088EE93E09093A0
:108390009D0780939C0780914402909145028A5FDB
:1083A0009340DCF014C08091440290914502815DBD
:1083B000974034F088EE93E090939D0780939C075C
:1083C0008091440290914502805E974034F080EDA8
:1083D00097E090939D0780939C07E091A801EE237E
:1083E00009F4B7C040911B0150911C018091980382
:1083F00090919903481B590B50939F0340939E0300
:1084000020911B0130911C01280F391F37FF02C03A
:108410002F5F3F4F3595279530939903209398030D
:10842000413851051CF080E890E005C040585F4F8E
:1084300034F480E89FEF90939F0380939E038E2FE8
:108440009927A0919E03B0919F03A89FA001A99F87
:10845000500DB89F500D112457FF02C0415F5F4F70
:1084600014E0559547951A95E1F78091AB079091E7
:10847000AC07840F951F9093AC078093AB07609176
:10848000190170911A0180919A0390919B03681BC6
:10849000790B70939D0360939C0340911901509157
:1084A0001A01480F591F57FF02C04F5F5F4F559584
:1084B000479550939B0340939A03613871051CF0D4
:1084C00080E890E005C060587F4F34F480E89FEF6B
:1084D00090939D0380939C032E2F332780919C03C0
:1084E00090919D03829FB001839F700D929F700DAC
:1084F0001124AB0177FF02C0415F5F4FE4E0559567
:108500004795EA95E1F780919C0790919D07840F2C
:10851000951F90939D0780939C07A29FC001A39FE6
:10852000900DB29F900D11249C0180911B019091A0
:108530001C01820F931F90931C0180931B0180915B
:10854000190190911A01860F971F90931A01809339
:1085500019010091AE071091AF0780919307909198
:108560009407101611065CF59C0197FF04C02227A2
:108570003327281B390BC901AA2797FDA095BA2FCD
:1085800020919C01332744275527BC01CD010E942F
:108590004F799B01AC0197FF04C0215C3F4F4F4FC7
:1085A0005F4F76E055954795379527957A95D1F7A2
:1085B0008091A9079091AA07820F931F27C097FF68
:1085C00003C0909581959F4FAA2797FDA095BA2F3C
:1085D00020919C01332744275527BC01CD010E94DF
:1085E0004F799B01AC0197FF04C0215C3F4F4F4F77
:1085F0005F4F66E055954795379527956A95D1F772
:108600008091A9079091AA07821B930B9093AA07C8
:108610008093A907E090B607F090B707809197077D
:10862000909198071E141F045CF59C0197FF04C0ED
:1086300022273327281B390BC901AA2797FDA095AC
:10864000BA2F20919C01332744275527BC01CD0127
:108650000E944F799B01AC0197FF04C0215C3F4F02
:108660004F4F5F4F96E055954795379527959A95CB
:10867000D1F780919E0790919F07820F931F27C08B
:1086800097FF03C0909581959F4FAA2797FDA095CE
:10869000BA2F20919C01332744275527BC01CD01D7
:1086A0000E944F799B01AC0197FF04C0215C3F4FB2
:1086B0004F4F5F4F86E055954795379527958A959B
:1086C000D1F780919E0790919F07821B930B909307
:1086D0009F0780939E078091100687FF44C0998969
:1086E000992309F040C0809101038823E1F5A1E0BE
:1086F000EA16A1E0FA064CF08091AB079091AC0726
:108700008E0D9F1D805091400DC0B0E0EB16BFEF65
:10871000FB0664F48091AB079091AC078E0D9F1D12
:1087200080509F4F9093AC078093AB07E1E00130FE
:108730001E074CF080919C0790919D07800F911F20
:10874000805091400CC0FFEF00301F0764F480910F
:108750009C0790919D07800F911F80509F4F909391
:108760009D0780939C07ACE1B3E068E076E057E0BA
:10877000FB018191BF01E82FFF27EE0FFF1FE55D91
:10878000F84F0190F081E02DE259FF4FEF3FF105E6
:1087900021F01CF0EFEFF0E004C0F7FF02C0E0E0D2
:1087A000F0E04C91242F3327E217F307B1F0CF010B
:1087B000821B930B97FD079613E0959587951A9565
:1087C000E1F7242F280F2C93822F9927E817F90718
:1087D00014F4215001C02F5F2C935150119657FF74
:1087E000C7CFE2E1CD5E0C94FA7980911203882321
:1087F00001F58091E7028C7F8093E702A5E4B4E065
:10880000EAECF6E09BE080910202882309F48C9365
:108810008D91818312829150389697FFF4CF809189
:108820000202882359F08091020281508093020253
:1088300005C08091E70281608093E70210926E028A
:108840001092700280916B028E7F80936B0285EA9A
:108850008093BC00089580911206883F38F0EFEFB6
:10886000F0E0E81BF109E45EFC4F80818093AE01EB
:108870008091AE01882329F0843618F084E6809335
:10888000AE0180911406883F38F0EFEFF0E0E81B6E
:10889000F109E45EFC4F80818093AC018091AC01D2
:1088A000882329F0843618F084E68093AC01809107
:1088B0002106883F38F0EFEFF0E0E81BF109E45EB5
:1088C000FC4F80818093A7018091A7018B3010F429
:1088D0008AE002C08F3F11F48093A70180914C067B
:1088E000883F38F0EFEFF0E0E81BF109E45EFC4F61
:1088F00080818093C2078091C207823010F481E0AA
:1089000002C08F3F11F48093C20780914E06883FCA
:1089100038F0EFEFF0E0E81BF109E45EFC4F8081F6
:108920008093E8078091E807823010F481E002C06C
:108930008F3F11F48093E80780913906883F38F023
:10894000EFEFF0E0E81BF109E45EFC4F80818093DB
:10895000BF0780913A06883F38F0EFEFF0E0E81B60
:10896000F109E45EFC4F80818093990780913B067A
:10897000883F38F0EFEFF0E0E81BF109E45EFC4FD0
:1089800080818093C70790911306983F18F49093C5
:10899000AD0109C0EFEFF0E0E91BF109E45EFC4F27
:1089A00080818093AD01983F18F49093AD0109C088
:1089B000EFEFF0E0E91BF109E45EFC4F808180936A
:1089C000AD0180911606883F38F0EFEFF0E0E81B2C
:1089D000F109E45EFC4F80818093AB018091180621
:1089E000883F38F0EFEFF0E0E81BF109E45EFC4F60
:1089F00080818093A90180912006883F38F0EFEFB5
:108A0000F0E0E81BF109E45EFC4F80818093AA014D
:108A100080912206883F38F0EFEFF0E0E81BF10983
:108A2000E45EFC4F80818093A60180912306883FFD
:108A300038F0EFEFF0E0E81BF109E45EFC4F8081D5
:108A40008093A80180912406883F38F0EFEFF0E092
:108A5000E81BF109E45EFC4F80818093A5018091C1
:108A60002506883F38F0EFEFF0E0E81BF109E45EFF
:108A7000FC4F80818093A40180912B06883F38F0C1
:108A8000EFEFF0E0E81BF109E45EFC4F808180939A
:108A9000A20180912C06883F38F0EFEFF0E0E81B50
:108AA000F109E45EFC4F80818093FC0280912D06E9
:108AB000883F38F0EFEFF0E0E81BF109E45EFC4F8F
:108AC00080818093FB0280912E06883F38F0EFEF83
:108AD000F0E0E81BF109E45EFC4F80818093FA022C
:108AE00080912F06883F38F0EFEFF0E0E81BF109A6
:108AF000E45EFC4F80818093F90280914706883FB5
:108B000038F0EFEFF0E0E81BF109E45EFC4F808104
:108B10008093F80280914806883F38F0EFEFF0E04C
:108B2000E81BF109E45EFC4F80818093F70280919D
:108B30004906883F38F0EFEFF0E0E81BF109E45E0A
:108B4000FC4F80818093F60280914A06883F38F07E
:108B5000EFEFF0E0E81BF109E45EFC4F80818093C9
:108B6000F50280913006883F38F0EFEFF0E0E81B27
:108B7000F109E45EFC4F80818093A101809134066D
:108B8000883F38F0EFEFF0E0E81BF109E45EFC4FBE
:108B900080818093A00180913C06883F38F0EFEF00
:108BA000F0E0E81BF109E45EFC4F808180939F01B7
:108BB00080913F06883F38F0EFEFF0E0E81BF109C5
:108BC000E45EFC4F808180939E0180914006883F47
:108BD00038F0EFEFF0E0E81BF109E45EFC4F808134
:108BE00080939D0180914106883F38F0EFEFF0E0DF
:108BF000E81BF109E45EFC4F808180939C01809129
:108C00004606883F38F0EFEFF0E0E81BF109E45E3C
:108C1000FC4F808180939B0180916106883F38F0F2
:108C2000EFEFF0E0E81BF109E45EFC4F80818093F8
:108C3000F8078091A201282F33272F5F3F4F8CE345
:108C400098E2B9010E948E797093B0016093AF01F0
:108C500080911E068093E90780911D068093B007DE
:108C600090916306933320F181E08093F402983F62
:108C700058F0EFEFF0E0E91BF109E45EFC4F808172
:108C8000823310F41092F4028091360890913708E4
:108C900097FF08C08091F402882321F0809140045E
:108CA000806803C0809140048F778093400402C0A5
:108CB0001092F402809136089091370897FF1DC0FA
:108CC000809112038823C9F08091F4028823A9F0CF
:108CD00080910801909109018F5F9F4F71F488E99D
:108CE0009AE3909322028093210280E094EA909389
:108CF0000901809308011092F4028091F402882304
:108D000039F080919E01823D18F4825E80939E012D
:108D10000895A5E3B0E0EFE8F6E40C94DE790E9454
:108D2000FD3B309102013C3010F4299A01C0299892
:108D3000E0901303F0901403F9A2E8A28091B00729
:108D400099270A96E816F90614F499A388A3809146
:108D50001B03843608F05CC08091B4039091B50386
:108D6000009731F001979093B5038093B40307C047
:108D7000109212038091E7028F7E8093E7023A30CF
:108D800011F0343110F0289A01C028988091E8023F
:108D90009091E902895E9340C0F180912806282FC6
:108DA000332739A328A38091E70280618093E702EB
:108DB00080910406A82FBB27AA0FBB1FFD01E15A13
:108DC000F84F1182108280910506282F3327220F39
:108DD000331FC901815A984FFC0111821082A55D91
:108DE000B84F11961C921E92255D384FD9011196ED
:108DF0001C921E9280910706E82FFF27EE0FFF1F9F
:108E0000E55DF84F11821082AAC210921203A7C228
:108E100080911B038D3808F4A2C28091E7028F7EF7
:108E20008093E7029091290682E3989FC001112464
:108E30009093B5038093B403E8A1F9A1B9978CF09E
:108E400080911203882369F08091E8029091E902F1
:108E5000FFEF8F3F9F0729F001969093E9028093DF
:108E6000E8028091E8029091E9028F3F910509F0B4
:108E700038F510923703109238031092390310928C
:108E80003A03109233031092340310923503109278
:108E900036031092A0031092A1031092A203109225
:108EA000A30310923F0310924003109241031092CB
:108EB00042038A3F910549F481E08093BA0305C0DB
:108EC0008091E70282608093E70280910606E82F96
:108ED000FF27EE0FFF1FE55DF84F808191818135FF
:108EE00091050CF441C120911203222309F03CC1E9
:108EF00080910706E82FFF27EE0FFF1FE55DF84F73
:108F0000808191818C3491050CF406C18091B60367
:108F10008F5F8093B603893C08F426C13C3010F47F
:108F2000299801C0299A109212031092B603109248
:108F3000E9021092E80230910406E32FFF27EE0FBA
:108F4000FF1FE55DF84F8081918187349105B4F46E
:108F500080910506E82FFF27EE0FFF1FE55DF84F14
:108F6000808191810190F081E02DF7FF03C0F095A1
:108F7000E195FF4FE734F1050CF478C041E0209112
:108F80000506A22FBB27AA0FBB1FA55DB84F8D9169
:108F90009C9111978734910544F0E32FFF27EE0F42
:108FA000FF1FE55DF84F808191818D919C91873401
:108FB000910574F080910406E82FFF27EE0FFF1F44
:108FC000E55DF84F80819181873491050CF042E096
:108FD000E22FFF27EE0FFF1FE55DF84F80819181A3
:108FE0008634910574F480910406E82FFF27EE0F74
:108FF000FF1FE55DF84F80819181873491050CF06A
:1090000043E0E22FFF27EE0FFF1FE55DF84F808161
:1090100091818A5B9F4F74F480910406E82FFF27AB
:10902000EE0FFF1FE55DF84F808191818734910538
:109030000CF044E0E22FFF27EE0FFF1FE55DF84F35
:10904000808191818A5B9F4F74F480910406E82FA0
:10905000FF27EE0FFF1FE55DF84F80819181863479
:1090600091050CF445E0842F0E94812E8091050625
:10907000E82FFF27EE0FFF1FE55DF84F80819181FC
:109080000190F081E02DF7FF03C0F095E195FF4FCF
:109090007E97BCF480910406E82FFF27EE0FFF1F98
:1090A000E55DF84F808191818A5B9F4F54F481E0A8
:1090B00080935B0488EE93E09093220280932102D8
:1090C00053C00E947B2F0E942E2E80E00E946D07CD
:1090D00080912A060E9482758091100680FF10C040
:1090E0008091130190911401875B934038F4809133
:1090F0001301909114018E5E924010F40E94D61AD2
:1091000010921F0280E00E944F3981E08093B903E2
:1091100080931F02579A1FC080819181855B9F4F6A
:109120000CF58091B6038F5F8093B603893CE0F025
:109130003C3010F4299801C0299A10921203109221
:10914000B6031092E9021092E80281E00E944F39C2
:1091500081E08093B9030E947B2F68E770E00E9452
:109160008D3802C02093B60380910606E82FFF27B2
:10917000EE0FFF1FE55DF84F808191818B5A9F4F65
:109180000CF0EDC020911203E0910706222309F0B4
:10919000CAC0FF27EE0FFF1FE55DF84F8081918168
:1091A000855B9F4F0CF0BCC08091B7038F5F8093AD
:1091B000B703893C08F4D3C02093B70380914004DF
:1091C000882309F0A6C08091B903882309F4A1C0BF
:1091D00081E090E09093E9028093E80281E080933F
:1091E00012031092A0031092A1031092A2031092F6
:1091F000A30310923F031092400310924103109278
:10920000420310923B0310923C0310923D031092D4
:109210003E0380911F06E82EFF240027112780912E
:10922000E5079091E6079C01442737FD4095542FB0
:10923000C801B7010E944F79DC01CB0180934F0335
:1092400090935003A0935103B09352038091F5077C
:109250009091F6079C01442737FD4095542FC80193
:10926000B7010E944F79DC01CB01809347039093B3
:109270004803A0934903B0934A0380916F039091F0
:109280007003A0917103B091720380934B0390938C
:109290004C03A0934D03B0934E03809167039091CC
:1092A0006803A0916903B0916A038093430390938C
:1092B0004403A0934503B0934603109237031092E2
:1092C00038031092390310923A031092330310922C
:1092D000340310923503109236038091E7028860C0
:1092E0008093E702909162068FE0989F900111248D
:1092F00080912D0390912E03820F931F68E671E0F9
:109300000E948E7997FD01969595879580937303BA
:1093100026C08CED95E090932202809321021FC01D
:109320002093B7031CC0FF27EE0FFF1FE55DF84F2A
:10933000808191818C34910584F08091B8038F5F96
:109340008093B803893C58F0109212031092B8032E
:109350001092E9021092E80202C01092B8038091C4
:109360009301815080939301809193018F3F21F06D
:109370008091E70284FF82C30E942B448091C30343
:109380009091C4039C01220F331F280F391FA09016
:109390000406AA2DBB27AA0FBB1FFD01E55DF84FF0
:1093A00090901A06492D552780819181849FF00164
:1093B000859FF00D949FF00D11242E0F3F1F37FF56
:1093C00002C02D5F3F4FB9017595679575956795FB
:1093D000A15AB84F80911B06082F11278D919C919F
:1093E000809F7001819FF00C909FF00C11246E0DF6
:1093F0007F1D7093C4036093C3038091C503909154
:10940000C6039C01220F331F280F391FB090050699
:10941000AB2DBB27AA0FBB1FFD01E55DF84F808177
:109420009181849FF001859FF00D949FF00D112490
:109430002E0F3F1F37FF02C02D5F3F4FA9015595EB
:10944000479555954795A15AB84F8D919C91809F0E
:109450007001819FF00C909FF00C11244E0D5F1D48
:109460005093C6034093C5039E012F5F3F4F8FE18A
:10947000E0ECF1E0D90101900D928A95E1F780913D
:10948000F402882309F448C0CB0177FD0396DC0180
:10949000B595A795B595A795CA0157FD0396FC010B
:1094A000F595E795F595E7958091E901682F772780
:1094B00067FD70956A9F90016B9F300D7A9F300D0C
:1094C00011248091FC03482F552747FD50954E9F4E
:1094D000C0014F9F900D5E9F900D1124280F391FE2
:1094E00037FF02C0295F3F4F03E0359527950A9566
:1094F000E1F730931A03209319036E9F90016F9F39
:10950000300D7E9F300D11244A9FC0014B9F900D5E
:109510005A9F900D112444C080916206082F112794
:10952000DE01A00FB11FFD0197819093E901020FA9
:10953000131FD8018C918093FC03A92FBB27A7FD93
:10954000B095A69F9001A79F300DB69F300D1124B6
:10955000E82FFF27E7FDF095E49FC001E59F900D00
:10956000F49F900D1124280F391F37FF02C0295F87
:109570003F4F13E0359527951A95E1F730931A037D
:1095800020931903A49F9001A59F300DB49F300D27
:109590001124E69FC001E79F900DF69F900D1124C6
:1095A000281B390B37FF02C0295F3F4FF3E0359589
:1095B0002795FA95E1F730931803209317038091CC
:1095C0000706E82FFF27EE0FFF1FE55DF84F8081AC
:1095D0009181909581959F4F9093160380931503E9
:1095E0008330910514F0029705C0BFEF8E3F9B07B3
:1095F00034F40296909316038093150304C01092DE
:109600001603109215038091F8039091F9032091AD
:10961000F4033091F503820F931FC0901903D0908B
:109620001A03C81AD90AD0921A03C092190380915A
:10963000F6039091F7032091F2033091F303820F28
:10964000931F0091170310911803081B190B109317
:1096500018030093170380910606E82FFF27EE0FEB
:10966000FF1FE55DF84FE080F180E8E7F0E0EE0EE7
:10967000FF1EF0921403E09213038091A701992733
:10968000AA2797FDA095BA2FBC01CD010E94C378EF
:10969000DC01CB0120E030E040E251E4BC01CD012F
:1096A0000E943178DC01CB01BC01CD010E9495788C
:1096B000DC01CB018093EF078091A6018093C8075E
:1096C0008091A5019927AA2797FDA095BA2FBC01E3
:1096D000CD010E94C378DC01CB0120E030E040E204
:1096E00051E4BC01CD010E943178DC01CB01BC0109
:1096F000CD010E949578DC01CB018093A307809176
:10970000A4018093B8078091670480FF59C08091BD
:10971000F807813808F454C080916004992787FDC8
:109720009095292D3327829FA001839F500D929FF2
:10973000500D1124C40ED51ED0921A03C0921903E5
:1097400080916104992787FD9095829FB001839F46
:10975000700D929F700D1124060F171F10931803A0
:109760000093170380916204282F332727FD30953B
:109770008091150390911603820F931F9093160307
:109780008093150380916404282F332727FD30959B
:10979000809115069927289FD001299FB00D389FE9
:1097A000B00D1124B0939A01A093990180916304A4
:1097B00099278E159F0524F4909314038093130327
:1097C000809113039091140397FF04C01092140327
:1097D000109213038091100682FF02C01092C807F6
:1097E0004091190350911A03CA0157FD03969C0139
:1097F000359527953595279537FF03C030952195E9
:109800003F4F8091EC029091ED0282179307B4F4E0
:10981000CA0157FF03C0909581959F4F97FD03960E
:1098200095958795959587959093ED028093EC0299
:109830008536910544F084E690E001C0019790934D
:10984000ED028093EC024091170350911803CA0176
:1098500057FD03969C01359527953595279537FF3C
:1098600003C0309521953F4F8091EA029091EB0221
:1098700082179307B4F4CA0157FF03C090958195EE
:109880009F4F97FD0396959587959595879590930E
:10989000EB028093EA028536910544F084E690E07D
:1098A00001C001979093EB028093EA028091E70256
:1098B00084FF08C01092ED021092EC021092EB02AD
:1098C0001092EA02EB2DFF27EE0FFF1FE55DF84F28
:1098D00040913D06242F3327808191812817390735
:1098E00044F48091640682FF04C081E08093000309
:1098F00013C0EB2DFF27EE0FFF1FE55DF84F842F00
:10990000992720913E06821B9109208131812817D9
:10991000390714F41092000340910506E42FFF2745
:10992000EE0FFF1FE55DF84F50913D06852F9927FB
:1099300022273327281B390B8081918182179307B7
:1099400044F48091640683FF04C081E08093FF02A9
:1099500016C08091FF02882391F0E42FFF27EE0FBD
:10996000FF1FE55DF84F80913E069927851B910901
:10997000208131818217930714F41092FF02EA2D9F
:10998000FF27EE0FFF1FE55DF84F40913D06242FA6
:109990003327808191812817390744F48091640628
:1099A00080FF04C081E08093FD0217C08091FD021A
:1099B000882399F0EA2DFF27EE0FFF1FE55DF84F92
:1099C000842F992720913E06821B910920813181A5
:1099D0002817390714F41092FD0240910406E42F71
:1099E000FF27EE0FFF1FE55DF84F50913D06852FD5
:1099F000992722273327281B390B808191818217D1
:109A0000930744F48091640681FF04C081E0809351
:109A1000FE0216C08091FE02882391F0E42FFF27FA
:109A2000EE0FFF1FE55DF84F80913E069927851BDD
:109A30009109208131818217930714F41092FE025C
:109A400080910003882319F48091FF02811181E045
:109A5000809301038091FD02882321F48091FE020E
:109A6000882351F081E08093020310920103109249
:109A700000031092FF0202C0809302038091010351
:109A8000882321F480910203882369F080913C06A9
:109A90009927E8A1F9A18E179F0714F499A388A329
:109AA00081E0809327038091E70284FF1AC010921F
:109AB00016031092150310921A03109219031092B4
:109AC0001803109217039AE59093EF0788E78093A5
:109AD000C8079093A3078093B807109201031092D0
:109AE00002038091BB079091BC07A091BD07B09184
:109AF000BE0720916F033091700340917103509124
:109B00007203820F931FA41FB51F8093BB0790930E
:109B1000BC07A093BD07B093BE078091C307909187
:109B2000C407A091C507B091C60720906703309085
:109B300068034090690350906A03820D931DA41D31
:109B4000B51D8093C3079093C407A093C507B09336
:109B5000C6078091B2079091B307A091B407B09166
:109B6000B507E0906B03F0906C0300916D031091CA
:109B70006E03EAA2FBA20CA31DA38E0D9F1DA01FC6
:109B8000B11F8093B2079093B307A093B407B0932B
:109B9000B5078091A4079091A507A091A607B09161
:109BA000A707E0906303F0906403009165031091B0
:109BB0006603EEA2FFA208A719A78E0D9F1DA01F86
:109BC000B11F8093A4079093A507A093A607B09315
:109BD000A707F0900203FAA6FF2029F48091010361
:109BE000882309F460C010925F0310926003109202
:109BF00061031092620310925B0310925C03109257
:109C00005D0310925E031092BB071092BC07109286
:109C1000BD071092BE071092C3071092C40710929E
:109C2000C5071092C6071092B2071092B3071092A0
:109C3000B4071092B5071092A4071092A5071092CE
:109C4000A6071092A70780914F0390915003A0910F
:109C50005103B091520380934B0390934C03A09314
:109C60004D03B0934E038091470390914803A09118
:109C70004903B0914A038093430390934403A09314
:109C80004503B093460310923302109232021092B1
:109C900006031092050310920803109207030AA509
:109CA000002309F0F2C180910103882309F0EDC17E
:109CB0008091F5059091F605815092402CF48091A9
:109CC0001203882309F4E1C190906308A0901F0655
:109CD0006091E5077091E6077BAB6AAB8091F50771
:109CE0009091F6079DAB8CAB9FEF991609F4D9C004
:109CF000BB24CC24DD24CA01B901A60195010E9430
:109D0000C37979018A01EAA9FBA9CF01AA2797FDA6
:109D1000A095BA2FE81AF90A0A0B1B0BC201B10170
:109D2000A60195010E94C37959016A012CA93DA998
:109D3000C901AA2797FDA095BA2FA81AB90ACA0A7D
:109D4000DB0A292C332427FC3094432C532CC801E4
:109D5000B701A20191010E944F7997FF04C06150A1
:109D60007E4F8F4F9F4F3B014C0109E095948794A4
:109D7000779467940A95D1F7C601B501A2019101C4
:109D80000E944F7997FF04C061507E4F8F4F9F4FC5
:109D90005B016C0119E0D594C794B794A7941A9508
:109DA000D1F78091EC029091ED02813491053CF461
:109DB0008091EA029091EB0281349105D4F0D401B4
:109DC000C30197FE03C00196A11DB11D3C014D01C9
:109DD0009594879477946794D601C501D7FE03C004
:109DE0000196A11DB11D5C016D01D594C794B79476
:109DF000A79480910706E82FFF27EE0FFF1FE55D70
:109E0000F84F808191810190F081E02DF7FF03C030
:109E1000F095E195FF4F7A97A4F0C401B30123E0D8
:109E200030E040E050E00E94C37939014A01C601A8
:109E3000B50123E030E040E050E00E94C3795901D1
:109E40006A0180916508282F332727FD3095432F1D
:109E5000532F261537054805590514F439014A01D1
:109E6000992787FD9095909581959F4FAA2797FDFB
:109E7000A095BA2F681679068A069B0614F43C0151
:109E80004D012A153B054C055D0514F459016A0185
:109E9000A816B906CA06DB060CF0CFC05C016D013E
:109EA000CCC0EA2CFF2400271127CA01B901A80160
:109EB00097010E94C37939014A014AA95BA9CA01E5
:109EC000AA2797FDA095BA2F681A790A8A0A9B0AD1
:109ED000C201B101A80197010E94C37959016A0129
:109EE0006CA97DA9CB01AA2797FDA095BA2FA81A26
:109EF000B90ACA0ADB0AD401C30197FE03C00F9650
:109F0000A11DB11D3C014D01F4E095948794779417
:109F10006794FA95D1F7D601C501D7FE03C00F9615
:109F2000A11DB11D5C016D01E4E0D594C794B79407
:109F3000A794EA95D1F78091EC029091ED028134DB
:109F400091053CF48091EA029091EB0281349105F5
:109F5000A4F0C401B30123E030E040E050E00E94EF
:109F6000C37939014A01C601B50123E030E040E080
:109F700050E00E94C37959016A0180910706E82FD9
:109F8000FF27EE0FFF1FE55DF84F80819181019063
:109F9000F081E02DF7FF03C0F095E195FF4F7A9730
:109FA000A4F0C401B30123E030E040E050E00E949F
:109FB000C37939014A01C601B50123E030E040E030
:109FC00050E00E94C37959016A0171E26716710479
:109FD000810491042CF070E2672E712C812C912C5D
:109FE00080EE68168FEF78068FEF88068FEF980661
:109FF00044F460EE662E6FEF762E6FEF862E6FEFD5
:10A00000962E91E2A916B104C104D1042CF050E2BD
:10A01000A52EB12CC12CD12CA0EEAA16AFEFBA06FA
:10A02000AFEFCA06AFEFDA0644F440EEA42E4FEFCE
:10A03000B42E4FEFC42E4FEFD42E80914F0390914A
:10A040005003A0915103B091520386199709A809B2
:10A05000B90980934F0390935003A0935103B09399
:10A0600052038091470390914803A0914903B09116
:10A070004A038A199B09AC09BD0980934703909351
:10A080004803A0934903B0934A0380913202909110
:10A0900033028F3F910509F008F4C4C5BAA5BB236C
:10A0A00009F04EC580910103882309F049C58091CC
:10A0B0002703882309F044C5E0914506EBA7EE236A
:10A0C00009F43EC58091BB079091BC07A091BD07E4
:10A0D000B091BE07B7FF04C081509F4FAF4FBF4F35
:10A0E000E92EFA2E0B2F112707FD1A95E092BB07D8
:10A0F000F092BC070093BD071093BE078091C30781
:10A100009091C407A091C507B091C607B7FF04C0DE
:10A1100081509F4FAF4FBF4F892F9A2FAB2FBB2737
:10A12000A7FDBA958CA79DA7AEA7BFA78093C3072D
:10A130009093C407A093C507B093C60780911F06EC
:10A14000A82EBB24CC24DD2420915F033091600332
:10A150004091610350916203C601B5010E944F799D
:10A1600097FF04C061507F4F8F4F9F4F672E782E0F
:10A17000892E992487FC9A9460925F037092600301
:10A18000809261039092620320915B0330915C03A3
:10A1900040915D0350915E03C601B5010E944F7965
:10A1A00097FF04C061507F4F8F4F9F4F272E382E4F
:10A1B000492E552447FC5A9420925B0330925C034D
:10A1C00040925D0350925E03809157039091580333
:10A1D000A0915903B0915A03B7FF04C081509F4F1B
:10A1E000AF4FBF4F892F9A2FAB2FBB27A7FDBA9533
:10A1F0008093570390935803A0935903B0935A0345
:10A20000D801C70186199709A809B9098093AC0339
:10A210009093AD03A093AE03B093AF032091440697
:10A22000E22EFF2400271127BC01CD01A8019701D0
:10A230000E94C37959016A012093BB033093BC0388
:10A240004093BD035093BE038CA59DA5AEA5BFA5AD
:10A2500082199309A409B5098093B0039093B103BF
:10A26000A093B203B093B303BC01CD01A801970141
:10A270000E94C3792093BF033093C0034093C1036E
:10A280005093C203D601C501D7FE04C081509F4F31
:10A29000AF4FBF4F892F9A2FAB2FBB27A7FDBA9582
:10A2A000909306038093050357FF04C021503F4F4E
:10A2B0004F4F5F4FBB2757FDBA95A52F942F832F84
:10A2C00090930803809307038091EC029091ED0234
:10A2D00081349105DCF48091EA029091EB028134A3
:10A2E0009105A4F480910706E82FFF27EE0FFF1FCA
:10A2F000E55DF84F808191810190F081E02DF7FFBD
:10A3000003C0F095E195FF4F7A97E4F080916308E0
:10A310008F3FC1F4809105039091060397FD01964C
:10A320009595879590930603809305038091070385
:10A330009091080397FD0196959587959093080352
:10A34000809307038091B2079091B307A091B4075F
:10A35000B091B507B7FF04C081509F4FAF4FBF4FBB
:10A36000892F9A2FAB2FBB27A7FDBA958093B207F1
:10A370009093B307A093B407B093B5078091A40757
:10A380009091A507A091A607B091A707B7FF04C0B9
:10A3900081509F4FAF4FBF4F892F9A2FAB2FBB27B5
:10A3A000A7FDBA958093A4079093A507A093A6074D
:10A3B000B093A70780916F0390917003A0917103F0
:10A3C000B09172032AA13BA14CA15DA1281B390BBE
:10A3D0004A0B5B0B2093A4033093A5034093A60381
:10A3E0005093A7038091670390916803A09169033C
:10A3F000B0916A03EEA0FFA008A519A5E81AF90A12
:10A400000A0B1B0BE092A803F092A9030093AA0386
:10A410001093AB032093AC033093AD034093AE0392
:10A420005093AF03E092B003F092B1030093B203F4
:10A430001093B30380914B0390914C03A0914D0373
:10A44000B0914E03821B930BA40BB50B80934B036F
:10A4500090934C03A0934D03B0934E03809143031C
:10A4600090914403A0914503B09146038E199F0932
:10A47000A00BB10B8093430390934403A093450337
:10A48000B0934603FBA5FF23E1F020912503309113
:10A490002603213831054CF080918003909181038F
:10A4A0000196909381038093800320583F4F4CF492
:10A4B0008091800390918103019790938103809311
:10A4C0008003109226031092250381E090E0909380
:10A4D000C8038093C703A090AC03B090AD03C090B5
:10A4E000AE03D090AF03D601C501D7FE07C08827C1
:10A4F0009927DC018A199B09AC09BD09815092405A
:10A50000A040B04034F084E090E09093C803809382
:10A51000C7038091CD039091CE03A091CF03B0915A
:10A52000D0032091BB073091BC074091BD075091EB
:10A53000BE07821B930BA40BB50B815E914BAF4FF3
:10A54000BF4F8F539C49A040B04028F080916408D1
:10A5500089310CF4FFC031E0A31630E1B30630E0DE
:10A56000C30630E0D3060CF473C08091C90388237E
:10A5700009F46AC0D601C501D7FE07C0882799270C
:10A58000DC018A199B09AC09BD099C01AD01B7FF2B
:10A5900004C021503E4F4F4F5F4F09E055954795FE
:10A5A000379527950A95D1F78091C7039091C803F5
:10A5B000820F931F9093C8038093C703D601C501F0
:10A5C000D7FE03C00796A11DB11D13E0B595A79551
:10A5D000979587951A95D1F78093BB039093BC0309
:10A5E000A093BD03B093BE0389589341A040B040EF
:10A5F00064F088E893E1A0E0B0E08093BB0390931F
:10A60000BC03A093BD03B093BE032091BB03309164
:10A61000BC034091BD035091BE0357FF04C02150BD
:10A620003F4F4F4F5F4F232F342F452F552747FD67
:10A630005A958091050390910603820F931F909382
:10A6400006038093050306C081E08093C90302C01E
:10A650001092C90350E0A51650EFB5065FEFC5068E
:10A660005FEFD5060CF073C08091CA03882309F40C
:10A670006AC0D601C501D7FE07C088279927DC012B
:10A680008A199B09AC09BD099C01AD01B7FF04C043
:10A6900021503E4F4F4F5F4FF9E055954795379505
:10A6A0002795FA95D1F78091C7039091C803820F3F
:10A6B000931F9093C8038093C703D601C501D7FEAB
:10A6C00003C00796A11DB11DE3E0B595A795979529
:10A6D0008795EA95D1F78093BB039093BC03A09331
:10A6E000BD03B093BE0388579C4EAF4FBF4F64F479
:10A6F00088E79CEEAFEFBFEF8093BB039093BC0362
:10A70000A093BD03B093BE032091BB033091BC0363
:10A710004091BD035091BE0357FF04C021503F4FED
:10A720004F4F5F4F232F342F452F552747FD5A9505
:10A730008091050390910603820F931F9093060367
:10A740008093050311C081E08093CA030DC010926D
:10A75000CA030AC01092C8031092C70388EE93E0A0
:10A760009093BA018093B9017BA5272F332780915D
:10A77000C7039091C8032817390724F43093C803FE
:10A780002093C703E0916408EE2379F02E2F33273E
:10A7900027FD30958091C7039091C803281739078A
:10A7A00024F43093C8032093C7034091AC03509125
:10A7B000AD036091AE037091AF034138510561055F
:10A7C000710574F080918403909185032091C703F3
:10A7D0003091C803820F931F909385038093840365
:10A7E00040585F4F6F4F7F4F74F480918403909176
:10A7F00085032091C7033091C803821B930B90936C
:10A8000085038093840381E090E09093C803809354
:10A81000C703A090B003B090B103C090B203D09032
:10A82000B303D601C501D7FE07C088279927DC01ED
:10A830008A199B09AC09BD0981509240A040B040E3
:10A8400034F084E090E09093C8038093C703809134
:10A85000D1039091D203A091D303B091D40320915E
:10A86000C3073091C4074091C5075091C607821BAA
:10A87000930BA40BB50B815E914BAF4FBF4F8F5322
:10A880009C49A040B04018F0E9310CF4FFC011E041
:10A89000A11610E1B10610E0C10610E0D1060CF4DB
:10A8A00073C08091CB03882309F46AC0D601C50127
:10A8B000D7FE07C088279927DC018A199B09AC09B4
:10A8C000BD099C01AD01B7FF04C021503E4F4F4F61
:10A8D0005F4F69E055954795379527956A95D1F76C
:10A8E0008091C7039091C803820F931F9093C80370
:10A8F0008093C703D601C501D7FE03C00796A11DEB
:10A90000B11D23E0B595A795979587952A95D1F721
:10A910008093BF039093C003A093C103B093C2037D
:10A9200089589341A040B04064F088E893E1A0E0EA
:10A93000B0E08093BF039093C003A093C103B09392
:10A94000C2032091BF033091C0034091C1035091D5
:10A95000C20357FF04C021503F4F4F4F5F4F232F7B
:10A96000342F452F552747FD5A9580910703909125
:10A970000803820F931F909308038093070306C078
:10A9800081E08093CB0302C01092CB0330E0A3168A
:10A9900030EFB3063FEFC3063FEFD3060CF073C0B2
:10A9A0008091CC03882309F46AC0D601C501D7FE83
:10A9B00007C088279927DC018A199B09AC09BD09C2
:10A9C0009C01AD01B7FF04C021503E4F4F4F5F4F78
:10A9D00009E055954795379527950A95D1F78091C8
:10A9E000C7039091C803820F931F9093C80380936D
:10A9F000C703D601C501D7FE03C00796A11DB11D2F
:10AA000013E0B595A795979587951A95D1F78093FB
:10AA1000BF039093C003A093C103B093C2038857B0
:10AA20009C4EAF4FBF4F64F488E79CEEAFEFBFEF93
:10AA30008093BF039093C003A093C103B093C2035C
:10AA40002091BF033091C0034091C1035091C203D4
:10AA500057FF04C021503F4F4F4F5F4F232F342FDC
:10AA6000452F552747FD5A9580910703909108037C
:10AA7000820F931F909308038093070311C081E016
:10AA80008093CC030DC01092CC030AC01092C8036F
:10AA90001092C70388EE93E09093BA018093B901B6
:10AAA0005BA5252F33278091C7039091C8032817F2
:10AAB000390724F43093C8032093C70380916408B6
:10AAC000882379F0282F332727FD30958091C703FD
:10AAD0009091C8032817390724F43093C8032093B2
:10AAE000C7034091B0035091B1036091B2037091DC
:10AAF000B303413851056105710574F080918203FB
:10AB0000909183032091C7033091C803820F931F54
:10AB1000909383038093820340585F4F6F4F7F4F22
:10AB2000CCF480918203909183032091C7033091EC
:10AB3000C803821B930B90938303809382030AC004
:10AB40001092080310920703109206031092050357
:10AB5000109227038091C807882341F410920803BC
:10AB60001092070310920603109205038091BB0711
:10AB70009091BC07A091BD07B091BE078093CD0313
:10AB80009093CE03A093CF03B093D0038091C307DB
:10AB90009091C407A091C507B091C6078093D103D7
:10ABA0009093D203A093D303B093D40310925F0386
:10ABB00010926003109261031092620310925B0383
:10ABC00010925C0310925D0310925E031092570383
:10ABD000109258031092590310925A031092BB0717
:10ABE0001092BC071092BD071092BE071092C307C7
:10ABF0001092C4071092C5071092C6071092B207B0
:10AC00001092B3071092B4071092B5071092A407E0
:10AC10001092A5071092A6071092A7071092330270
:10AC2000109232020091150310911603C80117FF0C
:10AC300004C088279927801B910B40976CF088EE01
:10AC400093E09093BA018093B9018091100684FD3E
:10AC500003C081E08093BA03F0901C06AF2CBB24A4
:10AC6000CC24DD24B801882777FD8095982F9801A2
:10AC700017FF04C022273327201B310B442737FD41
:10AC80004095542F0E944F799B01AC01C601B5013C
:10AC90000E944F7997FF04C061507E4F8F4F9F4FA6
:10ACA000F9E09595879577956795FA95D1F79B018A
:10ACB0008F2D9927809FD001819FB00D909FB00D5F
:10ACC0001124CD01B7FD03969595879595958795A8
:10ACD000280F391F442737FD4095542F2093A00398
:10ACE0003093A1034093A2035093A30380913F03A9
:10ACF00090914003A0914103B0914203821B930BBA
:10AD0000A40BB50B80933F0390934003A0934103A2
:10AD1000B09342038155934CA040B04064F080E56D
:10AD200093ECA0E0B0E080933F0390934003A093A6
:10AD30004103B093420380913F0390914003A0915F
:10AD40004103B0914203805B9C43AF4FBF4F64F41B
:10AD500080EB9CE3AFEFBFEF80933F039093400302
:10AD6000A0934103B0934203A0902D03B0902E0313
:10AD7000A114B10409F478C18091100683FF74C155
:10AD800080916F0390917003A0917103B091720351
:10AD9000B7FF04C081509E4FAF4FBF4F79E0B595CC
:10ADA000A795979587957A95D1F76C0197FF04C081
:10ADB000D094C194D108D394809167039091680393
:10ADC000A0916903B0916A03B7FF04C081509E4F00
:10ADD000AF4FBF4F69E0B595A795979587956A9551
:10ADE000D1F7BC0197FF03C0709561957F4FC616E0
:10ADF000D7060CF46B01B601D7FE02C0695F7F4F26
:10AE00002B0153E0559447945A95E1F742E0E42E24
:10AE1000F12C4E0C5F1C0CE112E0A00EB11E75016E
:10AE20000027F7FC0095102F24EE3DEFA20EB31E75
:10AE30008091F1079091F207A091F307B091F40788
:10AE40006090950170909601809097019090980184
:10AE5000BC01CD01A40193010E94C379E21AF30A57
:10AE6000040B150BC801B70128E631E040E050E0C3
:10AE70000E94C379DC01CB013CE4E32E3FEFF32ECB
:10AE8000E80EF91E0091B9011091BA0101151105E2
:10AE900089F539E1C316D1046CF5809125039091B1
:10AEA00026038E0D9F1D909326038093250380918A
:10AEB000BA038823F9F0C501AA2797FDA095BA2FF8
:10AEC000BC01CD01A40193010E944F79DC01CB01AB
:10AED0008093F1079093F207A093F307B093F407E0
:10AEE000BC01CD010E94C37930932C0320932B0326
:10AEF0001092BA03C70124E0880F991F2A95E1F741
:10AF0000B2010E948E79CB01AA2797FDA095BA2F96
:10AF10002091F1073091F2074091F3075091F40727
:10AF2000280F391F4A1F5B1F2093F1073093F20748
:10AF30004093F3075093F407F090AA016F2D772701
:10AF4000C69EC001C79E900DD69E900D112497FD00
:10AF50004F966C0195E0D594C7949A95E1F76C19DA
:10AF60007D096B0177FD7AC00115110509F06FC0ED
:10AF70000091EC021091ED028091EA029091EB02B7
:10AF8000080F191F17FF02C0095F1F4F83E01595B7
:10AF900007958A95E1F7005C1F4FCA01B901A4012A
:10AFA00093010E94C379DA01C90120912B033091EA
:10AFB0002C03442737FD4095542F821B930BA40B81
:10AFC000B50B845E9D4FAF4FBF4FBC01CD0128E64E
:10AFD00031E040E050E00E94C379DC01CB01845BAA
:10AFE00090408C9DA0018D9D500D9C9D500D112475
:10AFF000CA01B8010E948E7983E0F89E6001112495
:10B00000C616D70614F4B60108C0882799278C19EC
:10B010009D09681779070CF4BC019B01442737FD93
:10B020004095542F80913F0390914003A09141039C
:10B03000B0914203820F931FA41FB51F80933F035B
:10B0400090934003A0934103B09342030DC001507D
:10B0500010401093BA010093B90106C084EF91E04B
:10B060009093BA018093B90180912703882381F0DE
:10B07000109233031092340310923503109236036A
:10B0800010923703109238031092390310923A034A
:10B09000709002037720F1F48091C807282F33279E
:10B0A0004427552780916F0390917003A0917103FD
:10B0B000B0917203BC01CD010E944F79DC01CB013C
:10B0C000BC01CD0128EF3AE240E050E00E94C37994
:10B0D000290102C044245524909001039920F1F4E1
:10B0E0008091C807282F332744275527809167036D
:10B0F00090916803A0916903B0916A03BC01CD01EE
:10B100000E944F79DC01CB01BC01CD0128EF3AE26E
:10B1100040E050E00E94C379190102C02224332488
:10B1200080919E0790919F07893C91051CF088ECC7
:10B1300090E005C088539F4F34F488E39FEF9093CD
:10B140009F0780939E078091A9079091AA07893C49
:10B1500091051CF088EC90E005C088539F4F34F4B3
:10B1600088E39FEF9093AA078093A9078091AB078C
:10B170009091AC07AA2797FDA095BA2F2091EF07D1
:10B18000A22EBB24CC24DD24BC01CD01A601950157
:10B190000E944F799B01AC0180919E0790919F077F
:10B1A000AA2797FDA095BA2F17E0880F991FAA1F0D
:10B1B000BB1F1A95D1F7280F391F4A1F5B1F57FF76
:10B1C00004C0215C3F4F4F4F5F4FA6E05595479518
:10B1D00037952795AA95D1F77201E20EF31EF092EA
:10B1E000AC07E092AB0780919C0790919D07AA273E
:10B1F00097FDA095BA2FBC01CD01A60195010E9433
:10B200004F799B01AC018091A9079091AA07AA27C9
:10B2100097FDA095BA2FF7E0880F991FAA1FBB1FB3
:10B22000FA95D1F7280F391F4A1F5B1F57FF04C03B
:10B23000215C3F4F4F4F5F4FE6E05595479537955F
:10B240002795EA95D1F78101020F131F10939D07EF
:10B2500000939C078091EA079091EB07880F991F54
:10B26000AA2797FDA095BA2F2091A307332744273B
:10B270005527BC01CD010E944F795B016C0197FFFE
:10B2800008C08FE390E0A0E0B0E0A80EB91ECA1E8F
:10B29000DB1E76E0D594C794B794A7947A95D1F73E
:10B2A0008091B807282F33274427552780915303CF
:10B2B00090915403A0915503B0915603BC01CD0168
:10B2C0000E944F79DC01CB01BC01CD0120EF35E5B7
:10B2D00040E050E00E94C379B501620F731F709384
:10B2E000EB076093EA0791E0E91690E1F90634F084
:10B2F00080E090E19093AC078093AB078091AB071F
:10B300009091AC078050904F34F480E090EF909390
:10B31000AC078093AB070150104134F080E090E11E
:10B3200090939D0780939C0780919C0790919D0727
:10B330008050904F34F480E090EF90939D0780937D
:10B340009C076150704134F080E090E19093EB07EE
:10B350008093EA078091EA079091EB078050904F25
:10B3600034F480E090EF9093EB078093EA078091AC
:10B370000001482F552780911D0190911E0148170B
:10B38000590794F420911D0130911E0168A179A103
:10B39000649FC001659F900D749F900D1124B901A9
:10B3A0000E947A7979A368A388A199A1880F991F2F
:10B3B000880F991F99A388A34091100640FF92C659
:10B3C000992009F08FC6772009F08CC6CC24DD24A3
:10B3D000460180910303909104039093D9058093D3
:10B3E000D80520918603309187032115310509F096
:10B3F0003FC080911301909114018959934058F0F6
:10B4000087B5803F20F480913602815011C081E0E1
:10B410008093E0034EC08091130190911401843613
:10B42000910508F587B58031D0F0809136028F5FA5
:10B43000809336029FE08902900111248091FF05DC
:10B44000821B87BD8CE291E09093220280932102BF
:10B450008EE591E090938703809386032AC081E074
:10B460008093DF0326C07092DF037092E00321C057
:10B4700080910D0390910E03A0910F03B0911003E2
:10B4800054E0880F991FAA1FBB1F5A95D1F78093CC
:10B49000370290933802A0933902B0933A02D092C7
:10B4A0003502C092340221503040309387032093FC
:10B4B00086032091AD0141FF24C02233D8F480914E
:10B4C000BF0181508093BF018F3FD9F510922803AF
:10B4D00080910D0390910E03A0910F03B091100382
:10B4E0008093090390930A03A0930B03B0930C037A
:10B4F00081E004C081E08093280388EC8093BF0141
:10B5000020C08091990190919A01820F911D209104
:10B5100015063327829FF001839FF00D929FF00D57
:10B520001124CF01AA2797FDA095BA2F8093090374
:10B5300090930A03A0930B03B0930C0381E08093D4
:10B54000280380916F0390917003A0917103B091D3
:10B550007203E0909501F09096010091970110918F
:10B560009801BC01CD01A80197010E94C37959013E
:10B570006A018091670390916803A0916903B0917B
:10B580006A03BC01CD01A80197010E94C379B901EA
:10B59000C5010E9478773C01CC971CF04CE3642EE7
:10B5A000712CC3010E94B56B3C0180E28093940131
:10B5B00080912803882309F421C48091E702992708
:10B5C0009C012071307084FD19C46091660660FD95
:10B5D00004C08091100681FD07C008A119A1309315
:10B5E000D6032093D50397C18091E70281FF69C1FB
:10B5F0004091BB015091BC01CA010F9620911303E9
:10B600003091140382179307ACF58091DF038823F0
:10B6100089F58091E10381FF13C08D7F8093E10361
:10B6200080910D0390910E03A0910F03B091100330
:10B630008093090390930A03A0930B03B0930C0328
:10B640008091E10381608093E103241B350B2F502F
:10B65000304037FF03C0309521953F4F8091D5038F
:10B660009091D603820F931F9093D6038093D503B6
:10B670008BE26EC0CA010F9728173907ACF580918D
:10B68000E003882389F58091E10380FF13C08E7F5A
:10B690008093E10380910D0390910E03A0910F031D
:10B6A000B09110038093090390930A03A0930B03B6
:10B6B000B0930C038091E10382608093E103241B2B
:10B6C000350B215F3F4F37FF03C0309521953F4F2A
:10B6D0008091D5039091D603821B930B9093D60350
:10B6E0008093D5038DE234C02091E103822F992706
:10B6F00083709070892B59F12C7F2093E103109275
:10B70000D6031092D50320910D0330910E03409182
:10B710000F03509110032093090330930A034093C1
:10B720000B0350930C0361FF06C084EF91E09093EC
:10B7300022028093210280911103882341F4233354
:10B740003105410551051CF081E0809311038DE323
:10B75000809394012091D5033091D603C90137FF1E
:10B7600004C088279927821B930B815092400CF4C8
:10B7700091C0809115069927289FA001299F500DFF
:10B78000389F500D1124CA0160E075E00E948E7947
:10B79000CB01AA2797FDA095BA2F209109033091DC
:10B7A0000A0340910B0350910C03280F391F4A1FC5
:10B7B0005B1F2093090330930A0340930B035093BC
:10B7C0000C031092D6031092D503A0900D03B090F5
:10B7D0000E03C0900F03D0901003D601C501805016
:10B7E0009440A040B04082179307A407B5075CF4CB
:10B7F000D601C50180509C4FAF4FBF4F2817390766
:10B800004A075B0744F08093090390930A03A093CF
:10B810000B03B0930C038091660681FF06C08BE496
:10B8200090E0909322028093210280911906882350
:10B8300089F5409103035091040357FF02C04D5F07
:10B840005F4F559547955595479580911D0190916E
:10B850001E01209100013327489FB001499F700DC0
:10B86000589F700D1124CB01B9010E948E797093FD
:10B87000BC016093BB01663471051CF486E490E062
:10B8800005C06739710534F086E990E09093BC01FA
:10B890008093BB018091860390918703892BB9F136
:10B8A00080910D0390910E03A0910F03B0911003AE
:10B8B0008093090390930A03A0930B03B0930C03A6
:10B8C00026C080910D0390910E03A0910F03B091BB
:10B8D000100380599140A040B04080930903909399
:10B8E0000A03A0930B03B0930C03809119068823DD
:10B8F00011F0992702C088E790E09093BC018093F3
:10B90000BB0188A199A19093040380930303009144
:10B91000030310910403A0900D03B0900E03C09098
:10B920000F03D09010032091090330910A03409136
:10B930000B0350910C032A153B054C055D0524F0C3
:10B940008091660680FD9CC280918603909187035A
:10B95000892B39F00091030310910403CC24DD24DA
:10B96000C9C0D601C501821B930BA40BB50B8093F4
:10B97000A4039093A503A093A603B093A7038230DA
:10B98000E0E89E07EFEFAE07EFEFBE072CF481E093
:10B9900090E8AFEFBFEF09C08F5F9F47A040B04076
:10B9A00064F08FEF9FE7A0E0B0E08093A403909352
:10B9B000A503A093A603B093A703C090A403D090BF
:10B9C000A5038091AC01282F332744275527809168
:10B9D000A4039091A503A091A603B091A703BC0175
:10B9E000CD010E944F7997FF04C0615E7F4F8F4F5A
:10B9F0009F4F25E095958795779567952A95D1F77F
:10BA00006093A4037093A5038093A6039093A70368
:10BA100065302EEF72072FEF82072FEF92072CF47D
:10BA200084E09EEFAFEFBFEF09C0605074408040EC
:10BA3000904064F080E094E0A0E0B0E08093A40344
:10BA40009093A503A093A603B093A7038090A403AB
:10BA50009090A503209134023091350237FF02C047
:10BA6000295F3F4F83E0359527958A95E1F74FEFA2
:10BA7000223834071CF421E83FEF05C02038310597
:10BA800014F020E830E0C901AA2797FDA095BA2F4D
:10BA90002091AE01332744275527BC01CD010E94D8
:10BAA0004F7997FF04C06D5F7F4F8F4F9F4FB2E07C
:10BAB0009595879577956795BA95D1F79B015FEF37
:10BAC000613075071CF420E03FEF06C06F3F710541
:10BAD00019F014F020E031E08091E103882341F077
:10BAE000C90137FD03969C01359527953595279516
:10BAF000820E931E2091AB01222309F454C0609161
:10BB00002F0370913003809131039091320397FF9E
:10BB100004C061587F4F8F4F9F4FF7E095958795F1
:10BB200077956795FA95D1F73327442755270E94D3
:10BB30004F7997FF04C0615E7F4F8F4F9F4FE5E0C5
:10BB40009595879577956795EA95D1F76093A403C6
:10BB50007093A5038093A6039093A7036138AFEF7A
:10BB60007A07AFEF8A07AFEF9A072CF480E89FEFD0
:10BB7000AFEFBFEF0AC06F3F71058105910569F016
:10BB800064F080E091E0A0E0B0E08093A4039093A3
:10BB9000A503A093A603B093A7038091A40390915B
:10BBA000A503880E991E8091A901282F3327809123
:10BBB0006708992787FD9095289FF001299FF00D30
:10BBC000389FF00D11249F01F7FF02C021583F4F0D
:10BBD000220F232F221F330BFFEF21383F071CF4C6
:10BBE00020E83FEF06C02F3F310519F014F020E0A8
:10BBF00031E0820E931EC401AA2797FDA095BA2FAB
:10BC0000E0900303F09004039701442737FD40952B
:10BC1000542FBC01CD010E944F7997FF04C06150A1
:10BC20007E4F8F4F9F4F59E09595879577956795F4
:10BC30005A95D1F7061B170B8091D5039091D60327
:10BC4000892B09F060C01E141F040CF05CC0960123
:10BC5000D7FE03C0309521953F4F2D33310540F479
:10BC60008091D9039091DA038017910774F526C06B
:10BC70002C53304045E0369527954A95E1F7203121
:10BC8000310510F02FE030E04091D9035091DA03F4
:10BC90001C141D04E4F480E190E0821B930B489F88
:10BCA0009001499F300D589F300D112494E0369536
:10BCB00027959A95E1F72017310720F58091BD016E
:10BCC0009091BE0108171907F4F08C011CC0205F89
:10BCD0003F4F8091BD019091BE01829FB001839F33
:10BCE000700D929F700D11249B0184E0369527956D
:10BCF0008A95E1F74017510714F08A0104C0021732
:10BD0000130708F08901C801AA2797FDA095BA2F4B
:10BD10001DE0880F991FAA1FBB1F1A95D1F7930129
:10BD2000442737FD4095542FBC01CD010E94C379B3
:10BD30002093A8033093A9034093AA035093AB0325
:10BD40000091A8031091A9038091D7039091D80383
:10BD50009C01220F331F280F391F200F311F37FF7F
:10BD600002C02D5F3F4FA9015595479555954795C1
:10BD70005093D8034093D70380911106282F33277F
:10BD8000220F331F220F331F241735076CF48091C5
:10BD9000E907282F3327220F331F220F331F205587
:10BDA00030404217530724F03093D8032093D70331
:10BDB0008091660680FF0DC08091D7039091D803D3
:10BDC000A8A1B9A18A179B0724F0B093D803A09328
:10BDD000D70328A139A12E193F0937FF02C02D5FD3
:10BDE0003F4F3595279535952795E091D703F091ED
:10BDF000D803E20FF31FF9A3E8A342C0809119060C
:10BE0000882301F5609103037091040377FF02C05A
:10BE10006D5F7F4F759567957595679540911D018D
:10BE200050911E0180910001282F3327649FC0018B
:10BE3000659F900D749F900D1124B9010E948E7919
:10BE4000CB0101C099279093BC018093BB018091E5
:10BE5000BB019091BC01873491051CF486E490E00D
:10BE600005C08639910534F086E990E09093BC01D5
:10BE70008093BB01E8A0F9A0F092D803E092D70329
:10BE80008091E70299279C012270307081FF1CC1CC
:10BE90008091DB039091DC03A091DD03B091DE0380
:10BEA0000097A105B10521F0809111038130B1F413
:10BEB00008A119A1C801AA2797FDA095BA2F2EE0C5
:10BEC000880F991FAA1FBB1F2A95D1F78093DB0308
:10BED0009093DC03A093DD03B093DE038091110304
:10BEE000813019F482E08093110328A139A1C9019E
:10BEF000AA2797FDA095BA2F9301442737FD4095B7
:10BF0000542FBC01CD010E944F79DC01CB018093FD
:10BF1000A8039093A903A093AA03B093AB03B7FF20
:10BF200004C08150904EAF4FBF4F5C016D010DE0DA
:10BF3000D594C794B794A7940A95D1F7A092A80373
:10BF4000B092A903C092AA03D092AB036091E80219
:10BF50007091E9023FE0603A730750F58091DB038E
:10BF60009091DC03A091DD03B091DE039C01AD0153
:10BF70001AE056954795379527951A95D1F7821B64
:10BF8000930BA40BB50BA6019501F4E0220F331F10
:10BF9000441F551FFA95D1F7820F931FA41FB51F99
:10BFA0008093DB039093DC03A093DD03B093DE0367
:10BFB00060547F4118F58091DB039091DC03A091E0
:10BFC000DD03B091DE039C01AD01ECE05695479591
:10BFD00037952795EA95D1F7821B930BA40BB50BE8
:10BFE000A601950172E0220F331F441F551F7A9559
:10BFF000D1F7820F931FA41FB51F29C0809134026F
:10C0000090913502809134029091350297FF03C0E0
:10C01000909581959F4F843691050CF58091DB03B7
:10C020009091DC03A091DD03B091DE039C01AD0192
:10C030006EE056954795379527956A95D1F7821BFF
:10C04000930BA40BB50B8A0D9B1DAC1DBD1D8093DE
:10C05000DB039093DC03A093DD03B093DE038091B8
:10C06000DB039091DC03A091DD03B091DE032EE0B1
:10C07000B695A795979587952A95D1F79093040340
:10C080008093030340911706442399F055279C01A0
:10C09000BA010E948E79C901861B970B9093DA032F
:10C0A0008093D903260F371F3093BE012093BD0123
:10C0B00019C01092DA031092D9038FEF93E0909396
:10C0C000BE018093BD010EC0109211031092DB03DC
:10C0D0001092DC031092DD031092DE033093040310
:10C0E000209303035091B00758AB252F3327220F1D
:10C0F000331F220F331F285D3F4F68A179A12617F8
:10C10000370714F039A328A37091E90779AB872F7B
:10C110009927880F991F880F991F80559040A8A1D3
:10C12000B9A18A179B0714F499A388A380916C0284
:10C13000882321F480916E088F3FA1F08091E8025E
:10C140009091E9020297C09768F4E8A1F9A11E1640
:10C150001F0644F481E090E09093E9028093E802A6
:10C1600039A328A3E8A0F9A0F092BD05E092BC0590
:10C170008091A0039091A103A091A203B091A30389
:10C1800012E0880F991FAA1FBB1F1A95D1F7C09004
:10C19000EA07D090EB07C81AD90A8701013A1105BE
:10C1A0008CF0C701F7FC0196959587958C159D0538
:10C1B0000CF46C01909581959F4FC816D90694F4A4
:10C1C0006C0110C011E5C116D1041CF0E0E5CE2EC3
:10C1D000D12C20EBC2162FEFD20624F470EBC72E21
:10C1E0007FEFD72E49A9242F3327220F331F220F89
:10C1F000331FC90168A179A1861B970B8C159D057A
:10C200000CF46C0188A199A1821B930BC816D90666
:10C210000CF46C018091AB079091AC07609119030D
:10C2200070911A03861B970B9093BA078093B907F6
:10C23000A090C8072091370330913803409139030B
:10C2400050913A03AA2041F0461A570AC201AA2780
:10C2500097FDA095BA2F04C0AA2797FDA095BA2FE5
:10C26000280F391F4A1F5B1F209337033093380371
:10C270004093390350933A038091370390913803E8
:10C28000A0913903B0913A0381509A4FA040B04039
:10C2900064F080E09AEFA0E0B0E0809337039093E1
:10C2A0003803A0933903B0933A03809137039091F8
:10C2B0003803A0913903B0913A0380509640AF4FB4
:10C2C000BF4F64F480E096E0AFEFBFEF8093370399
:10C2D00090933803A0933903B0933A03B0902606A5
:10C2E0002B2D33278091B9079091BA07289F7001B1
:10C2F000299FF00C389FF00C11249701F7FE02C023
:10C30000295F3F4F790153E0F594E7945A95E1F79F
:10C310000091AF011091B0019801442737FD40957D
:10C32000542F8091370390913803A0913903B09135
:10C330003A03BC01CD010E94C379E20EF31E909036
:10C340009B01692D7727882799279601D7FE04C07E
:10C35000222733272C193D0937FF02C02F5F3F4F9B
:10C360003595279548A159A1240F351F442737FD3E
:10C370004095542F0E944F7997FF04C0615C7F4F16
:10C380008F4F9F4F26E095958795779567952A95CE
:10C39000D1F79B016E157F050CF47B01309521953B
:10C3A0003F4FE216F3060CF4790180919C079091BF
:10C3B0009D076091170370911803861B970B90934C
:10C3C0009B0780939A072091330330913403409167
:10C3D000350350913603AA2041F0261A370AC101CD
:10C3E000AA2797FDA095BA2F04C0AA2797FDA0956C
:10C3F000BA2F280F391F4A1F5B1F20933303309336
:10C400003403409335035093360380913303909166
:10C410003403A0913503B091360381509A4FA04068
:10C42000B04064F080E09AEFA0E0B0E08093330386
:10C4300090933403A0933503B09336038091330374
:10C4400090913403A0913503B0913603805096400B
:10C45000AF4FBF4F64F480E096E0AFEFBFEF809343
:10C46000330390933403A0933503B09336032B2DFD
:10C47000332780919A0790919B07289FD001299F8D
:10C48000B00D389FB00D11249D01B7FF02C0295F88
:10C490003F4F5901B3E0B594A794BA95E1F79801DD
:10C4A000442737FD4095542F8091330390913403F6
:10C4B000A0913503B0913603BC01CD010E94C37930
:10C4C000A20EB31E692D7727882799279601D7FEDC
:10C4D00004C0222733272C193D0937FF02C02F5FE4
:10C4E0003F4F35952795E8A1F9A12E0F3F1F44270F
:10C4F00037FD4095542F0E944F7997FF04C0615C2F
:10C500007F4F8F4F9F4FF6E095958795779567956D
:10C51000FA95D1F79B016A157B050CF45B01309508
:10C5200021953F4FA216B3060CF45901EAEC6E2E8A
:10C53000E6E07E2E71E8872E76E0972E6BE0362EB1
:10C5400059EC452E57E0552ED4012C9112160CF0C3
:10C55000DFC0203419F408A119A11EC0E8A1F9A177
:10C56000CF01AA2797FDA095BA2F332727FD309535
:10C57000432F532FBC01CD010E944F7997FF04C078
:10C58000615C7F4F8F4F9F4F46E0959587957795DC
:10C5900067954A95D1F78B01F4012181203419F474
:10C5A0000E0D1F1D22C0203C19F40E191F091DC0BD
:10C5B000C701AA2797FDA095BA2F332727FD3095ED
:10C5C000432F532FBC01CD010E944F7997FF04C028
:10C5D000615C7F4F8F4F9F4F36E09595879577959C
:10C5E00067953A95D1F7060F171FF4012281203481
:10C5F00019F40A0D1B1D22C0203C19F40A191B094D
:10C600001DC0C501AA2797FDA095BA2F332727FD86
:10C610003095432F532FBC01CD010E944F7997FFD6
:10C6200004C0615C7F4F8F4F9F4F26E095958795A3
:10C63000779567952A95D1F7060F171FF401238187
:10C64000203419F40C0D1D1D22C0203C19F40C19C6
:10C650001D091DC0C601AA2797FDA095BA2F332733
:10C6600027FD3095432F532FBC01CD010E944F79F8
:10C6700097FF04C0615C7F4F8F4F9F4FB6E0959549
:10C68000879577956795BA95D1F7060F171FD20151
:10C690008D919C91801791075CF4BC01600F711F14
:10C6A00077FF02C06F5F7F4F8B011595079504C020
:10C6B000000F111F081B190BB8A98B2F9927880F82
:10C6C000991F880F991F8017910754F4E9A98E2F9D
:10C6D0009927880F991F880F991F081719070CF0C1
:10C6E0008C01C80117FD03969595879595958795BB
:10C6F000F3018183880F991F880F991F9801281BC8
:10C70000390BC901880F8283D2010D931C9303C09A
:10C71000F301118212823A9402E010E0400E511EA1
:10C7200024E030E0820E931E48E050E0640E751E57
:10C7300037FE0ACFE2E1CB5C0C94FA798091EE03EC
:10C740009091EF03A091F003B091F1038093E60381
:10C750009093E703A093E803B093E9038091EA0381
:10C760009091EB03A091EC03B091ED038093E20371
:10C770009093E303A093E403B093E503089510922C
:10C78000F9031092F8031092F7031092F60308953C
:10C7900084B1806A84B93D9A82E58CBD1DBC459AFE
:10C7A00081E08093FB078AEA80930C0883E88093FA
:10C7B0000D088AE080930E081092100810920F085E
:10C7C00010921208109211081092660810922E080A
:10C7D00008953091FB07332309F085C00DB407FE9F
:10C7E00082C084E080932002459A2EB58091FD039B
:10C7F00099278130910589F0823091051CF4892BAD
:10C8000021F03EC00297B9F03BC030932D08209331
:10C81000FE032138A9F581E008C0253549F480914F
:10C82000FE03820F8093FE0382E08093FD0328C005
:10C830003093FD0325C080912D08E82FFF27E75B8B
:10C84000F74F20838F5F80932D089091FE038A31EC
:10C85000A0F0291769F48AE1A9E4B8E0EFE2F8E072
:10C860000D9001928A95E1F781E080932E0802C035
:10C8700030932E081092FD0303C0920F9093FE0395
:10C8800020910B08203208F028C0459800000000D5
:10C890000000000000000000000000000000000098
:10C8A0000000000000000000000000000000000088
:10C8B000000000000000000000000000E0910408FB
:10C8C000F0910508E20FF11D80818EBD80912B084B
:10C8D0009081890F80932B0803C081E08093FB0730
:10C8E0002F5F20930B080895EF92FF920F931F93F1
:10C8F00080911F069927880F991F880F991F7C0127
:10C900000027F7FC0095102F80916F039091700322
:10C91000A0917103B0917203BC01CD01A8019701F0
:10C920000E94C3793093100820930F088091670309
:10C9300090916803A0916903B0916A03BC01CD0195
:10C94000A80197010E94C37930931208209311081F
:10C950002091F1073091F2074091F3075091F407CD
:10C96000DA01C901E3E0880F991FAA1FBB1FEA95EE
:10C97000D1F7820F931FA41FB51F820F931FA41F0F
:10C98000B51F2091950130919601409197015091EA
:10C990009801BC01CD010E94C379309318082093FF
:10C9A0001708809180039091810320914202309179
:10C9B0004302821B930B90931E0880931D08E09105
:10C9C0007603F09177038091C0079091C107BF0172
:10C9D0000E948E79CB019B01220F331F220F331F40
:10C9E000280F391F280F391F37FF02C02D5F3F4F17
:10C9F000359527953595279530931408209313087E
:10CA00008091ED079091EE07BF010E948E799B0106
:10CA1000220F331F220F331F260F371F260F371FFA
:10CA200037FF02C02D5F3F4F3595279535952795E8
:10CA3000309316082093150810927703109276030E
:10CA40001092C1071092C0071092EE071092ED07E6
:10CA500080910E0899278D30910509F466C08E30BB
:10CA600091055CF48B30910509F48EC08C309105F2
:10CA70000CF00FC10A9761F0A8C18F30910509F43D
:10CA80007CC18F3091050CF45CC1409799F19DC138
:10CA90008091FC0280931F088091FB028093200804
:10CAA0008091FA02809321088091F90280932208F4
:10CAB0008091F802809323088091F70280932408E4
:10CAC0008091F602809325088091F50280932608D4
:10CAD0008091E702809327088091E702837F80930B
:10CAE000E7020E947B2F8093280880917303809334
:10CAF00029086BC18091680890916908909320087B
:10CB000080931F0880916C0890916D089093220883
:10CB10008093210880911D0190911E01809323082C
:10CB2000809100018093240850C180915106809328
:10CB30001F088091520680932008809153068093AD
:10CB40002108809154068093220880915506809395
:10CB50002308809159068093240880915A06809377
:10CB6000250880915B068093260880915E0680935D
:10CB7000270880915C068093280880915D06809349
:10CB8000290880915F06DAC0F89480910606E82FA4
:10CB9000FF27EE0FFF1FE55DF84F0190F081E02DBC
:10CBA000E038F1051CF0EFE7F0E006C02FEFE138C8
:10CBB000F20714F4E1E8FFEFE0931F088091070605
:10CBC000E82FFF27EE0FFF1FE55DF84F0190F08182
:10CBD000E02DE038F1051CF0EFE7F0E006C06FEF64
:10CBE000E138F60714F4E1E8FFEFE09320088091C4
:10CBF0000506E82FFF27EE0FFF1FE55DF84F0190B8
:10CC0000F081E02DE038F1051CF0EFE7F0E006C020
:10CC10008FEFE138F80714F4E1E8FFEFE093210823
:10CC200080910406E82FFF27EE0FFF1FE55DF84F08
:10CC30000190F081E02DE038F1051CF0EFE7F0E025
:10CC400006C02FEFE138F20714F4E1E8FFEF789423
:10CC5000E093220880911C038093230880911D0398
:10CC60008093240880911E038093250880911F03E0
:10CC700080932608809120038093270880912103C8
:10CC800080932808809122038093290880912303B0
:10CC900055C080915B04863018F010925B0485E0EB
:10CCA00080931F08809160068093200880910D0377
:10CCB00090910E03A0910F03B0911003BC01CD0120
:10CCC00025E030E040E050E00E94C3793093220834
:10CCD000209321088091090390910A03A0910B03EE
:10CCE000B0910C03BC01CD0125E030E040E050E004
:10CCF0000E94C3793093240820932308809156061C
:10CD000080932508809157068093260880915806C5
:10CD10008093270880911B038093280880912B071C
:10CD200090912C07809329088091BC059091BD05B6
:10CD300097FD0396959587959595879580932A08F5
:10CD400044C010921F0880E58093200883E0809300
:10CD500021088EE0809322088091020180932308AD
:10CD60008091400480932408809141048093250899
:10CD7000809142048093260828C0809138068093D1
:10CD80001F0880916506809320088091A1018093FF
:10CD90002108809131068093220880913206809389
:10CDA000230880913306809324088091A00180930A
:10CDB0002508809135068093260880913606809359
:10CDC0002708809137068093280880912E088823B1
:10CDD00009F4CFC08AEF8093E80140913008509168
:10CDE0003108CA0181509E4F8F5F9340B0F420916B
:10CDF000320830913308C90181509E4F8F5F9340B4
:10CE000060F48091100685FF08C05093F9034093A9
:10CE1000F8033093F7032093F6038091360890913E
:10CE2000370821E08936920724F490932E038093EB
:10CE30002D0380912D0390912E0320912B0330918F
:10CE40002C03821B930B845E9D4F68E671E00E9469
:10CE50008E79845B904090932A03809329032091DC
:10CE60003A0830913B08809121029091220282176A
:10CE7000930740F480915B04882321F430932202CD
:10CE80002093210280912F0899278836910549F136
:10CE90008936910524F48736910531F072C08936C0
:10CEA000910509F445C06DC080913C0880936308EA
:10CEB00080913D088093650880913E0880936408C6
:10CEC00080913F08809366088091400880936708AE
:10CED000809141088093E901809142088093FC038E
:10CEE00050C080913C088093060880913D08809353
:10CEF000070880913E088093080880913F0880933E
:10CF000009088091400880930A088091AC059091AF
:10CF10004108892B8093AC05909142089093FA03C5
:10CF20008091AD0583709C70892B8093AD0529C0DD
:10CF300080913C088093FC0780913D088093FD0719
:10CF400080913E088093FE0780913F088093FF0701
:10CF500080914008909141089093010880930008C7
:10CF600080914208909143089093030880930208AF
:10CF700008C01092F9031092F8031092F703109270
:10CF8000F6031F910F91FF90EF9008958091FB079A
:10CF9000882309F43BC045988CE098E090930508FD
:10CFA000809304089091FB03E92FFF27E152FE4F85
:10CFB0009F5F9093FB03808180930E08993010F05F
:10CFC0001092FB031092FB070E94746481E080932F
:10CFD0000B0800000000000000000000000000003E
:10CFE0000000000000000000000000000000000041
:10CFF0000000000000000000000000000000000031
:10D00000000080910C0880932B088EBD089587B195
:10D010008C6087B9429843981092000480E880930E
:10D02000EB011092FF038093EA01089580910504BB
:10D030008150809305048F3F09F0F4C094E09093F1
:10D0400005048091E702807BE1F080914F06882300
:10D0500049F080910804882311F49093000481E042
:10D0600080930804809150068823B9F080910904C8
:10D07000882319F484E08093FF0381E080930904FE
:10D080000CC0809308048093090480914B06809320
:10D09000060480914D06809307048091080488233C
:10D0A00009F040C080916406282F332724FF07C071
:10D0B00080911203882319F425FD4DC04EC0909134
:10D0C0004C06983F50F08091C2078D3D30F0809122
:10D0D000060488230CF43FC040C0983F48F080917C
:10D0E000C2078A3028F4809106048823B4F133C043
:10D0F000809100048150809300048F3F79F58091E6
:10D10000C2078150809300048091EB01813011F4BB
:10D1100080E801C086958093EB018091EB019091AE
:10D12000060417C0809100048150809300048F3F53
:10D13000A9F489E0809300048091EB01813011F41F
:10D1400080E801C086958093EB018091EB0190917E
:10D150004F06892311F0429A01C042988091090438
:10D16000882309F043C080916406282F332724FFC9
:10D1700007C080911203882319F426FD50C034C0E3
:10D1800090914E06983F50F08091E8078D3D30F029
:10D190008091070488230CF442C026C0983F48F0D1
:10D1A0008091E8078A3028F4809107048823E4F00E
:10D1B00036C08091FF0381508093FF038F3F91F52C
:10D1C0008091E80781508093FF038091EA018130CC
:10D1D00011F480E801C086958093EA018091EA010C
:10D1E000909107048923D9F4439808958091FF030F
:10D1F00081508093FF038F3FA9F489E08093FF0360
:10D200008091EA01813011F480E801C08695809315
:10D21000EA018091EA0190915006892311F0439A26
:10D220000895439808954FB724E130E0F894809131
:10D23000C9008F778093C9008091C9008F7B80934C
:10D24000C9008091C9008F7D8093C9005A9A529875
:10D250005B9A539A832F99278093CD002093CC001B
:10D260008091C80082608093C80080E18093C900EB
:10D270008091CA008F778093CA008091CA008F7B0B
:10D280008093CA008091CA008F7D8093CA008091EC
:10D29000CA008F7E8093CA008091CA00877F8093E6
:10D2A000CA008091C9008B7F8093C9008091CA0019
:10D2B00084608093CA008091CA0082608093CA0013
:10D2C0008091C80087FF03C08091CE00F9CF809184
:10D2D000C90080688093C9004FBF0895FF920F93E3
:10D2E0001F93CF93DF9380E197E20E948216EC01B7
:10D2F000FF248091C9008F778093C9008091C90075
:10D300008F7E8093C9005A988FE39AE09F938F9302
:10D310000FE512E11F930F93E0912704F091280489
:10D3200009950F900F900F900F9002C04A996CC012
:10D33000CE010E948B168823C9F3E0912704F09157
:10D340002804FF2009F468C085E79AE09F938F9333
:10D350001F930F930995529A0F900F900F900F9073
:10D36000CE010E948B168823D9F383E690E05A9A67
:10D37000019797FFFCCF8FE891E05A98019797FFAC
:10D38000FCCF89E090E05A9A019797FFFCCF89E0A3
:10D3900090E05A98019797FFFCCF8FE891E05A9A56
:10D3A000019797FFFCCF8FE891E05A98019797FF7C
:10D3B000FCCF89E090E05A9A019797FFFCCF89E073
:10D3C00090E05A98019797FFFCCF8FE891E05A9A26
:10D3D000019797FFFCCF8FE891E05A98019797FF4C
:10D3E000FCCF89E090E05A9A019797FFFCCF89E043
:10D3F00090E05A98019797FFFCCF8FE891E05A9AF6
:10D40000019797FFFCCF13C08AE590E00E94821637
:10D41000EC0191E0F92E91CF8BE79AE09F938F93E7
:10D420001F930F9309950F900F900F900F905298A4
:10D430005A980E941369E5E0CDB7DEB70C94077ADD
:10D44000EF92FF920F931F93CF93DF93482F00E04B
:10D4500010E08091EC01813061F41092EC0184E4E1
:10D4600080930A0410920C0410920B0410920D0485
:10D470002BC180910A04882319F421E030E001C017
:10D48000980190910B04992371F4232B11F081E002
:10D4900010C084E480930A0490930C0490930B04CE
:10D4A00090930D04FAC0913069F4232B09F0EBC07E
:10D4B00082E080930B0480910C048F5F80930C04B6
:10D4C00083E0E9C09230D1F4232B09F0DCC083E083
:10D4D00080930A0440930D0490910C04923039F427
:10D4E00010920E0447FF03C081E080930E0483E096
:10D4F00080930B049F5F90930C04CFC0933009F08E
:10D50000C2C0232B09F0BFC090930A0482E080932D
:10D510000B0480910C048F5F80930C0420910D0408
:10D52000822F9927782F6627842F9927682B792BAC
:10D5300080912A06813049F47370CB01805092406B
:10D5400063E070E00E948E7917C0823061F47770DA
:10D55000CB018050944066E070E00E948E79269561
:10D56000269526950BC0737068567140CB0177FDE8
:10D570000196BC017595679526952695022F112772
:10D580000F7010700F5F1F4F0D30110508F074C041
:10D590007801E00EF11EF701E55DF84F8081918181
:10D5A0009B01281B390BC90137FF03C0909581955A
:10D5B0009F4F069794F480911B03883C30F4809130
:10D5C0001B03865F80931B0308C088EC80931B03BA
:10D5D00080916F008F7D80936F00F701E55DF84FBC
:10D5E000808191819C01220F331F280F391F260F44
:10D5F000371F37FF02C02D5F3F4FE901D595C79513
:10D60000D595C795CB0101968C179D0714F42197EA
:10D6100006C061507040C617D7070CF42196809160
:10D620001B03843BD0F0F701E55DF84F80819181C9
:10D63000FE01E81BF90BCF0163E070E00E948E79D8
:10D64000CB01880F991F860F971F2FE537E0E20E59
:10D65000F31EF7019183808307C02FE537E0E20EC8
:10D66000F31EF70111821082000F111F055D184F84
:10D67000F801D183C08311C00231110570F081E03F
:10D680008093EC010AC081E08093EC0110920C04BD
:10D6900010920E0484E480930A0480910C0480317B
:10D6A00098F080910E04882331F48091EC01882356
:10D6B00011F48093930110920C0410920E041092B6
:10D6C0000B0484E480930A04E6E0CDB7DEB70C9443
:10D6D000067ACF93FC0197FF05C0CFEFF095E19557
:10D6E000FF4F01C0C1E028E631E0CF01B9010E943F
:10D6F0008E79FC018B35910554F08B5590408A351D
:10D70000910538F484EB90E08E1B9F0BFC0141E007
:10D710000DC0CF01855B90408A35910518F4E45B1C
:10D72000F04003C02E1B3F0BF9014FEFEE0FFF1F20
:10D73000EA57F54F259134918C2F992787FD9095C5
:10D74000289FB001299F700D389F700D1124842FE0
:10D75000992787FD9095689FA001699F500D789F3C
:10D76000500D1124CA01CF9108952AE530E0281BFD
:10D77000390BC9010E94696B0895CF93DF9380E054
:10D780000E941E7180911D0190911E016AE070E05F
:10D790000E948E799F938F9380911D0190911E011D
:10D7A0006AE070E00E948E797F936F9384E59BE03E
:10D7B0009F938F93C1E1D1E7DF93CF93E09127044B
:10D7C000F091280409952DB73EB7285F3F4F2DBF34
:10D7D0008091E8018823B9F186E00E941E71809152
:10D7E0000008909101086AE070E00E947A797F93C6
:10D7F0006F938FED90E09F938F938091F1079091BD
:10D80000F207A091F307B091F407209195013091B0
:10D8100096014091970150919801BC01CD010E9461
:10D82000C3793F932F938DE59BE09F938F93DF9375
:10D83000CF93E0912704F091280409958DB79EB706
:10D840000A968DBF12C086E00E941E7189E69BE099
:10D850009F938F93DF93CF93E0912704F091280457
:10D8600009950F900F900F900F908091FA038823E5
:10D87000C1F086E00E941E718091FA0399279F9360
:10D880008F9380E79BE09F938F93DF93CF93E091FB
:10D890002704F091280409952DB73EB72A5F3F4F22
:10D8A0002DBF80E10E941E718091F3019091F401DF
:10D8B0006CE370E00E947A799F938F938091F301DB
:10D8C0009091F4016CE370E00E947A797F936F93FA
:10D8D00080916C0890916D089F938F938BE79BE0EC
:10D8E0009F938F93C1E1D1E7DF93CF93E09127041A
:10D8F000F09128040995809110062DB73EB7265F58
:10D900003F4F2DBF80FF29C08AE10E941E71809188
:10D91000940199279F938F9380910D0390910E030B
:10D92000A0910F03B0911003BC01CD0124E630E0BB
:10D9300040E050E00E94C3793F932F9388E89BE03A
:10D940009F938F93DF93CF93E0912704F091280466
:10D9500009958DB79EB708968DBFDF91CF91089539
:10D96000CF93DF9380E00E941E718091E906992792
:10D9700087FD90959F938F938091E106992787FD6E
:10D9800090959F938F938091D906992787FD9095C5
:10D990009F938F938091D106992787FD90959F93B0
:10D9A0008F938FE89BE09F938F93C1E1D1E7DF9343
:10D9B000CF93E0912704F0912804099580E10E941B
:10D9C0001E712DB73EB7245F3F4F2DBF80910907D1
:10D9D000992787FD90959F938F93809101079927B1
:10D9E00087FD90959F938F938091F906992787FDE6
:10D9F00090959F938F938091F106992787FD90953D
:10DA00009F938F938FE99BE09F938F93DF93CF93A7
:10DA1000E0912704F09128040995809102062DB722
:10DA20003EB7245F3F4F2DBF853098F480E10E94C0
:10DA30001E718FEA9BE09F938F93DF93CF93E091CA
:10DA40002704F091280409950F900F900F900F90E4
:10DA500018C08730B0F488E10E941E718FED90E00D
:10DA60009F938F9380EC9BE09F938F93DF93CF9353
:10DA7000E0912704F091280409958DB79EB706968A
:10DA80008DBFDF91CF9108950F931F9380E00E9487
:10DA90001E712AE030E08091680890916908B90110
:10DAA0000E947A799F938F9380916808909169087A
:10DAB000B9010E947A797F936F9380911D019091B3
:10DAC0001E01B9010E948E799F938F9380911D0151
:10DAD00090911E01B9010E948E797F936F9389EC1A
:10DAE0009BE09F938F9301E111E71F930F93E091C8
:10DAF0002704F0912804099580E10E941E718DB7DA
:10DB00009EB70C968DBF80916C0890916D089F9385
:10DB10008F9380916A0890916B089F938F938CEDFF
:10DB20009BE09F938F931F930F93E0912704F091B5
:10DB3000280409958DB79EB708968DBF1F910F9148
:10DB400008950F931F93CF93DF938091E801C1E174
:10DB5000D1E7882309F478C080E00E941E7180918B
:10DB6000FD0799279F938F938091FF0799279F9394
:10DB70008F9388EE9BE09F938F938E01DF93CF93DB
:10DB8000E0912704F091280409958DB79EB7089677
:10DB90008DBF8091FE07833031F48CE00E941E71AE
:10DBA00087EF9BE005C08CE00E941E718CEF9BE02C
:10DBB0009F938F93DF93CF93E0912704F0912804F4
:10DBC00009950F900F900F900F908091FC0781FFA7
:10DBD00012C08CE00E941E7181E09CE09F938F93A5
:10DBE0001F930F93E0912704F091280409950F905B
:10DBF0000F900F900F9080E10E941E718FED90E0CA
:10DC00009F938F9380910208909103089F938F9325
:10DC100080910008909101086AE070E00E947A7992
:10DC20007F936F9386E09CE09F938F9381E191E7D0
:10DC30009F938F93E0912704F091280409958DB765
:10DC40009EB70A968DBF12C082E00E941E7186E1C7
:10DC50009CE09F938F93DF93CF93E0912704F09103
:10DC6000280409950F900F900F900F90DF91CF919E
:10DC70001F910F910895CF93C82F20910F042093E7
:10DC8000100499278F32910509F1803391051CF416
:10DC90004F97A1F02CC08F34910501F18F38910579
:10DCA00031F5222319F481E090E038C086E0289F06
:10DCB000F0011124E45CF44F849117C086E0289FA2
:10DCC000F0011124E35CF44F84910FC086E0289F9B
:10DCD000F0011124E25CF44F849107C086E0289F94
:10DCE000F0011124E15CF44F849180930F04909132
:10DCF0000F04809110049813C0E00E942471909149
:10DD00000F0486E0989FF0011124E05CF44F259108
:10DD100034918C2FF901099580E090E0CF9108951E
:10DD2000109269081092680810926D0810926C08A1
:10DD300010926B0810926A0810926E088AE090E0C8
:10DD40000E94821690931204809311040895CF9339
:10DD5000DF9380911104909112040E948B16882306
:10DD600009F4AFC080911104909112040A96909327
:10DD7000120480931104E0E0F0E09F0190E05FEF77
:10DD8000AAECB6E04BE0ED018B8187FF0BC09F5FF3
:10DD90008D81E80FF11D8981280F311D8E81851736
:10DDA00008F4582F4150189647FFEDCF50936E0856
:10DDB000232B41F520911704309118044091190448
:10DDC00050911A04BB27A52F942F832F90931604EC
:10DDD00080931504AA27BB27281B390B4A0B5B0B22
:10DDE000CF01AA27BB27280F391F4A1F5B1F20938B
:10DDF0001704309318044093190450931A04E5E073
:10DE0000F0E013C020911504309116042E173F073F
:10DE100018F4E21BF30B02C0E0E0F0E0892F992731
:10DE2000880F991FE80FF91F3596F0936908E09362
:10DE30006808EF3FF10578F480911D0190911E0173
:10DE40008E9F90018F9F300D9E9F300D1124C90130
:10DE500064E670E013C0CF019695879596958795F7
:10DE600020911D0130911E01289FA001299F500D76
:10DE7000389F500D1124CA0169E170E00E947A793F
:10DE800070936B0860936A08209113043091140416
:10DE90002E0F3F1F30931404209313045EE02131B2
:10DEA000350778F080916C0890916D0801969093F9
:10DEB0006D0880936C0820513E40309314042093E9
:10DEC0001304DF91CF9108954FB720E430E0F89428
:10DED0008091C9008F778093C9008091C9008F7BA2
:10DEE0008093C9008091C9008F7D8093C9005A9AA0
:10DEF00052985B9A539A832F99278093CD00209351
:10DF0000CC008091C80082608093C80088E1809333
:10DF1000C9008091CA008F778093CA008091CA009F
:10DF20008F7B8093CA008091CA008F7D8093CA0046
:10DF30008091CA008F7E8093CA008091CA00877F3B
:10DF40008093CA008091C9008B7F8093C900809123
:10DF5000CA0084608093CA008091CA008260809366
:10DF6000CA008091C80087FF03C08091CE00F9CF1E
:10DF70008091C90080688093C9004FBF08950F93B6
:10DF80001F93CF93DF93482F4F5F893108F089C0EB
:10DF900080912A07841710F440932A07CB018353FA
:10DFA0009B4268E170E00E948E79A42FBB27FD019F
:10DFB000EA0FFB1FE55DF84F808191819B01281BD3
:10DFC000390BC90137FF03C0909581959F4F069784
:10DFD00094F480911B03883C30F480911B03865F8E
:10DFE00080931B0308C088EC80931B0380916F0013
:10DFF0008F7D80936F00FD01EA0FFB1FE55DF84FF9
:10E00000808191819C01220F331F280F391F260F19
:10E01000371F37FF02C02D5F3F4FE901D595C795E8
:10E02000D595C795CB0101968C179D0714F42197C0
:10E0300006C061507040C617D7070CF42196809136
:10E040001B03843BD8F08D010A0F1B1FF801E55D0F
:10E05000F84F80819181FE01E81BF90BCF0163E04D
:10E0600070E00E948E79CB01880F991F860F971F51
:10E07000015A184FF8019183808307C0AA0FBB1F74
:10E08000A15AB84F11961C921E92E42FFF27EE0F53
:10E09000FF1FE55DF84FD183C083443011F4109227
:10E0A0009301DF91CF911F910F910895CF93DF934B
:10E0B00020916F08822F9927807F9070409709F0F8
:10E0C0006CC02F3109F046C08091700880931F0406
:10E0D000209172082093210480917308809320047A
:10E0E000822F992790932C0780932B07222309F0E6
:10E0F00054C080910406282F3327220F331FF901C3
:10E10000E15AF84F1182108280910506A82FBB2793
:10E11000AA0FBB1FFD01E15AF84F118210828091B6
:10E120000706E82FFF27EE0FFF1FCF01815A984FF8
:10E13000EC0119821882255D384FE9011982188295
:10E14000A55DB84F11961C921E92E55DF84F1182A5
:10E15000108223C0C22FCF70CA30F8F480917008AB
:10E160008093990880917108809398088091720833
:10E1700080939B088091730880939A086091980817
:10E18000709199088C2F0E94BF6F60919A087091CE
:10E190009B088C2F8F5F0E94BF6FDF91CF910895F6
:10E1A000CF93C82F8F3F49F4809122048F3F29F4E9
:10E1B000109224041092230432C0209124042223BC
:10E1C00039F4CF3111F485E001C084E08093250457
:10E1D00080912504909123048217A0F4892F8095C3
:10E1E000809323048F3F19F48EEF80932304809152
:10E1F0002304C81711F40E94567010922404109240
:10E2000023040BC0E22FFF27E159F74FC0832F5F94
:10E21000209324049C0F90932304C0932204CF9155
:10E22000089590911E04933240F4E92FFF27EB5894
:10E23000F74F80839F5F90931E040895833218F4F4
:10E240008D5F80931E04089590E2E8E7F8E08FE187
:10E250009193815087FFFCCF0895CF93CFB723E0F0
:10E2600031E0F8948091C9008F778093C900809144
:10E27000C9008F7B8093C9008091C9008F7D8093F6
:10E28000C9005A9A52985B9A539A832F9927809380
:10E29000CD002093CC008091C80082608093C8009C
:10E2A00088E18093C9008091CA008F778093CA006B
:10E2B0008091CA008F7B8093CA008091CA008062DF
:10E2C0008093CA008091CA0080618093CA008091C7
:10E2D000CA0088608093CA008091C90084608093DE
:10E2E000C9008091CA0084608093CA008091CA00EE
:10E2F00082608093CA008091C80087FF03C080912C
:10E30000CE00F9CF8091C90080688093C9008091C8
:10E31000C90080648093C9000E942471CFBFCF914F
:10E320000895282F99278F709070892B31F42095AC
:10E3300080911D04822B80931D0408958091EF012C
:10E34000882309F441C08091E70285FF0AC082E971
:10E350008093750883E28093760885E5809377083B
:10E3600002C0109275088091F0018F3071F4809195
:10E370001D040E943B6E882341F081E9809375085B
:10E380008093760881E3809377081092EF01809163
:10E39000C80085FFFCCF8091C9008F7E8093C900A3
:10E3A0008091C9008E7F8093C90080917508882371
:10E3B00011F48EEF01C08EE78093CE0080911D0492
:10E3C0008093F00110921D0408951F920F920FB6D2
:10E3D0000F9211248F939F93EF93FF939091EF01EE
:10E3E000992309F040C080912604882361F480912C
:10E3F0007508882311F483E003C0813999F481E022
:10E40000809326040FC0833099F480917508882387
:10E4100049F0909375088091C9008E7F8093C90060
:10E420008EEF1EC08091C90081608093C9000EC02C
:10E43000833261F48091C9008E7F8093C9008FEF91
:10E440008093CE0081E08093EF0114C08091260478
:10E45000E82FFF27EB58F74F8F5F809326048081CA
:10E460008093CE0007C0109226048091C90080617D
:10E470008093C900FF91EF919F918F910F900FBEF4
:10E480000F901F901895EF92FF920F931F93CF93C9
:10E49000DF937C018B01EA01452B39F0F801819172
:10E4A0008F01F70109952197C9F7E6E0CDB7DEB7EF
:10E4B0000C94067AEF92FF920F931F93CF93DF9302
:10E4C0007C018B01EA01452B41F0F8010F5F1F4FE2
:10E4D0008491F70109952197C1F7E6E0CDB7DEB742
:10E4E0000C94067A0F931F93CF938C01C62F1616A8
:10E4F00034F480E2F8010995C1501C16D4F3CF9191
:10E500001F910F9108950F931F93CF938C01C62FE6
:10E51000161634F480E3F8010995C1501C16D4F3A3
:10E52000CF911F910F910895A5E3B0E0EAE9F2E7DA
:10E530000C94DE792E96EEADFFAD2E9788249924AB
:10E54000540180911C04882321F42C961FAE1EAE2A
:10E550002C975EE4452E512C4C0E5D1E6F01B601CA
:10E5600005C0153239F00894C11CD11CF601149174
:10E570001123B9F7A601461B570B31F02C968EAD2F
:10E580009FAD2C970E945A72112309F46AC2089415
:10E59000C11CD11CFF24FDA6FCA64FEFE42EF9A65A
:10E5A000F6010894C11CD11C1491153721F0812F5C
:10E5B00080628837B1F4F0FE0AC0F20124E030E056
:10E5C000420E531E80809180A280B3800AC0F20167
:10E5D00042E050E0440E551E808191814C01AA24F6
:10E5E000BB24103221F489A58823D1F61DC0133233
:10E5F00019F458E0F52AD4CF1A3211F01D3291F4F3
:10E600001A3259F4F20182E090E0480E591EE0817E
:10E61000ECA7EE232CF6E195ECA790E1F92AAFEDFB
:10E62000FA22BECF1B3211F419A7BACF1E32C1F5A0
:10E63000F6010894C11CD11C14911A3279F4F2012C
:10E6400022E030E0420E531E408151813FEF4F3FA8
:10E65000530714F44FEF5FEFE42EA2CF40E050E0F9
:10E66000812F80538A30A0F4CA0133E0880F991FAC
:10E670003A95E1F7840F951F480F591F410F511D1F
:10E6800040535040F6010894C11CD11C1491E8CFAE
:10E690008FEF4F3F580714F44FEF5FEFE42E85CF15
:10E6A000103329F4F4FC7CCF90E2F92A79CF812F42
:10E6B00081538930D8F440E050E0CA0123E0880F4C
:10E6C000991F2A95E1F7840F951F480F591F410F95
:10E6D000511D40535040F6010894C11CD11C1491A7
:10E6E000812F80538A3048F34CA75FCF183619F436
:10E6F000A4E0FA2A55CF1C3619F4B1E0FB2A50CF1A
:10E70000133661F43E010894611C711CF20122E091
:10E7100030E0420E531E808189833CC1143421F0C5
:10E72000143611F0193651F5143411F431E0F32A8E
:10E73000F0FE0AC0F20144E050E0440E551E808015
:10E740009180A280B3800CC0F20182E090E0480E7C
:10E75000591E808191814C01AA2497FCA094BA2C67
:10E76000B7FE0AC0B094A09490948094811C911C30
:10E77000A11CB11C8DE289A70AE06FC01F3411F003
:10E780001F3631F41F3411F491E0F92A08E064C017
:10E79000103779F4F201A2E0B0E04A0E5B1E8081EE
:10E7A00091814C01AA24BB2400E1B0E4FB2A18E7C4
:10E7B00053C01337C1F5F20122E030E0420E531E80
:10E7C000608071806114710489F43E010894611CB9
:10E7D000711C88E289838EE6F301818385E78B8350
:10E7E0008CE68C838D8389E28E831F82E7FC13C0C5
:10E7F0008E2D992787FD9095AC0160E070E0C301F4
:10E800000E94AB77009729F0382E3618E3140CF0ED
:10E81000C3C03E2CC1C0F30101900020E9F731973D
:10E820003E2E3618B9C0153511F0153731F41535AF
:10E8300011F4F1E0FF2A0AE00FC0183519F018377B
:10E8400009F0A0C000E1F3FE07C081149104A10407
:10E85000B10411F020E4F22A19A6EDA6E7FC02C0EB
:10E860003FEDF32289E2682E712C6C0E7D1E81141F
:10E870009104A104B10421F44DA5442309F47BC003
:10E88000802F9927AA27BB278EA79FA7A8ABB9AB34
:10E89000202E332490E0891690E0990691E0A90695
:10E8A00090E0B90648F0C501B4012EA53FA548A9DE
:10E8B00059A90E94A17917C0AFEF8A169104A1044B
:10E8C000B10449F040F0C401B1010E947A799B0182
:10E8D0004427552708C0882D602F0E946E79282F65
:10E8E0003327442755272AAB3BAB4CAB5DAB0A30F3
:10E8F00059F48AA9880F880F880F9AA9990F890F50
:10E90000382D381B832F10C0003139F48AA9829525
:10E91000807F482D481B842F07C08AA9880F880F45
:10E92000880F582D581B852F90E02EA53FA548A98C
:10E9300059A982169306A406B50608F091E08AA8A4
:10E940009BA8ACA8BDA88A3010F4805D04C0895A89
:10E95000183509F48F7DD3018E933D01992309F079
:10E9600099CF083041F4F3FE06C0803321F080E3F4
:10E97000FD0182933F01CE010196382E3618F8E250
:10E980003F0E0BC0112309F46CC03E010894611CBA
:10E99000711C1983B1E03B2E19A6032D2DA4231859
:10E9A00027FC222489A5882311F00F5F02C0F6FC02
:10E9B0000E5F020DEF2CFF24C70180739070892B2E
:10E9C00049F48CA5801B682F2C968EAD9FAD2C979B
:10E9D0000E94727289A5882331F041E050E0BE01A7
:10E9E000675D7F4F0AC0E6FE0EC080E38AA71BA7C3
:10E9F00042E050E0BE01665D7F4F2C968EAD9FAD2C
:10EA00002C970E944372C70180739070809749F4DD
:10EA10008CA5801B682F2C968EAD9FAD2C970E94E5
:10EA20008372622D2C968EAD9FAD2C970E948372BF
:10EA3000832D992787FD9095AC01B3012C968EAD5F
:10EA40009FAD2C970E944372E4FE89CD2CA5201B1C
:10EA50002CA7622F2C968EAD9FAD2C970E947272C0
:10EA60007ECDE2E1CB5C0C94FA792FB740E0F894CC
:10EA7000E0E0F0E081E2809357009491E2E0F0E082
:10EA8000809357003491E4E0F0E080935700849144
:10EA90002FBF9E3199F4363941F4893011F441E0A9
:10EAA0000DC08A3059F442E009C0373939F4863054
:10EAB00011F443E003C0853009F444E0842F992722
:10EAC00008959FB7F8948091C900877F8093C9000B
:10EAD0008091C9008F7E8093C9008091C9008F7793
:10EAE0008093C9008091C9008F7B8093C900809179
:10EAF000C9008F7D8093C90052985A9A53985B9AA7
:10EB00009FBF08951F93CF93DF93182F80911C040C
:10EB1000882309F48DC08091EE01181709F488C08C
:10EB200080911B04882321F40E94357580931B0477
:10EB30008FE09DE09F938F93CFE5D2E1DF93CF935A
:10EB4000E0912704F091280409950F900F900F9001
:10EB50000F90812F99278230910501F18330910523
:10EB60002CF4009761F0019769F024C0843091057E
:10EB7000D9F084309105ACF00597C9F01BC08FEF38
:10EB80009CE002C08DEE9CE09F938F93DF93CF9328
:10EB9000E0912704F0912804099518C084ED9CE0C9
:10EBA000F3CF81EB9CE0F0CF83EA9CE0EDCF8BE9E3
:10EBB0009CE0EACF8CE19DE09F938F93DF93CF930E
:10EBC000E0912704F0912804099510E00F900F9030
:10EBD0000F900F9080911B04843011F0823099F4D3
:10EBE0000E946175812F8150833018F40E9413694F
:10EBF0001DC0143019F40E942D7118C01530B1F4E5
:10EC00000E94646F13C0112389F082E39DE09F93FB
:10EC10008F938FE592E19F938F93E0912704F0917A
:10EC2000280409950F900F900F900F901093EE010C
:10EC3000DF91CF911F9108950F931F9381E08093EF
:10EC40001C044091ED01EBE4FCE020E030E05FE4E7
:10EC5000849199272F5F3F4F829FB001839F700D52
:10EC6000929F700D112446275150319657FFF0CFD7
:10EC70004093ED01E3E2FCE020E030E057E28491D4
:10EC800099272F5F3F4F829FB001839F700D929F06
:10EC9000700D112446275150319657FFF0CF409305
:10ECA000ED0180911B04882321F40E943575809327
:10ECB0001B048091ED01833459F088E190E029E252
:10ECC0000FB6F894A895809360000FBE2093600063
:10ECD00084E992E790932804809327048DE49DE0D3
:10ECE0009F938F930FE512E11F930F93E0912704F9
:10ECF000F091280409950F900F900F900F9084E6E3
:10ED000090E09F938F9380E590E09F938F931F9265
:10ED10001F92809102016AE00E946E79892F9927E3
:10ED20009F938F93809102010E946E7999279F9300
:10ED30008F9383E79DE09F938F931F930F93E091B1
:10ED40002704F091280409958BE49CE09F938F930E
:10ED50001F930F93E0912704F0912804099583E213
:10ED60009CE09F938F931F930F93E0912704F09162
:10ED7000280409958DB79EB746968DBF87EA9DE01A
:10ED80009F938F931F930F93E0912704F091280492
:10ED9000099583EC8093810080916F00806280935D
:10EDA0006F000F900F900F900F901F910F9108958B
:10EDB00080911C04882361F08091EE01843011F46D
:10EDC0000E949E718091ED01833411F010921C0419
:10EDD00008951F920F920FB60F9211242F933F9315
:10EDE0004F935F936F937F938F939F93AF93BF9353
:10EDF000EF93FF932091CE009091EE01892F8150E7
:10EE0000833020F4822F0E94206A0BC0943021F4BA
:10EE1000822F0E94917105C0953019F4822F0E94B3
:10EE2000D070FF91EF91BF91AF919F918F917F91A2
:10EE30006F915F914F913F912F910F900FBE0F9067
:10EE40001F901895002422273327442751E0BB2721
:10EE5000EE27FF27A0E1660F771F881F991F001C70
:10EE6000221F331F441F660F771F881F991F001C26
:10EE7000221F331F441F2AF4050E2B1F3E1F4F1F56
:10EE800004C0051A2B0B3E0B4F0B550FBB1FEE1F7B
:10EE9000587F556047FD5250AA95E9F6E695B7951B
:10EEA0005795E695B7955795852F9B2F089522275F
:10EEB000332741E0552768E0880F991F221F331F31
:10EEC000880F991F221F331F1AF4240F351F02C009
:10EED000241B350B440F551F487F456037FD4250BA
:10EEE0006A9551F75695479556954795842F0895FD
:10EEF000AA2797FF04C0809590958A1F9A1F77FFD5
:10EF000004C0609570956A1F7A1F669F9001779F75
:10EF1000A001679F300D411D5A1F300D411D5A1F22
:10EF2000889FF001999F2E0F3F1F401D511D899F03
:10EF3000300D411D5A1F300D411D5A1FCA01B90124
:10EF4000112480CFFB01DC0102C005900D924150DD
:10EF50005040D8F70895FC014150504030F00190E6
:10EF60000616D1F73197CF0108958827992708957C
:10EF7000A0E0B0E0EEEBF7E70C94E6796C017B01E2
:10EF8000EA01590121978FEFCF3FD80789F0860119
:10EF90000894C11CD11CC7010894E11CF11CF501A7
:10EFA0000995F80180832197FFEFCF3FDF0779F7BD
:10EFB000EAE0CDB7DEB70C94027ACF92DF92EF92FF
:10EFC000FF920F931F937C016B01FB010995082FA2
:10EFD000C7010196F6010995182FC8011F910F91DD
:10EFE000FF90EF90DF90CF900895A0E0B0E0EBEFBE
:10EFF000F7E70C94E8798C017B01EA01690121971C
:10F000008FEFCF3FD80771F0F70121917F01C80141
:10F010000F5F1F4F622FF60109952197FFEFCF3F3A
:10F02000DF0791F7E8E0CDB7DEB70C94047ACF9212
:10F03000DF92EF92FF920F931F936C018B017A0185
:10F04000FA010995812F9927682FC6010196F701CA
:10F0500009951F910F91FF90EF90DF90CF90089549
:10F060005058BB27AA270ED0E0C0D1D030F0D6D060
:10F0700020F031F49F3F11F41EF4C6C00EF4E09569
:10F08000E7FBBCC0E92FE2D080F3BA176207730731
:10F090008407950718F071F49EF5FAC00EF4E09518
:10F0A0000B2EBA2FA02D0B01B90190010C01CA0142
:10F0B000A0011124FF27591B99F0593F50F4503EED
:10F0C00068F11A16F040A22F232F342F4427585FDF
:10F0D000F3CF469537952795A795F0405395C9F7F7
:10F0E0007EF41F16BA0B620B730B840BBAF09150AF
:10F0F000A1F0FF0FBB1F661F771F881FC2F70EC04E
:10F10000BA0F621F731F841F48F487957795679520
:10F11000B795F7959E3F08F0B3CF9395880F08F009
:10F120009927EE0F97958795089598D088F09F5767
:10F1300090F0B92F9927B751A0F0D1F0660F771F43
:10F14000881F991F1AF0BA95C9F712C0B13081F023
:10F150009FD0B1E008959CC0672F782F8827B85FB3
:10F1600039F0B93FCCF3869577956795B395D9F784
:10F170003EF490958095709561957F4F8F4F9F4F8E
:10F180000895E89409C097FB3EF49095809570959A
:10F1900061957F4F8F4F9F4F9923A9F0F92F96E9E3
:10F1A000BB279395F695879577956795B795F11158
:10F1B000F8CFFAF4BB0F11F460FF1BC06F5F7F4FF5
:10F1C0008F4F9F4F16C0882311F096E911C0772307
:10F1D00021F09EE8872F762F05C0662371F096E810
:10F1E000862F70E060E02AF09A95660F771F881FDF
:10F1F000DAF7880F9695879597F9089597F99F679D
:10F2000080E870E060E008959FEF80EC08950024AE
:10F210000A941616170618060906089500240A947B
:10F2200012161306140605060895092E0394000C01
:10F2300011F4882352F0BB0F40F4BF2B11F460FF90
:10F2400004C06F5F7F4F8F4F9F4F089557FD9058B9
:10F25000440F551F59F05F3F71F04795880F97FB9A
:10F26000991F61F09F3F79F0879508951216130654
:10F270001406551FF2CF4695F1DF08C01616170683
:10F280001806991FF1CF86957105610508940895B8
:10F29000E894BB2766277727CB0197F90895629FEB
:10F2A000D001739FF001829FE00DF11D649FE00D7E
:10F2B000F11D929FF00D839FF00D749FF00D659FDF
:10F2C000F00D9927729FB00DE11DF91F639FB00DDE
:10F2D000E11DF91FBD01CF0111240895991B79E0AB
:10F2E00004C0991F961708F0961B881F7A95C9F7D6
:10F2F00080950895AA1BBB1B51E107C0AA1FBB1F25
:10F30000A617B70710F0A61BB70B881F991F5A95B1
:10F31000A9F780959095BC01CD01089597FB092E22
:10F3200007260AD077FD04D0E5DF06D000201AF4C6
:10F33000709561957F4F0895F6F7909581959F4F51
:10F340000895A1E21A2EAA1BBB1BFD010DC0AA1F26
:10F35000BB1FEE1FFF1FA217B307E407F50720F03E
:10F36000A21BB30BE40BF50B661F771F881F991FB9
:10F370001A9469F760957095809590959B01AC0102
:10F38000BD01CF01089597FB092E05260ED057FD2C
:10F3900004D0D7DF0AD0001C38F450954095309542
:10F3A00021953F4F4F4F5F4F0895F6F79095809509
:10F3B000709561957F4F8F4F9F4F08952F923F9289
:10F3C0004F925F926F927F928F929F92AF92BF9275
:10F3D000CF92DF92EF92FF920F931F93CF93DF9321
:10F3E000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE7E
:10F3F000CDBF09942A88398848885F846E847D84CB
:10F400008C849B84AA84B984C884DF80EE80FD80CC
:10F410000C811B81AA81B981CE0FD11D0FB6F89442
:10F42000DEBF0FBECDBFED010895EE0FFF1F0590AB
:08F43000F491E02D0994FFCFD7
:10F438005E010A010164FF01FFFF01FC01FC0101FB
:10F44800737373FF03007D0000C409C409640011CD
:10F4580048656C6C6F20576F726C64000000000088
:10F468000000000000000000000000000000000094
:10F478000000000000000000000000000000000084
:10F488000000000000000000000000000000000074
:10F498000000000000000000000000000000000064
:10F4A80053706F727400004E6F726D616C00004291
:10F4B8006567696E6E6572000051756164726F00F0
:10F4C80000640001200B050000ECFF6440415A462F
:10F4D80064640A02969696960840403A10FB3038C3
:10F4E8000190D0030090D00300F4017800FF03647A
:10F4F80000020406070808080706040200FEFCFAD2
:10F50800F9F8F8F8F9FAFCFE000204060708080BF7
:10F518000A0D0B0C0E0B0F10FA2001010170FF01F0
:02F528000F00D2
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/Flight-Ctrl_MEGA1284p_V0_80d_S3D.hex
0,0 → 1,3876
:100000000C94E7060C9436070C9436070C943607CC
:100010000C9436070C9436070C9436070C9436076C
:100020000C9436070C9402170C9436070C94360780
:100030000C9423350C9436070C9436070C94360731
:100040000C9436070C9436070C947B150C943607E9
:100050000C944B0C0C9436070C94150C0C9436072E
:100060000C94171C0C9436070C94C7300C9436076C
:100070000C9461750C9436070C945D700C943607E3
:100080000C9436070C9436070C943607421C471C18
:100090004C1C551C6C1C831C931CA31CC01CAC1E4C
:1000A000831C6E1D7F1DAE1DCC1DE91D431E9E1EB3
:1000B0007C200E21CB214B22B42264236F25CC253A
:1000C00039268326CE261B276C27C6272528BF283E
:1000D0005A29542AEF3016315931C931E1312232CF
:1000E000D532953395339533953395339533953391
:1000F00095339533953395334C334E3353336B33BC
:100100006D330A0D426174743A0020256420436502
:100110006C6C732000204C6F77207761726E696E73
:1001200067206C6576656C3A2025642E2564000A8C
:100130000D466F756E6420424C2D4374726C3A20EC
:10014000002564000A0D0A0D2121204D4953534911
:100150004E4720424C2D4354524C3A2025642021D6
:1001600021000A0D3D3D3D3D3D3D3D3D3D3D3D3D7B
:100170003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DAF
:100180003D3D3D3D3D3D3D000A0D43616C69627260
:100190006174696E67207072657373757265207320
:1001A000656E736F722E2E004F4B0A0D000A0D46BE
:1001B0006C696768742D74696D65202575206D699B
:1001C0006E2020546F74616C3A2575206D696E0045
:1001D0000A0D436F6E74726F6C3A2000486561645B
:1001E000696E67486F6C64004E6F726D616C202899
:1001F0004143432D4D6F646529000A0D3D3D3D3D52
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D1E
:100210003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A41
:100220000D00416E676C654E69636B2020202020B5
:100230002020416E676C65526F6C6C20202020205E
:1002400020204163634E69636B2020202020202002
:100250002020416363526F6C6C20202020202020DE
:1002600020205961774779726F202020202020209C
:1002700020204865696768742056616C7565202088
:1002800020204163635A202020202020202020208D
:1002900020204761732020202020202020202020A3
:1002A0002020436F6D706173732056616C756520FB
:1002B0002020566F6C74616765205B302E31565D6F
:1002C00020205265636569766572204C6576656CA1
:1002D00020204779726F20436F6D70617373202007
:1002E00020204D6F746F722031202020202020208C
:1002F00020204D6F746F722032202020202020207B
:1003000020204D6F746F7220332020202020202069
:1003100020204D6F746F7220342020202020202058
:1003200020203136202020202020202020202020A6
:100330002020313720202020202020202020202095
:100340002020313820202020202020202020202084
:100350002020313920202020202020202020202073
:100360002020536572766F2020202020202020201E
:100370002020486F7665726761732020202020203E
:10038000202043757272656E74205B302E31415DA2
:1003900020204361706163697479205B6D41685D01
:1003A0002020323420202020202020202020202027
:1003B0002020323520202020202020202020202016
:1003C0002020323620202020202020202020202005
:1003D00020203237202020202020202020202020F4
:1003E00020204932432D4572726F72202020202038
:1003F0002020424C204C696D697420202020202050
:1004000020204750535F4E69636B2020202020201E
:1004100020204750535F526F6C6C202020202020FA
:10042000202021212120494E434F4D504154494223
:100430004C4520212121002E000A0D20444143205B
:100440006F7220493243204552524F522120436857
:1004500065636B204932432C2033567265662C202D
:1004600044414320616E6420424C2D4374726C0001
:100470005B25695D005B25695D002B204D696B7212
:100480006F4B6F70746572202B0048573A56256485
:100490002E25642053573A25642E25642563005386
:1004A000657474696E673A2564202573004861722B
:1004B0006477617265204572726F7220313A2564EB
:1004C000202121004D697373696E6720424C2D43D2
:1004D00074726C3A25642121004D6978657220455B
:1004E00072726F722100493243204552524F52219D
:1004F0002121004865696768743A20202535690024
:10050000536574706F696E743A2535690050726571
:1005100073737572653A253569004F666673657445
:100520003A20202535690048656967687420636F43
:100530006E74726F6C0044495341424C454400480C
:10054000656967687420636F6E74726F6C004449EC
:100550005341424C4544006163742E2062656172D0
:10056000696E67004E69636B3A20202020202025A9
:10057000356900526F6C6C3A2020202020202535F0
:100580006900436F6D706173733A202020253569CF
:10059000004B313A25346920204B323A253469200A
:1005A000004B333A25346920204B343A25346920F6
:1005B000004B353A25346920204B363A25346920E2
:1005C000004B373A25346920204B383A25346920CE
:1005D000004E693A2534692020526F3A253469204B
:1005E0000047733A253469202047693A2534692049
:1005F0000050313A253469202050323A25346920A0
:100600000050333A253469202050343A253469208B
:10061000004779726F202D2053656E736F72004E04
:1006200069636B25346920282533692E25692900E3
:10063000526F6C6C25346920282533692E25692971
:100640000047696572253469202825336929004EE1
:1006500069636B2025346920282533692E25782984
:1006600000526F6C6C2025346920282533692E25B3
:10067000782900596177202025346920282533699D
:1006800029004E69636B20253469202825336929A8
:10069000282533692900526F6C6C20253469202885
:1006A00025336929282533692900596177202025B8
:1006B00034692028253369292825336929004143D5
:1006C00043202D2053656E736F72004E69636B205B
:1006D00025346920282533692900526F6C6C202548
:1006E0003469202825336929005A20202020253408
:1006F0006920282533692900566F6C746167653A53
:100700002020202533692E253169560043757272E9
:10071000656E743A2020202533692E253169410009
:10072000506F7765723A20202020202534695700C9
:100730004469736368617267653A202535696D4164
:10074000680052656365697665720052432D5253A5
:1007500053493A202020202534690052432D5175F9
:10076000616C6974793A202534690052432D4368DD
:10077000616E6E656C733A25346900436F6D70610C
:1007800073730048656164696E673A202025356996
:100790000056616C75653A2020202025356900538C
:1007A000746172743A2020202025356900506F74DE
:1007B00069313A202025336900506F7469323A203C
:1007C0002025336900506F7469333A20202533693E
:1007D00000506F7469343A202025336900506F74DB
:1007E00069353A202025336900506F7469363A2004
:1007F0002025336900506F7469373A20202533690A
:1008000000506F7469383A202025336900536572AF
:10081000766F202000536574706F696E74202025F8
:10082000336900506F736974696F6E3A20253369BC
:100830000052616E67653A2533692D25336900459D
:10084000787465726E436F6E74726F6C2020004E08
:10085000693A2534692020526F3A253469200047CF
:10086000733A253469202047693A253469200048C5
:10087000693A253469202043663A253469200042CC
:100880004C2D4374726C204572726F727320002578
:10089000336420253364202533642025336420000D
:1008A00025336420253364202533642025336420D8
:1008B00000253364202533642025336420253364E8
:1008C0002000424C2054656D7065726174757265CC
:1008D00000253369202533692025336920253369B4
:1008E00020002533692025336920253369202533ED
:1008F00069200025336920253369202533692025A7
:1009000033692000424C2D4374726C20666F756E03
:1009100064200020256320202025632020202563DB
:10092000202020256320002025632020202563200F
:1009300020202563202020256320002025632020FF
:10094000202D2020202D2020202D2000313000318E
:100950003100313200466C696768742D54696D65E9
:10096000202000546F74616C3A2535756D696E00F6
:100970004163743A20202535756D696E00287265D3
:1009800073657429000A0D47656E65726174696E3E
:10099000672064656661756C7420506172616D6575
:1009A00074657220536574202564000A0D557369BF
:1009B0006E6720506172616D657465722053657455
:1009C000202564000A0D47656E65726174696E6763
:1009D0002064656661756C74204D69786572205479
:1009E00061626C65000A0D4D697865722D436F6E0A
:1009F0006669673A202725732720282575204D6FC3
:100A0000746F727329000A0D3D3D3D3D3D3D3D3DF6
:100A10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D06
:100A20003D3D3D3D3D3D000A0D414343206E6F7409
:100A30002063616C69627261746564210D0A000A49
:100A40000D506C6561736520636F6E6E6563742015
:100A50005370656B7472756D207265636569766538
:100A60007220666F722062696E64696E67204E4FF5
:100A7000572E2E2E006F6B2E0A0D0054696D656F78
:100A800075742E0A0D0000008F001E01AD013B029F
:100A9000CA025803E603740402058F051B06A70665
:100AA0003307BE074808D2085B09E3096B0AF20A5C
:100AB000780BFD0B810C040D860D070E870E060FBB
:100AC000840F00107B10F5106E11E5115B12CF1230
:100AD0004213B31323149214FE146A15D3153B1654
:100AE000A11605176717C81727188318DE183719B6
:100AF0008E19E319361A871AD61A231B6E1BB61BDA
:100B0000FD1B411C831CC31C001D3C1D751DAB1D22
:100B1000E01D121E421E6F1E9A1EC31EE91E0D1FEF
:100B20002E1F4D1F691F841F9B1FB01FC31FD31F84
:100B3000E11FEC1FF51FFB1FFF1F0020030100003A
:100B4000356A00020101286B01030202BC6B02003E
:100B50000303196C2532692E25316956002533644B
:100B6000256320253033646D005374617475730000
:100B70004552524F523A20253264002534692025CF
:100B800032693A25303269002534696D25630025C4
:100B900033692025336920253369202533690025F1
:100BA00033692025336920253369202533690054B2
:100BB000656D706572617475726573202020200008
:100BC0002563432020202020002532692E2531690D
:100BD0005620202533692E25316941002534695777
:100BE000202536696D4168002532756D2F732053BD
:100BF00061743A2564200020203344004E6F46780B
:100C0000004447505300486F6D653A2533646D20AA
:100C10002533642563004E6F204E617669437472FC
:100C20006C21000A0D7777772E4D696B726F4B6FD1
:100C3000707465722E646520286329204869537991
:100C40007374656D7320476D6248000A0D746865A2
:100C500020757365206F66207468697320736F66F2
:100C60007477617265206973206F6E6C792070658E
:100C7000726D6974746564200A0D6F6E206F7269FD
:100C800067696E616C204D696B726F4B6F70746534
:100C9000722D48617264776172650041435420444B
:100CA000534C004A65746920736174656C6C697497
:100CB000005370656B7472756D20736174656C6C34
:100CC000697420284C6F77207265736F6C75746936
:100CD0006F6E29005370656B7472756D207361744B
:100CE000656C6C6974202832303438290053706583
:100CF0006B7472756D20736174656C6C6974004DF2
:100D0000756C74697369676E616C2050504D000A90
:100D10000D52656365697665723A2000756E6B6E7B
:100D20006F776E2E205573696E672050504D2E2EB2
:100D30002E006E6F7420737570706F72746564200E
:100D4000627920686172647761726521000A0D3DE5
:100D50003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC3
:100D60003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DB3
:100D70003D3D000A0D466C69676874436F6E74727E
:100D80006F6C0A0D48617264776172653A25642E52
:100D900025640A0D536F6674776172653A5625644F
:100DA0002E2564256320000A0D3D3D3D3D3D3D3D22
:100DB0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D63
:100DC0003D3D3D3D3D3D3D3D3D3D3D3D0000112412
:100DD0001FBECFEFD0E4DEBFCDBF11E0A0E0B1E099
:100DE000E8E2F1EF00E00BBF02C007900D92A23FD6
:100DF000B107D9F718E0A2EFB1E001C01D92A0330E
:100E0000B107E1F77AEAE2E0F0E081E2809357008F
:100E1000D4907E010894E11CF11C20EF37EF41E0F3
:100E200050E087016FE0DA01C9012F5F3F4F4F4F5C
:100E30005F4FABBFFC018791F80181938F01615037
:100E400067FFF1CFF7016EE08191782770956150CF
:100E500067FFFACF8889781729F0F7E9DF1611F4D0
:100E60000000FECF0E94F7070C9493780C940000CA
:100E700080919805E82FFF27EE0FFF1FE154F94FEF
:100E8000808191818D5E9F4F14F0109203018081CB
:100E900091818A5B9F4FCCF4809103018823A9F450
:100EA00081E0809303018091EF038F5F8093EF03D4
:100EB000853038F088EE93E09093220280932102EF
:100EC00004C066E970E00E9405378091EF0399271E
:100ED000909369058093680508951F93CF93DF93DE
:100EE000182F882389F082E091E09F938F938FE5FC
:100EF00092E19F938F93E091BB03F091BC0309951E
:100F00000F900F900F900F908091BB05823308F0E7
:100F100044C084EF91E00E948216EC01112329F075
:100F2000CE010E948B168823D9F3C2E0D0E026E5DB
:100F300030E080911D0190911E018217930730F0DF
:100F40002196255D3F4FC730D10598F38091BB05B1
:100F50009927C89F9001C99F300DD89F300D11244B
:100F6000209300011123D9F068EC70E08C2F0E94CF
:100F70000537DF93CF938AE091E09F938F938FE5BE
:100F800092E19F938F93E091BB03F091BC0309958D
:100F90008DB79EB706968DBF02C0809300011123C6
:100FA00011F1809100016AE00E94E677892F99276C
:100FB0009F938F93809100010E94E67799279F93DA
:100FC0008F9385E191E09F938F938FE592E19F93BB
:100FD0008F93E091BB03F091BC0309952DB73EB709
:100FE000285F3F4F2DBFDF91CF911F910895CFEF25
:100FF000D0E4DEBFCDBF8824992414B815B807EE1D
:1010000013E00253104017FFFCCF85E180930201EB
:1010100081E887B93E9A8FEF88B98BE184B981E086
:1010200085B98EE38AB987E48BB9469A84B7877FFE
:1010300084BF80916000886180936000109260009E
:1010400084EC99E090932202809321021092AA02EC
:101050001092A9021092C4061092C3061092AC021C
:101060001092AB021092AE021092AD0284EC94E0AA
:10107000A0E0B0E08093950190939601A093970132
:10108000B093980128980E94EB160E94BC160E940B
:1010900067120E9407350E94D01A0E947E300E947B
:1010A00040620E94086D0E949474809102018C300D
:1010B00010F4299A01C0299878940E94982F809161
:1010C0006B02826080936B0210926D020E946D42EF
:1010D00084EF91E00E9482168C0180916B0280FD6A
:1010E00005C0C8010E948B168823B9F38FE291E0F6
:1010F0009F938F93BFE5AB2EB2E1BB2EBF92AF9211
:10110000E091BB03F091BC03099580EA9FE00E9447
:1011100082168C01C0E0D0E00F900F900F900F90DE
:10112000A1E6EA2EA6E0FA2EF5E1CF2EF6E0DF2EBC
:101130000E946D4280916B0280FD05C0C8010E9433
:101140008B168823B9F3F60180811816ACF40BC016
:101150000E946D4280916B0280FD05C0C8010E9413
:101160008B168823B9F3C8010E948B16882321F4BB
:10117000F7018081882364F7F701808187FF18C019
:101180002196DF93CF93219781E491E09F938F93F2
:10119000BF92AF92E091BB03F091BC03099580919F
:1011A000F2018F5F8093F2018DB79EB706968DBFD7
:1011B0002196E4E0F0E0CE0EDF1E88E090E0E80E3D
:1011C000F91ECC30D10508F4B3CFC0E0D0E00EE575
:1011D00016E0E5E1EE2EE6E0FE2EF801838187FDC4
:1011E0001CC0F70180811816C4F42196DF93CF93B9
:1011F000219784E491E09F938F938FE592E19F93F1
:101200008F93E091BB03F091BC03099582E080933A
:101210001F028DB79EB706968DBFF8018381807837
:101220008383219684E090E0E80EF91E085F1F4F4B
:10123000CC30D10590F282E691E09F938F93CFE579
:10124000D2E1DF93CF93E091BB03F091BC0309950A
:10125000909196058091F2010F900F900F900F9052
:10126000981728F48091D50380618093D50388E88E
:1012700091E09F938F93DF93CF93E091BB03F09125
:10128000BC03099588EE93E00E9482168C010E94AF
:10129000D61A0F900F900F900F90C8010E948B16D6
:1012A0008823D9F388EA91E09F938F93DF93CF93BC
:1012B000E091BB03F091BC03099580E00E94C73721
:1012C000809102010F900F900F900F908A3011F0D3
:1012D000843110F0289801C0289A80ED97E090930F
:1012E00022028093210285E58093F1038EE090E055
:1012F0000E94102E9927182F00278FE090E00E945F
:10130000102E080F111D1093F8010093F7018AE0C9
:1013100090E00E94102E9927182F00278BE090E074
:101320000E94102E080F111D1093F6010093F50175
:101330000F5F1F4F39F08091F7019091F8018F5F97
:101340009F4F41F41092F8011092F7011092F601AC
:101350001092F5018091F5019091F6019F938F9382
:101360008091F7019091F8019F938F938DEA91E01E
:101370009F938F93DF93CF93E091BB03F091BC03D6
:1013800009958DB79EB708968DBF80ED91E09F932C
:101390008F93DF93CF93E091BB03F091BC0309954A
:1013A0008091A4050F900F900F900F90E091BB03D8
:1013B000F091BC0382FF07C08CED91E09F938F9367
:1013C000DF93CF9308C088EE91E09F938F938FE5D2
:1013D00092E19F938F9309950F900F900F900F902C
:1013E0000E94F31F88E893E190939201809391010A
:1013F00081E08093F0030E946D078091BE050E94FA
:10140000FA738AEF91E09F938F93DF93CF93E091EC
:10141000BB03F091BC03099580ED97E00E94821612
:101420008C018AEF90E00E948216EC0183E08093A9
:1014300040050F900F900F900F90CE010E948B16D9
:10144000882339F084E690E00E948216EC010E9425
:10145000507580912502882309F4DFC180910F0126
:10146000882309F4DAC1109225028091EF038823C2
:1014700019F00E94380702C00E9401450E946D4287
:10148000209102012A3011F0243110F0289801C077
:10149000289A8091AF029091D503882339F08091EA
:1014A000AF0281508093AF02977F0AC080916F0096
:1014B000806280936F001092C0061092BF06986001
:1014C0009093D5038091910190919201019790930F
:1014D0009201809391018091910190919201892BC9
:1014E00029F080916C02882309F43EC0809191011B
:1014F00090919201892B01F50E94A43085E090E043
:10150000909392018093910180917A0590917B054F
:10151000019690937B0580937A0580917B02806889
:1015200080937B028091D50381608093D503809165
:1015300041058260809341058091080190910901E5
:101540008F5F9F4F19F58091A6028823F9F080E103
:1015500097E2909322028093210280E890E090939A
:1015600009018093080112C02A3011F0243110F0D3
:10157000289801C0289A8091210290912202892BFB
:1015800029F480917B028F7780937B0280912502E2
:10159000882309F042C10E94AB120E94890EC80143
:1015A0000E948B16882309F434C10C5E1F4F809172
:1015B0006C029091D503882339F092609093D50303
:1015C0008091410582600CC09D7F9093D5038091EE
:1015D000910190919201079728F0809141058D7FAC
:1015E000809341058091910190919201079728F095
:1015F0008091D5038E7F8093D50380910501882348
:1016000021F081508093050125C08093FB03109247
:101610008702109286021092850210928402109224
:1016200083021092820280910801909109018F5FDC
:101630009F4F81F48091AF02882361F488E99AE397
:10164000909322028093210280E09CE09093090114
:10165000809308018091E801893C70F0815080936B
:10166000E80180917B028F7B80937B028091D50380
:101670008B7F8093D50335C080919D07882309F126
:1016800080917B02806480937B028091D50384608B
:101690008093D50380910801909109018F5F9F4F3E
:1016A00081F48091A602882361F088E99AE39093FF
:1016B00022028093210280E098EA909309018093AE
:1016C000080110928D0310928C0310928B031092DC
:1016D0008A038FEF9FEF9093CB078093CA071092F6
:1016E000E80180910001282F332780911D019091FE
:1016F0001E0182179307CCF480917B028062809355
:101700007B0280910801909109018F5F9F4FC1F486
:1017100080E797E1909322028093210280E093E09A
:1017200090930901809308010BC080912102909150
:101730002202892B29F480917B028F7D80937B028A
:101740000E943E6684E0809320028091A602882356
:1017500029F45AEA852E55E0952E12C08091F901A0
:101760008F5F8093F901813359F41092F9018091D0
:10177000F3019091F40101969093F4018093F301A9
:101780000894811C911CF2E78F16FBE09F0609F07C
:1017900040C0882499242091F7013091F8012F5FEF
:1017A0003F4F3093F8012093F7018091F50190911C
:1017B000F60101969093F6018093F501832F992706
:1017C000682F8EE090E00E94182E8091F701909192
:1017D000F8019070682F8FE090E00E94182E8091A1
:1017E000F5019091F601892F9927682F8AE090E002
:1017F0000E94182E8091F5019091F6019070682F4B
:101800008BE090E00E94182E84E190E00E94821606
:101810008C010E948E660E941F6D80912002882399
:1018200009F00BCE0E94616208CE1F920F920FB694
:101830000F9211248F939F93EF93FF938091070151
:101840008823E1F480911302909114020196909301
:10185000140280931302FC01E056FB4FE081ED304F
:1018600019F0803A910539F4109214021092130283
:1018700081E080930701E093C60004C01092140237
:1018800010921302FF91EF919F918F910F900FBED5
:101890000F901F9018951F920F920FB60F92112460
:1018A0002F933F934F935F936F937F938F939F9368
:1018B000AF93BF93CF93EF93FF9390E08091C600D7
:1018C00080930B0250911902503A10F090931A0233
:1018D00080910B028D3009F065C080911A02823030
:1018E00009F060C090931A02852F992782509C4F6F
:1018F000FC01329740812091150230911602241B81
:101900003109DC0111978C91281B3109C9019F70A5
:10191000909316028093150246E0969587954A9516
:10192000E1F7982F935C909317022F733070235C2C
:10193000209318028081981729F48C91281711F4AC
:1019400091E006C090E0809108028F5F80930802CA
:10195000C0910A02CC2309F074C0992309F471C024
:1019600081E080930A02580F509307025150E52FEF
:10197000FF27E250FC4F8DE0808380910004823588
:1019800009F05FC00E94F31F88E190E02CE00FB6E1
:10199000F894A895809360000FBE20936000C093D8
:1019A0001F024FC020911A02822F99278130910582
:1019B000F9F0823091051CF4892B21F040C0029788
:1019C00011F13DC080910B02833239F480910A02FB
:1019D000882319F481E080931A0280910B0280938E
:1019E000FE0381E08093190280910B02992722C0A7
:1019F0002F5F20931A02E52FFF27E250FC4F8091C2
:101A00000B02808309C0E52FFF27E250FC4F809135
:101A10000B028083503A20F45F5F5093190202C09A
:101A200010921A0220910B028091150290911602D9
:101A3000820F911D909316028093150202C010929E
:101A40001A02FF91EF91CF91BF91AF919F918F912A
:101A50007F916F915F914F913F912F910F900FBEAA
:101A60000F901F901895AC01A0E0B0E09D01A81761
:101A7000B90748F4E0EAF4E08191280F311D11968E
:101A8000A417B507C8F33F70FD01E056FB4FC9012D
:101A900056E0969587955A95E1F7835C8083119679
:101AA000FD01E056FB4F2F733070822F835C8083E3
:101AB000AF55BB4F8DE08C93109207018091A0042D
:101AC0008093C6000895A0E0B0E0E9E6FDE00C9444
:101AD0005F782C859D850E85BB2483E28093A004CE
:101AE0009F599093A1042093A20433E0E32EF12C9C
:101AF000002309F49EC0CF84D888BE016D5E7F4F5D
:101B0000A989BA890150109709F493C01097B9F0C8
:101B1000F601EB0DF11DB3949081119791F4002320
:101B200049F1FB016E5F7F4FDB01C080D1806E5FAA
:101B30007F4F0D90BC91A02DBB24015002C090E0BE
:101B400019C01097B9F0F601EB0DF11DB394408167
:101B5000119791F4002341F1FB016E5F7F4FDB0190
:101B6000C080D1806E5F7F4F0D90BC91A02DBB24B3
:101B7000015002C040E018C01097B1F0F601EB0D23
:101B8000F11DB3941081119781F4002371F0FB01D2
:101B90003296DB01CD90DC90BF016E5F7F4FA0815C
:101BA000B181BB24015001C010E0F701E056FB4FAA
:101BB000892F86958695835C80830894E11CF11CAF
:101BC000F701E056FB4F892F99278370907024E02E
:101BD000880F991F2A95E1F755279A0194E03695C9
:101BE00027959A95E1F7822B835C80830894E11C0A
:101BF000F11CF701E056FB4F4F705070440F551F1A
:101C0000440F551F812F992726E0969587952A9591
:101C1000E1F7842B835C80830894E11CF11CF701BD
:101C2000E056FB4F1F73135C10830894E11CF11CFA
:101C30006ACFC7010E94330DE9E00C947B78A3E0E2
:101C40007A2F409107024650442309F458C0E72FE9
:101C5000FF27E250FC4F80818D537F5FE72FFF27E6
:101C6000E250FC4F20812D537F5FE72FFF27E2508A
:101C7000FC4F30813D537F5FE72FFF27E250FC4F41
:101C800060816D537F5F9927880F991F880F991F77
:101C9000522F52955F70582B822F99278F7090701A
:101CA000F4E0880F991FFA95E1F7232F26952695E2
:101CB000282B832F992783709070E6E0880F991F57
:101CC000EA95E1F7682B41504F3FC9F0EA2FFF2713
:101CD000E250FC4F5083AF5F41504F3F81F0EA2FFD
:101CE000FF27E250FC4F2083AF5F41504F3F39F058
:101CF000EA2FFF27E250FC4F6083AF5FA5CF81E062
:101D000094E09093060280930502A350A0930402EE
:101D10000895A2E0B0E0EFE8FEE00C9465788091D1
:101D20000A02882309F4C7C30E941F0E8091FF0393
:101D3000823609F081C2809100049927813791058C
:101D400009F4C0C082379105C4F48D36910509F4B9
:101D500082C08E36910544F48B34910531F186367C
:101D6000910509F454C168C28E36910509F45BC02F
:101D70008037910509F49FC05FC28537910509F44A
:101D8000E2C18637910544F48337910509F4DCC03C
:101D90008437910539F150C28737910509F410C293
:101DA0008937910509F46AC147C2E0910502F091B3
:101DB0000602808191819093C2028093C10220919A
:101DC000BF023091C002821B930B845E9D4F68E678
:101DD00071E00E940678845B90409093BE028093ED
:101DE000BD022AC280910702A0910502B0910602AD
:101DF000853140F080E1E9EDF3E00D9001928A95A4
:101E0000E1F70DC08D919D910D90BC91A02D809317
:101E1000D9039093DA03A093DB03B093DC0380EF44
:101E2000809302024BC0809107018823E1F38DE487
:101E300090E09F938F9388E096E09F938F9381E04B
:101E40008F938F938EE48F930E94630D8DB79EB70F
:101E500007968DBFF1C1A0910502B09106021C91B9
:101E6000113081F48DE4E8E0F6E00D9001928A955E
:101E7000E1F70E94182F19838091D5038F7E8093FC
:101E8000D50301C01982809107018823E1F381E025
:101E900090E09F938F93CE0101969F938F9381E063
:101EA0008F938F938DE48F930E94630DADB7BEB770
:101EB0001796ADBFC1C181E080930D028FEF809373
:101EC0000501BAC1E0910502F091060280818F3FC1
:101ED00039F40E947B2FE0910502F0910602808385
:101EE000E0910502F09106028081882311F481E0DF
:101EF00003C0863010F085E08083E0910502F09108
:101F0000060280810E942E2EE0910502F0910602C9
:101F100080818983809107018823E1F380E790E045
:101F20009F938F9387E995E09F938F9381E090E053
:101F30009F938F93CE0101969F938F9382E08F930F
:101F400081E08F9381E571C12091050230910602F5
:101F5000D9018C918150853008F040C0F901818110
:101F60008435E1F52F5F3F4F80E7E7E9F5E0D901E0
:101F70000D9001928A95E1F7F90182910E94972EC6
:101F80008091D6059927AA27BB27BC01CD0124EC57
:101F900039E040E050E00E94C777DC01CB0180933C
:101FA000B5019093B601A093B701B093B8018091A9
:101FB000D7059927AA27BB27BC01CD010E94C77767
:101FC000DC01CB018093B1019093B201A093B301E6
:101FD000B093B4010E947B2F898301C01982809144
:101FE00007018823E1F381E090E09F938F93CE0176
:101FF00001969F938F9381E08F938F9383E58F93C7
:102000000E94630D8DB79EB707968DBF26C0E091E5
:102010000502F0910602E0818E2F8150853018F480
:102020008E2F0E942E2E0E947B2F89838091070184
:102030008823E1F381E090E09F938F93CE01019696
:102040009F938F9381E08F938F9386E48F930E9469
:10205000630DADB7BEB71796ADBF8091A6028823BA
:1020600029F46EE670E089810E94053780E00E94C5
:102070006D078091BE050E94FA73DEC0E0910502F3
:10208000F09106028081992787FD90959093DA065A
:102090008093D9068181992787FD90959093DC06DE
:1020A0008093DB068281992787FD90959093DE06C9
:1020B0008093DD068381992787FD90959093E006B4
:1020C0008093DF068481992787FD90959093E2069F
:1020D0008093E1068581992787FD90959093E4068A
:1020E0008093E3068681992787FD90959093E60675
:1020F0008093E5068781992787FD90959093E80660
:102100008093E7068085992787FD90959093EA064E
:102110008093E9068185992787FD90959093EC0639
:102120008093EB068285992787FD90959093EE0624
:102130008093ED068385992787FD90959093F0060F
:102140008093EF0679C0E0910502F091060280814C
:102150000E9460348A83882319F481E0898301C056
:102160001982809107018823E1F388E090E09F9332
:102170008F9386E596E09F938F9321E030E03F9325
:102180002F9380910502909106029F938F933F9326
:102190002F93CE0102969F938F933F932F93CE015F
:1021A000820F931F9F938F9384E08F9381E08F938F
:1021B00085E58F930E94630DEDB7FEB773963BC024
:1021C000809104028930C0F120910502309106020D
:1021D0002F5F3F4F88E0A6E5B6E0F90101900D9230
:1021E0008A95E1F7D9018E910E94B6338A838823BC
:1021F00019F481E0898301C0198280910701882345
:10220000E1F321E030E03F932F93CE0102969F93BC
:102210008F933F932F93CE01820F931F9F938F93A2
:1022200082E08F9381E08F9387E58F930E94630D07
:10223000EDB7FEB73B96EDBF809100049927843639
:10224000910509F4CDC085369105ACF48136910530
:1022500009F481C0823691052CF48B34910509F480
:102260005DC021C18236910509F482C08336910593
:1022700009F491C018C18C36910509F4FFC08D3660
:1022800091054CF48736910509F40AC18836910509
:1022900009F4C4C008C18437910529F08637910537
:1022A00009F4FAC000C180910702A0910502B09123
:1022B0000602803140F080E1E9EDF3E00D900192FB
:1022C0008A95E1F70DC08D919D910D90BC91A02D47
:1022D0008093D9039093DA03A093DB03B093DC03DC
:1022E000809107018823E1F31F92809104018F936D
:1022F00084E58F930E94630D8AEF809302028FEF33
:102300008093050180EA9FE00E9482169093FB0172
:102310008093FA010F900F900F90C5C0E0910502D5
:10232000F0910602808191819093C2028093C10254
:102330002091BF023091C002821B930B845E9D4F9F
:1023400068E671E00E940678845B90409093BE023C
:102350008093BD02A8C0E0910502F0910602808141
:1023600080930601803298F08FE1809306010FC0C0
:10237000A0910502B09106028BE0E1EFF3E00D9031
:1023800001928A95E1F78091FA03809382058FEF9D
:102390008093050188C08091FE019091FF01892BF7
:1023A00089F4E0910502F0910602E081EE2351F0FC
:1023B0008AE0E89FC00111240E9482169093CC030A
:1023C0008093CB03E0910502F091060290818AE0B0
:1023D000989FC00111249093FF018093FE0115C0C6
:1023E0008FEF80930501E0910502F0910602908144
:1023F0008AE0989FC001112490930102809300020B
:10240000892B19F081E080930F0280EA9FE00E94FF
:1024100082169093FB018093FA0145C08FEF809361
:102420000501E0910502F0910602908197FD08C038
:1024300082E080930C021092FD011092FC011AC000
:10244000909580916402892B8093640291818AE047
:10245000989FC00111249093FD018093FC0184E0BA
:1024600080930C0280EA9FE00E9482169093FB0109
:102470008093FA0181E08093100215C08FEF809362
:102480000501E0910502F0910602808180936502CA
:1024900081E08093110207C081E080930E0203C0A7
:1024A00081E08093120210920A02109206021092AA
:1024B000050210920402E3E0CE5F0C948178982F1D
:1024C0008091C00085FFFCCF9093C60008950F93C4
:1024D0001F9388E18093C1008091C0008260809347
:1024E000C0008091C10080688093C1008091C100CC
:1024F00080648093C10000E010E00093C5008AE290
:1025000090E08093C40080910002909101020E94AB
:1025100082169093CE038093CD038CED90E00E94C1
:1025200082169093FD038093FC031092CF0380E505
:102530008093D00383E08093D3038BE08093D10317
:102540001092D20310930602009305021092040227
:102550001F910F910895A0E1B0E0E1EBF2E10C943E
:10256000627880910701882309F4C1C28091FA0141
:102570009091FB010E948B16882361F01092FD015F
:102580001092FC0110920102109200021092FF01C1
:102590001092FE018091FC019091FD01892B41F088
:1025A00080919E0490919F040E948B16882329F4A9
:1025B00080911002882309F460C08091070188236C
:1025C00009F45BC080910C0200E211E08430A8F0B5
:1025D0000E94072080E590E09F938F931F930F93B5
:1025E00081E08F938F9388E48F930E94630D2DB7C2
:1025F0003EB7295F3F4F2DBF34C01092660282E282
:1026000094E09F938F938CEF9FE19F938F93E09142
:10261000BB03F091BC03099584E190E09F938F93F5
:102620001F930F9381E090E09F938F938CE092E053
:102630009F938F9382E08F9381E08F9388E48F93B1
:102640000E94630D80910C02982F8F5F80930C0283
:102650002DB73EB7215F3F4F2DBF943010F0109241
:102660000C028091FC019091FD010E9482169093D2
:102670009F0480939E04109210028091110288237F
:1026800051F180910701882331F10E94072080E5F4
:1026900090E09F938F9380E291E09F938F9321E04E
:1026A00030E03F932F938FE191E09F938F933F937F
:1026B0002F9385E692E09F938F9383E08F9381E041
:1026C0008F938CE48F930E94630D109211028DB74B
:1026D0009EB70F968DBF80910E028823D1F0809116
:1026E00007018823B1F08AE090E09F938F938FECED
:1026F00093E09F938F9381E08F938F9386E58F93E1
:102700000E94630D10920E022DB73EB7295F3F4F16
:102710002DBF809112028823D9F080910701882370
:10272000B9F08BE090E09F938F9381EF93E09F93BC
:102730008F9381E08F93809104018F9387E48F932F
:102740000E94630D109212028DB79EB707968DBF3F
:102750008091FC039091FD030E948B16882309F45D
:1027600061C080910701882309F45CC08091B305A2
:102770009927880F991F880F991F7C010027F7FC64
:102780000095102F8091030390910403A0910503FD
:10279000B0910603BC01CD01A80197010E943B78CE
:1027A0003093EA032093E9038091FB029091FC02AD
:1027B000A091FD02B091FE02BC01CD01A8019701DC
:1027C0000E943B783093EC032093EB0380919002BE
:1027D0008093ED0380918F028093EE0388E090E078
:1027E0009F938F9389EE93E09F938F9381E08F93D4
:1027F00083E08F938BE68F930E94630D8091EF03AC
:102800002DB73EB7295F3F4F2DBF853018F086E0CA
:102810008093EF0383E690E00E9482169093FD037D
:102820008093FC038091000290910102892B41F07A
:102830008091CD039091CE030E948B16882321F4C2
:1028400080910F02882339F180910701882319F1C3
:102850000E94FB3582E490E09F938F9380E495E0A3
:102860009F938F9381E08F938F9384E48F930E9443
:10287000630D10920F028DB79EB707968DBF8091A2
:10288000000290910102009731F00E94821690930D
:10289000CE038093CD038091FE019091FF01892B9F
:1028A00009F4B8C08091CB039091CC030E948B16A1
:1028B000882309F4AFC080910701882309F4AAC0D6
:1028C0008091B3059927880F991F880F991F7C0164
:1028D0000027F7FC0095102F8091030390910403CB
:1028E000A0910503B0910603BC01CD01A801970199
:1028F0000E943B783093BE032093BD038091FB027E
:102900009091FC02A091FD02B091FE02BC01CD01AC
:10291000A80197010E943B783093C0032093BF0326
:10292000209185073091860740918707509188074D
:10293000DA01C90163E0880F991FAA1FBB1F6A95BE
:10294000D1F7820F931FA41FB51F820F931FA41FDF
:10295000B51F2091950130919601409197015091BA
:102960009801BC01CD010E943B783093C2032093B3
:10297000C1038091CB029091CC02A091CD02B09185
:10298000CE0239E0B595A795979587953A95D1F7F9
:102990008093C3038091C7029091C802A091C9029D
:1029A000B091CA0229E0B595A795979587952A9584
:1029B000D1F78093C4038091D3029091D402A09167
:1029C000D502B091D60209E0B595A7959795879560
:1029D0000A95D1F78093C5038EE090E09F938F9383
:1029E0008DEB93E09F938F9381E08F938F9383E49C
:1029F0008F930E94630D8091FE019091FF010E94D0
:102A000082169093CC038093CB032DB73EB7295FFA
:102A10003F4F2DBF809106018F3F71F1992714E040
:102A2000880F991F1A95E1F78E5D9D4F40E150E0A8
:102A3000BC01CE0101960E941A7680E190E09F933E
:102A40008F93CE0101969F938F9381E090E09F93A7
:102A50008F9386E091E09F938F9382E08F9381E044
:102A60008F9381E48F930E94630D8FEF8093060113
:102A70008DB79EB70B968DBF809182058823D1F0CC
:102A8000809107018823B1F081E090E09F938F93BC
:102A900082E895E09F938F9381E08F938F9382E4F8
:102AA0008F930E94630D109282052DB73EB7295F68
:102AB0003F4F2DBF80910D028823C9F080910701FF
:102AC0008823A9F084E390E09F938F938FEB96E0A7
:102AD0009F938F9381E08F938F9380E58F930E94D4
:102AE000630D10920D028DB79EB707968DBFE6E07D
:102AF000C05F0C947E781F920F920FB60F92112434
:102B00002F933F935F936F937F938F939F93AF9395
:102B1000BF93EF93FF9320E080912002882329F058
:102B20008091200281508093200280919E0388230F
:102B300019F0815080939E038091280281508093E8
:102B400028028F3F09F057C089E0809328028091C6
:102B500026029091270201969093270280932602E5
:102B600080910A018F5F817080930A01882319F494
:102B700081E08093250286B180912102909122020A
:102B8000892B21F180912102909122020B9750F024
:102B900080912102909122020A97909322028093C1
:102BA000210204C01092220210922102809121027F
:102BB00090912202209108013091090182239323F0
:102BC000892B11F021E008C020E006C08FEF9FEFB5
:102BD000909309018093080180910201222331F032
:102BE0008A3011F45A9A07C0479A05C08A3011F406
:102BF0005A9801C0479880912902882309F472C02D
:102C00002091E801222309F06DC08091A40583FF83
:102C100069C086B19927FC01E071F07084FF14C08F
:102C20008091230290912402019690932402809334
:102C300023028091230290912402895E934008F43C
:102C400051C0209329024EC080912302909124020A
:102C5000892B09F443C080912302909124028A5663
:102C60009140E0F5809123029091240269E270E0A6
:102C70000E94F2778091230290912402860F971F81
:102C80009093240280932302809123029091240246
:102C90000B9750F080912302909124020A97909311
:102CA000C2028093C10204C0F093C202E093C10249
:102CB0008091C1029091C2022091BF023091C00266
:102CC000821B930B845E9D4F68E671E00E9406783C
:102CD000845B90409093BE028093BD0210922402C8
:102CE00010922302FF91EF91BF91AF919F918F912D
:102CF0007F916F915F913F912F910F900FBE0F9039
:102D00001F9018952091260230912702280F391F15
:102D1000C901019608952091260230912702821B55
:102D2000930B892F99278695807490700895CF937F
:102D3000DF930E948216EC01CE010E948B1688233D
:102D4000D9F3DF91CF910895CF93DF930E9482163C
:102D5000EC0109C080910F01882329F090930F01A5
:102D60008FEC80937A00CE010E948B16982F8823D7
:102D700089F3DF91CF9108959FB7F8945F983E9AB9
:102D8000469A8091B0008F708093B0008091B0001F
:102D900083608093B0008091B1008B738093B10009
:102DA0008091B1008B608093B1001092B2008FEFE0
:102DB0008093B3008091B00080688093B0008091D0
:102DC00070008A7F80937000809170008260809391
:102DD00070009FBF08958AE090E00E948216909351
:102DE00031028093300282E085BD83EA84BD17BC46
:102DF00084EB88BD86E086BD80916E008160809303
:102E00006E0008951F920F920FB60F9211242F9308
:102E10003F934F935F936F937F938F939F93AF9362
:102E2000BF93CF93DF93EF93FF9380910201909133
:102E30002A02843108F011C1992309F06AC38091F4
:102E4000B00086FFECC08091B0008F7B8093B00013
:102E500089EA93E090932C0280932B0280910B01DE
:102E600090910C019C01220F331F280F391F809174
:102E7000A1019927880F991F880F991F280F391FC3
:102E800037FF02C02D5F3F4FC901959587959595F6
:102E9000879590930C0180930B0190931E02809371
:102EA0001D028091F9056091C505209103033091C1
:102EB0000403409105035091060380FF2CC077273F
:102EC00088279927EA01D90157FF04C0A158BF4FAD
:102ED000CF4FDF4FE7E0D595C795B795A795EA9512
:102EE000D1F79D01AE010E94C7779B01AC0197FF0E
:102EF00004C0215C3F4F4F4F5F4F66E055954795AB
:102F0000379527956A95D1F780911D0290911E0201
:102F1000820F931F2BC0772788279927EA01D901B1
:102F200057FF04C0A158BF4FCF4FDF4F27E0D595C3
:102F3000C795B795A7952A95D1F79D01AE010E9437
:102F4000C7779B01AC0197FF04C0215C3F4F4F4FF7
:102F50005F4FF6E05595479537952795FA95D1F748
:102F600080911D0290911E02821B930B90931E0272
:102F700080931D028091C605282F3327220F331F0F
:102F8000220F331F80911D0290911E02821793071A
:102F90007CF08091C705282F3327220F331F220F83
:102FA000331F80911D0290911E022817390724F4C7
:102FB00030931E0220931D0220912B0230912C028F
:102FC00080911D0290911E02280F391F205032401F
:102FD00030932C0220932B0280911D0290911E02AF
:102FE00097FD0396959587959595879590931E02E5
:102FF00080931D0245E02D3D340718F08CED95E0DF
:1030000005C02757314030F487E791E090932C02B8
:1030100080932B0280912B0290912C0243C28091CD
:10302000B00080648093B0008091CC05282F3327B6
:103030008DED96E0289FA001299F500D389F500DDF
:103040001124CA0120912D0230912E02821B930B74
:1030500090932C0280932B0259C2992309F059C2F4
:103060008091B00086FF23C28091B0008F7B809357
:10307000B000E0912F02EE23F1F48091CC05282FCF
:1030800033278DED96E0289FA001299F500D389F92
:10309000500D1124CA0120912D0230912E02821B65
:1030A000930B90932C0280932B0210922E0210927D
:1030B0002D02469A2BC289EA93E090932C028093CA
:1030C0002B028E2F99278330910509F4A4C18430F7
:1030D00091053CF48130910561F0029709F4D2C06A
:1030E000AAC18430910509F499C1059709F4A0C1DA
:1030F000A2C180910B0190910C019C01220F331F02
:10310000280F391F8091A1019927880F991F880FD7
:10311000991F280F391F37FF02C02D5F3F4FC9018C
:10312000959587959595879590930C0180930B01C4
:1031300090931E0280931D028091F9056091C50550
:10314000209103033091040340910503509106033D
:1031500080FF2CC0772788279927EA01D90157FFDC
:1031600004C0A158BF4FCF4FDF4F27E0D595C7957B
:10317000B795A7952A95D1F79D01AE010E94C77713
:103180009B01AC0197FF04C0215C3F4F4F4F5F4F45
:10319000A6E05595479537952795AA95D1F7809143
:1031A0001D0290911E02820F931F27C07727882748
:1031B000992757FF04C021583F4F4F4F5F4FF7E00B
:1031C0005595479537952795FA95D1F70E94C7777A
:1031D0009B01AC0197FF04C0215C3F4F4F4F5F4FF5
:1031E000E6E05595479537952795EA95D1F7809173
:1031F0001D0290911E02821B930B90931E028093DE
:103200001D028091C605282F3327220F331F220F5E
:10321000331F80911D0290911E02821793077CF04C
:103220008091C705282F3327220F331F220F331F0A
:1032300080911D0290911E022817390724F43093C3
:103240001E0220931D0280912B0290912C0220914E
:103250001D0230911E02820F931F80509240909366
:103260002C0280932B0280911D0290911E0297FDEB
:103270000396959587959595879590931E028093D3
:103280001D02ECC080910D0190910E019C01220F56
:10329000331F280F391F8091A0019927880F991F8C
:1032A000880F991F280F391F37FF02C02D5F3F4F2E
:1032B000C901959587959595879590930E01809373
:1032C0000D0190931C0280931B028091F90560917F
:1032D000C905A091FB02B091FC02C091FD02D09102
:1032E000FE0281FF2AC07727882799279D01AE011A
:1032F000D7FF04C021583F4F4F4F5F4FA7E0559570
:10330000479537952795AA95D1F70E94C7779B01D6
:10331000AC0197FF04C0215C3F4F4F4F5F4FF6E079
:103320005595479537952795FA95D1F780911B02CA
:1033300090911C02820F931F29C077278827992715
:103340009D01AE01D7FF04C021583F4F4F4F5F4F43
:10335000E7E05595479537952795EA95D1F70E946F
:10336000C7779B01AC0197FF04C0215C3F4F4F4FD3
:103370005F4F76E055954795379527957A95D1F724
:1033800080911B0290911C02821B930B90931C0254
:1033900080931B028091CA05282F3327220F331FE9
:1033A000220F331F80911B0290911C0282179307FA
:1033B0007CF08091CB05282F3327220F331F220F5B
:1033C000331F80911B0290911C022817390724F4A7
:1033D00030931C0220931B0280912B0290912C02AF
:1033E00020911B0230911C02820F931F805092404B
:1033F00090932C0280932B0280911B0290911C02CF
:1034000097FD0396959587959595879590931C02C2
:1034100080931B0223C08091530702C080912D0727
:103420009927880F991F880F991F87559E4F12C0A3
:1034300080915B07F5CFFF27EE0FFF1FE154F94F97
:1034400020813181220F331F80912B0290912C0219
:10345000820F931F90932C0280932B0280912B025A
:1034600090912C0255E08D3D950718F08CED95E07C
:1034700005C08757914030F487E791E090932C0284
:1034800080932B0220912B0230912C022C5B304038
:1034900030932C0220932B0280912D0290912E02CA
:1034A000820F931F90932E0280932D022FC0809144
:1034B000B00080648093B0008CEB90E090932C027D
:1034C00080932B0280912D0290912E0284549F4F65
:1034D00090932E0280932D0280911F02882321F069
:1034E0008091AF02853B20F480911F02823011F45D
:1034F000469801C0469A80912F028F5F80932F02D9
:103500009091CC05981710F410922F0281E08093CF
:103510002A0220912B0230912C0241E02F373407F0
:1035200030F08FEF8093B3002F5F30400FC02F3FFC
:103530003105C9F0C0F0A9014F5F50404F37510528
:1035400050F480E88093B3002058304030932C0230
:1035500020932B0212C08FEF8093B30050932C0264
:1035600040932B020AC080912B028093B3001092EB
:103570002C0210922B0210922A02FF91EF91DF9100
:10358000CF91BF91AF919F918F917F916F915F91FB
:103590004F913F912F910F900FBE0F901F90189554
:1035A00010927C008FEC80937A000895CF93DF9384
:1035B00083E090E00E94102EC82FDD27C531D10591
:1035C00008F02A97C7BD1092360284E690E00E9468
:1035D000A41680911301909114018052934010F42D
:1035E000C0E0D0E0CA3FD105F8F4C7BD82E390E067
:1035F0000E94A41687E394E09F938F938FE592E156
:103600009F938F93E091BB03F091BC030995809148
:103610001301909114010F900F900F900F90805212
:10362000934010F02196DECF6C2F83E090E00E9453
:10363000182EC09393058091A40580FF09C08C2F9C
:103640008A508B3E28F08091D40380648093D40309
:10365000C7BD8CE291E00E94A416DF91CF9108953E
:10366000EF92FF921F93CF9310E080ED97E00E94BE
:1036700082167C01CCE8133019F4CB3008F0C9E095
:1036800010E080914602909147028C5F934024F4B1
:103690008091120181500AC08091460290914702A8
:1036A0008750944034F0809112018F5F8093120113
:1036B00001C011E080914402909145028C5F9340DB
:1036C00024F48091110181500AC0809144029091AC
:1036D00045028750944034F0809111018F5F8093B0
:1036E000110101C01F5F80914202909143028C5FE3
:1036F000934024F48091100181500AC080914202CD
:103700009091430287509440C4F0809110018F5FE4
:103710008093100113C089E394E09F938F938FE50A
:1037200092E19F938F93E091BB03F091BC030995C5
:103730000F900F900F900F905FC01F5F82E18093FA
:10374000700280916B028E7F80936B0285EA80937A
:10375000BC00809112018A3040F48091D4038160D2
:103760008093D4038AE08093120180911201863FF6
:1037700040F08091D40381608093D40385EF8093DF
:103780001201809111018A3040F48091D40382604B
:103790008093D4038AE08093110180911101863FC8
:1037A00040F08091D40382608093D40385EF8093AE
:1037B0001101809110018A3040F48091D40384601B
:1037C0008093D4038AE08093100180911001863F9A
:1037D00040F08091D40384608093D40385EF80937C
:1037E000100180917002882339F0C7010E948B1666
:1037F000882309F090CFF5CF10920F018FEC8093C2
:103800007A0080910F018823E1F3CA3020F48AE026
:1038100090E00E94A416C15009F02DCF86E490E0FC
:103820000E94A416CF911F91FF90EF9008951F92D0
:103830000F920FB60F921124AF92BF92CF92DF92E8
:10384000EF92FF920F931F932F933F934F935F93AA
:103850006F937F938F939F93AF93BF93EF93FF9358
:1038600080914F02282F3327442755278F5F80935D
:103870004F02F9012231310508F08CC3EA5BFF4F9A
:103880000C948D78809178009091790046C0809159
:103890007800909179002CC1809178009091790006
:1038A000909352028093510257C180910C039091E2
:1038B0000D032091780030917900821B930B909337
:1038C000840580938305809183059091840590936E
:1038D0005C0280935B025EC18091780090917900D8
:1038E00020910E0330910F03821B930B909392054E
:1038F00080939105809191059091920590935E023D
:1039000080935D0249C380915502909156022091A7
:10391000780030917900820F931F90935602809324
:10392000550281E03AC38091530290915402209154
:10393000780030917900820F931F90935402809306
:10394000530284E02AC380911D0190911E019C01C5
:10395000220F331F280F391F809178009091790032
:1039600063E070E00E94F277260F371F36952795A7
:103970003695279530931E0120931D0185E00DC3D8
:10398000809178009091790040910803509109034B
:10399000841B950B90933D0280933C0280913C02E6
:1039A00090913D02029704F122E04E3E520784F4CA
:1039B000209150022B5F20935002255080917C0271
:1039C00090917D02845F914018F4215F2093500212
:1039D00080915002853684F14F5F5F4F5093090309
:1039E00040930803845626C080913C0290913D028A
:1039F0008F5F9F4F0CF532E047325307ECF0209178
:103A000050022550209350022B5F80917C029091B0
:103A10007D02845F914018F42F50209350028091D2
:103A200050028C394CF4415050405093090340935C
:103A300008038C598093500281E080933B0280916F
:103A400078009091790090938A0580938905809100
:103A50003C0290913D029C01442737FD4095542F34
:103A60008091C3029091C402A091C502B091C60298
:103A7000820F931FA41FB51F8093C3029093C402AB
:103A8000A093C502B093C6022091C3023091C40234
:103A90004091C5025091C60257FF04C021503C4FCF
:103AA0004F4F5F4F0AE055954795379527950A95F3
:103AB000D1F78091C3029091C402A091C502B09148
:103AC000C602821B930BA40BB50B8093C302909389
:103AD000C402A093C502B093C6022EC180915302C6
:103AE000909154022091780030917900820F931FB9
:103AF000909354028093530210924E0250C28091D0
:103B000002018A3071F480917800909179002091BF
:103B1000510230915202820F931F0196969587951C
:103B200017C04091510250915202843158F02091B7
:103B3000780030917900240F351F8FEF97E0821BBA
:103B4000930B06C08091780090917900840F951FA7
:103B5000909343028093420286E01FC280910C033F
:103B600090910D032091780030917900821B930B86
:103B700090938405809383058091830590918405BB
:103B800020915B0230915C02820F931F909341025F
:103B90008093400287E001C2809178009091790083
:103BA00020910E0330910F03821B930B909392058B
:103BB00080939105809191059091920520915D02ED
:103BC00030915E02820F931F90933F0280933E02DA
:103BD000E3C1209155023091560280917800909176
:103BE0007900280F391F3093560220935502809197
:103BF00002018A3019F4220F331F04C0220F331F31
:103C0000220F331F30935602209355022091550204
:103C100030915602C90137FD0796A3E09595879527
:103C2000AA95E1F79093470280934602809157024C
:103C300090915802820F931F97FD01969595879555
:103C400090935802809357022091180330911903E2
:103C5000821B930B90931C0180931B0120914C02BB
:103C600030914D0280911B0190911C01280F391F4A
:103C700037FF02C02F5F3F4F3595279530934D0298
:103C800020934C024ECE20915302309154028091E9
:103C9000780090917900280F391F309354022093B7
:103CA0005302809102018A3019F4220F331F04C09D
:103CB000220F331F220F331F3093540220935302DD
:103CC0002091530230915402C90137FD079663E0F9
:103CD000959587956A95E1F7909345028093440204
:103CE0008091590290915A02820F931F97FD01967D
:103CF0009595879590935A028093590220911603C7
:103D000030911703821B930B90931A018093190132
:103D100020914A0230914B028091190190911A0131
:103D2000280F391F37FF02C02F5F3F4F359527956A
:103D300030934B0220934A0283E02FC110924F022E
:103D400081E080930F0180913202909133020196BD
:103D500090933302809332028091780090917900A1
:103D60009093140180931301809113019091140199
:103D7000AA27BB27A0905F02B0906002C0906102AA
:103D8000D0906202A80EB91ECA1EDB1EA0925F026E
:103D9000B0926002C0926102D0926202809163028E
:103DA0008F5F80936302823108F4F6C08091150121
:103DB00090911601A0911701B09118017C018D011D
:103DC00023E0EE0CFF1C001F111F2A95D1F7E81A03
:103DD000F90A0A0B1B0BEA0CFB1C0C1D1D1D809124
:103DE0003602992787FD9095A92FB92FBC01CD01E7
:103DF00026EC34E240E050E00E94C777DC01CB01C2
:103E0000E81AF90A0A0B1B0BD801C7010496A11D79
:103E1000B11DB7FF05C0D801C7010B96A11DB11D8B
:103E200013E0B595A795979587951A95D1F7809347
:103E3000150190931601A0931701B093180180917A
:103E40008B0590918C057C010027F7FC0095102FC5
:103E50008091150190911601A0911701B091180160
:103E6000E81AF90A0A0B1B0BE092A102F092A202D7
:103E70000093A3021093A4022091370230913802DC
:103E80004091390250913A0257FF04C0215F3F4FE1
:103E90004F4F5F4FF4E05595479537952795FA9525
:103EA000D1F78091370290913802A0913902B091F8
:103EB0003A02821B930BA40BB50B809337029093AD
:103EC0003802A0933902B0933A0280913702909160
:103ED0003802A0913902B0913A028E0D9F1DA01FA9
:103EE000B11F8093370290933802A0933902B093A8
:103EF0003A028091340290913502AC01E5E0440F22
:103F0000551FEA95E1F7481B590B809137029091B4
:103F10003802A0913902B0913A02B7FF03C00F9660
:103F2000A11DB11D74E0B595A795979587957A95D4
:103F3000D1F72091A1023091A202281B390B63E036
:103F4000220F331F6A95E1F7240F351F37FF02C098
:103F5000215E3F4F45E0359527954A95E1F730932F
:103F6000350220933402D601C501D7FE03C0019665
:103F7000A11DB11DB595A7959795879580935F0273
:103F800090936002A0936102B093620289E08093F3
:103F9000630202C010924F0282E080934E02809131
:103FA0004E0280937C0080914F02882319F08FECA1
:103FB00080937A00FF91EF91BF91AF919F918F9184
:103FC0007F916F915F914F913F912F911F910F9131
:103FD000FF90EF90DF90CF90BF90AF900F900FBE0B
:103FE0000F901F90189590E2E0E2F1E08FE491933A
:103FF000815087FFFCCF089590916602E0E2F1E0E6
:10400000E90FF11D80839F5F909366020895EF9200
:10401000FF920F931F93CF93DF932091640220FFB1
:104020000AC080916502882311F0815002C08091FE
:104030001F018093650221FF0CC090916502809161
:104040001F01981719F41092650203C09F5F9093A7
:104050006502822F992780FF04C081FF02C0109261
:1040600065020E94F31F80916502282F3327CCEF51
:10407000EC2ECFE1FC2EC091BB03D091BC038A3063
:1040800098F481E1809366023F932F9380E794E058
:104090009F938F93FF92EF92FE0109952DB73EB744
:1040A0002A5F3F4F2DBF11C080E1809366023F938E
:1040B0002F9385E794E09F938F93FF92EF92FE01F9
:1040C00009958DB79EB706968DBF20916502822F08
:1040D0009927AA27BB27FC01429710F00C94B42A19
:1040E000E85AFF4FBCEFEB2EBFE1FB2EC091BB03A4
:1040F000D091BC030C948D78109266028AE794E00C
:104100009F938F930CEF1FE1FF92EF92FE010995B1
:1041100084E1809366020F900F900F900F9084E6D9
:1041200090E09F938F9380E590E09F938F931F92F1
:104130001F92809102016AE00E94E677892F9927F9
:104140009F938F93809102010E94E67799279F9316
:104150008F938AE894E09F938F93FF92EF92E09180
:10416000BB03F091BC03099588E2809366022DB7EA
:104170003EB7225F3F4F2DBF89E096E09F938F931C
:104180000E947B2F99279F938F938FE994E09F93B1
:104190008F93FF92EF92E091BB03F091BC030995DE
:1041A0008DB79EB708968DBF9091D403992351F097
:1041B0008CE380936602892F99279F938F938DEAD2
:1041C00094E085C690916C02992371F08CE3809302
:1041D0006602892F99279F938F9384EC94E09F9395
:1041E0008F931F930F9391C08091D50384FF07C0D5
:1041F0008CE38093660289ED94E00C94462A8091CA
:10420000910190919201069710F00C94BD2A8CE3D5
:104210008093660286EE94E00C94462A8091A40571
:10422000ACEFEA2EAFE1FA2EC091BB03D091BC03F4
:1042300080FF74C0109266028091A1029091A20248
:10424000A091A302B091A402BC01CD0125E030E011
:1042500040E050E00E943B783F932F9383EF94E03F
:104260009F938F93FF92EF92FE01099584E18093D3
:1042700066022DB73EB72A5F3F4F2DBF80919D024A
:1042800090919E02A0919F02B091A002BC01CD012D
:1042900025E030E040E050E00E943B783F932F93D0
:1042A00080E095E09F938F93FF92EF92E091BB03A4
:1042B000F091BC03099588E2809366028DB79EB7A2
:1042C00006968DBF80911301909114019F938F9357
:1042D0008DE095E09F938F93FF92EF92E091BB0367
:1042E000F091BC0309958CE3809366022DB73EB72D
:1042F0002A5F3F4F2DBF87B599279F938F938AE100
:1043000095E09F938F93FF92EF92E091BB03F09122
:10431000BC0309958DB79EB706962FC7109266020B
:1043200087E295E09F938F93FF92EF92FE010995AC
:1043300084E1809366020F900F900F900F9086E3B8
:1043400095E09F938F93FF92EF92E091BB03F091E2
:10435000BC03099588E2809366020F900F900F903E
:104360000F908FE395E09F938F93FF92EF92E091F0
:10437000BB03F091BC0309958CE3809366020F9018
:104380000F900F900F908EE495E09F938F93FF9284
:10439000EF920C944A2A1092660287E595E09F936B
:1043A0008F930CEF1FE1FF92EF92FE01099584E1DC
:1043B000809366020F900F900F900F9080910303EF
:1043C00090910403A0910503B0910603B7FF04C0C8
:1043D00081509C4FAF4FBF4FFAE0B595A795979589
:1043E0008795FA95D1F7BF93AF939F938F9384E608
:1043F00095E09F938F931F930F93E091BB03F091F0
:10440000BC03099588E2809366022DB73EB7285F0A
:104410003F4F2DBF8091FB029091FC02A091FD02C5
:10442000B091FE02B7FF04C081509C4FAF4FBF4F09
:10443000EAE0B595A79597958795EA95D1F7BF934B
:10444000AF939F938F9383E795E09F938F931F93F1
:104450000F93E091BB03F091BC0309958CE380932B
:1044600066028DB79EB708968DBF8091C10290916C
:10447000C2029F938F9382E895E09F938F931F933F
:104480000F93E091BB03F091BC0309952DB73EB7A4
:104490002A5F3F4F0DC7109266028091C30690912C
:1044A000C4069F938F938091C1069091C2069F93FB
:1044B0008F9381E995E09F938F93FF92EF92FE0196
:1044C000099584E1809366028DB79EB708968DBFEB
:1044D0008091C7069091C8069F938F938091C506DF
:1044E0009091C6069F938F9381EA95E09F938F9357
:1044F000FF92EF92E091BB03F091BC03099588E233
:10450000809366022DB73EB7285F3F4F2DBF809145
:10451000CB069091CC069F938F938091C906909182
:10452000CA069F938F9381EB95E09F938F93FF92A1
:10453000EF92E091BB03F091BC0309958CE380936B
:1045400066028DB79EB708968DBF8091CF06909179
:10455000D0069F938F938091CD069091CE069F9326
:104560008F9381EC95E0A2C010926602809199052C
:10457000E82FFF27EE0FFF1FE154F94F8081918153
:104580009F938F9380919805E82FFF27EE0FFF1FD1
:10459000E154F94F808191819F938F9381ED95E054
:1045A0009F938F93FF92EF92FE01099584E1809390
:1045B00066028DB79EB708968DBF80919B05E82F48
:1045C000FF27EE0FFF1FE154F94F808191819F93E8
:1045D0008F9380919A05E82FFF27EE0FFF1FE1547C
:1045E000F94F8081918188589F4F9F938F9381EEDF
:1045F00095E09F938F93FF92EF92E091BB03F09130
:10460000BC03099588E2809366022DB73EB7285F08
:104610003F4F2DBF80919D05E82FFF27EE0FFF1F15
:10462000E154F94F8081918182599F4F9F938F93DD
:1046300080919C05E82FFF27EE0FFF1FE154F94FF3
:104640008081918182599F4F9F938F9381EF95E055
:104650009F938F93FF92EF92E091BB03F091BC0385
:1046600009958CE3809366028DB79EB708968DBF3F
:1046700080919F05E82FFF27EE0FFF1FE154F94FB0
:104680008081918182599F4F9F938F9380919E0546
:10469000E82FFF27EE0FFF1FE154F94F8081918132
:1046A00082599F4F9F938F9381E096E09F938F93C2
:1046B000FF92EF92E091BB03F091BC0309952DB7F7
:1046C0003EB7285F3F4FF4C51092660281E196E045
:1046D0009F938F930CEF1FE1FF92EF92FE010995DC
:1046E000809102010F900F900F900F908A3009F087
:1046F000A1C084E180936602809118039091190310
:104700009C0197FF02C0295F3F4F287F821B930BBC
:104710009F938F93809118039091190397FD0796AB
:1047200073E0959587957A95E1F79F938F93209104
:1047300018033091190337FF02C0295F3F4F63E030
:10474000359527956A95E1F7809146029091470249
:10475000821B930B9F938F938FE196E09F938F9390
:104760001F930F93E091BB03F091BC03099588E27E
:10477000809366028DB79EB70A968DBF809116030F
:10478000909117039C0197FF02C0295F3F4F287F3C
:10479000821B930B9F938F93809116039091170325
:1047A00097FD079653E0959587955A95E1F79F9366
:1047B0008F93209116033091170337FF02C0295FB2
:1047C0003F4F43E0359527954A95E1F780914402A4
:1047D00090914502821B930B9F938F9380E396E009
:1047E0009F938F931F930F93E091BB03F091BC03B2
:1047F00009958CE3809366022DB73EB7265F3F4F45
:104800002DBF80911403909115039F938F938091F6
:104810001403909115032091420230914302821BB0
:10482000930B9F938F9381E496E09F938F931F93B5
:104830000F93A3C38B3019F0843108F4ADC084E129
:104840008093660280911803909119039C0197FF51
:1048500002C0215F3F4F207F821B930B97FD019683
:10486000959587959F938F93809118039091190345
:1048700097FD0F9624E0959587952A95E1F79F93EC
:104880008F93209118033091190337FF02C0295FDD
:104890003F4F83E0359527958A95E1F78091460251
:1048A00090914702821B930B9F938F938FE496E026
:1048B0009F938F931F930F93E091BB03F091BC03E1
:1048C000099588E2809366022DB73EB7265F3F4F79
:1048D0002DBF80911603909117039C0197FF02C092
:1048E000215F3F4F207F821B930B97FD019695958B
:1048F00087959F938F93809116039091170397FD4F
:104900000F96B4E095958795BA95E1F79F938F93AD
:10491000209116033091170337FF02C0295F3F4FE4
:10492000A3E035952795AA95E1F7809144029091EF
:104930004502821B930B9F938F9381E696E09F9392
:104940008F931F930F93E091BB03F091BC030995E4
:104950008CE3809366028DB79EB70A968DBF8091D7
:1049600014039091150397FD0196959587959F9354
:104970008F938091140390911503209142023091FE
:104980004302821B930B9F938F9383E796E09F9341
:104990008F931F930F938ECE8D3009F0EEC584E177
:1049A000809366028091120199279F938F93809143
:1049B00018039091190397FD0F96E4E0959587955C
:1049C000EA95E1F79F938F93209118033091190393
:1049D00037FF02C0295F3F4F73E0359527957A95E1
:1049E000E1F78091460290914702821B930B9F93BF
:1049F0008F9382E896E09F938F931F930F93E0919C
:104A0000BB03F091BC03099588E2809366028DB7E1
:104A10009EB70A968DBF8091110199279F938F931E
:104A2000809116039091170397FD0F9664E095957A
:104A300087956A95E1F79F938F93209116033091A4
:104A4000170337FF02C0295F3F4F53E03595279585
:104A50005A95E1F78091440290914502821B930B95
:104A60009F938F9386E996E09F938F931F930F9365
:104A7000E091BB03F091BC0309958CE3809366023F
:104A80002DB73EB7265F3F4F2DBF8091100199276C
:104A90009F938F93809114039091150397FD019636
:104AA000959587959F938F9380911403909115030B
:104AB0002091420230914302821B930B9F938F936C
:104AC0008AEA96E09F938F931F930F93E091BB0325
:104AD000F091BC0309958DB79EB70A964EC310920C
:104AE00066028EEB96E09F938F93FF92EF92FE010A
:104AF000099584E1809366020F900F900F900F90BC
:104B000080910E0390910F039F938F9380913E02AB
:104B100090913F029F938F938BEC96E09F938F939E
:104B2000FF92EF92E091BB03F091BC03099588E2FC
:104B3000809366022DB73EB7285F3F4F2DBF80910F
:104B40000C0390910D039F938F938091400290915D
:104B500041029F938F938AED96E09F938F93FF92EC
:104B6000EF92E091BB03F091BC0309958CE3809335
:104B700066028DB79EB708968DBF8091080390910D
:104B800009039F938F9380913C0290913D029F93E4
:104B90008F9389EE96E08ACD1092660280911D0176
:104BA00090911E016AE070E00E9406789F938F93B7
:104BB00080911D0190911E016AE070E00E940678CC
:104BC0007F936F9388EF96E09F938F93FF92EF927E
:104BD000FE01099584E1809366028DB79EB7089621
:104BE0008DBF8091FC079091FD076AE070E00E9404
:104BF000F2779F938F938091FC079091FD076AE075
:104C000070E00E94F2777F936F938CE097E09F9320
:104C10008F93FF92EF92E091BB03F091BC03099553
:104C200088E2809366022DB73EB7285F3F4F2DBFC5
:104C30008091FE079091FF079F938F9380E297E00A
:104C40009F938F93FF92EF92E091BB03F091BC038F
:104C500009958CE3809366028DB79EB706968DBF4B
:104C600080910008909101089F938F9380E397E0D3
:104C70002EC11092660282E497E09F938F93FF9279
:104C8000EF92FE01099584E1809366020F900F90E8
:104C90000F900F908091BF069091C0069F938F93C5
:104CA0008BE497E09F938F93FF92EF92E091BB0389
:104CB000F091BC03099588E2809366028DB79EB798
:104CC00006968DBF8091AF0299279F938F938BE5B6
:104CD00097E09F938F93FF92EF92E091BB03F09147
:104CE000BC0309958CE3809366022DB73EB72A5F1B
:104CF0003F4F2DBF8091BE06992701979F938F93B9
:104D00008BE697E0FECA109266028BE797E09F93CE
:104D10008F93FF92EF92FE01099584E180936602E2
:104D20000F900F900F900F908091BD029091BE0256
:104D30009F938F9383E897E09F938F93FF92EF92D7
:104D4000E091BB03F091BC03099588E28093660271
:104D50002DB73EB72A5F3F4F2DBF8091C102909182
:104D6000C2029F938F9381E997E09F938F93FF9265
:104D7000EF92E091BB03F091BC0309958CE3809323
:104D800066028DB79EB706968DBF8091BF02909147
:104D9000C0029F938F938FE997E099C010926602AB
:104DA0008091B00299279F938F938DEA97E09F930C
:104DB0008F93FF92EF92FE01099584E18093660242
:104DC0008DB79EB706968DBF8091B10299279F93AC
:104DD0008F9389EB97E09F938F93FF92EF92E091EF
:104DE000BB03F091BC03099588E2809366022DB75E
:104DF0003EB72A5F3F4F2DBF8091B20299279F9304
:104E00008F9385EC97E09F938F93FF92EF92E091C1
:104E1000BB03F091BC0309958CE3809366028DB7C8
:104E20009EB706968DBF8091B30299279F938F936B
:104E300081ED97E04CC0109266028091B4029927F0
:104E40009F938F938DED97E09F938F93FF92EF92B7
:104E5000FE01099584E1809366028DB79EB70696A0
:104E60008DBF8091B50299279F938F9389EE97E02C
:104E70009F938F93FF92EF92E091BB03F091BC035D
:104E8000099588E2809366022DB73EB72A5F3F4FAF
:104E90002DBF8091B60299279F938F9385EF97E05E
:104EA0009F938F93FF92EF92E091BB03F091BC032D
:104EB00009958CE3809366028DB79EB706968DBFE9
:104EC0008091B70299279F938F9381E098E09F93F9
:104ED0008F93FF92EF92D5CA109266028DE098E010
:104EE0009F938F93FF92EF92FE01099584E1809347
:104EF00066020F900F900F900F908091A10199275B
:104F00009F938F9385E198E09F938F93FF92EF9209
:104F1000E091BB03F091BC03099588E2809366029F
:104F20008DB79EB706968DBF80911D0290911E028F
:104F30009F938F9383E298E09F938F93FF92EF92DA
:104F4000E091BB03F091BC0309958CE3809366026A
:104F50002DB73EB72A5F3F4F2DBF8091C7059927D8
:104F60009F938F938091C60599279F938F9381E399
:104F700098E09F938F93FF92EF92E091BB03F091A3
:104F8000BC0309958DB79EB70896F7C010926602CC
:104F90008FE398E09F938F93FF92EF92FE01099524
:104FA00084E1809366020F900F900F900F90809194
:104FB000F503992787FD90959F938F938091F40334
:104FC000992787FD90959F938F938FE498E09F9307
:104FD0008F93FF92EF92E091BB03F091BC03099590
:104FE00088E2809366022DB73EB7285F3F4F2DBF02
:104FF0008091F603992787FD90959F938F938091D9
:10500000F70399279F938F938FE598E09F938F9352
:10501000FF92EF92E091BB03F091BC0309958CE302
:10502000809366028DB79EB708968DBF8091FB0373
:1050300099279F938F938091F803992787FD9095E7
:105040009F938F938FE698E031CB109266028FE7A3
:1050500098E09F938F93FF92EF92FE01099584E170
:10506000809366020F900F900F900F9080917906B9
:1050700099278F7790709F938F93809171069927CE
:105080008F7790709F938F938091690699278F7780
:1050900090709F938F938091610699278F7790707E
:1050A0009F938F938FE898E09F938F93FF92EF9257
:1050B000E091BB03F091BC03099588E280936602FE
:1050C0008DB79EB70C968DBF8091990699278F77E3
:1050D00090709F938F938091910699278F7790700E
:1050E0009F938F938091890699278F7790709F93D4
:1050F0008F938091810699278F7790709F938F93DC
:1051000080EA98E09F938F93FF92EF92E091BB0328
:10511000F091BC0309958CE3809366022DB73EB7EE
:10512000245F3F4F2DBF8091B90699278F779070EC
:105130009F938F938091B10699278F7790709F935B
:105140008F938091A90699278F7790709F938F9363
:105150008091A10699278F7790709F938F9381EB11
:1051600098E09F938F93FF92EF92E091BB03F091B1
:10517000BC0309958DB79EB70C968DBFFEC11092EA
:10518000660282EC98E09F938F93FF92EF92FE016C
:10519000099584E1809366020F900F900F900F9015
:1051A00080917D06992787FD90959F938F9380919D
:1051B0007506992787FD90959F938F9380916D0633
:1051C000992787FD90959F938F93809165069927E6
:1051D00087FD90959F938F9381ED98E09F938F9398
:1051E000FF92EF92E091BB03F091BC03099588E236
:1051F000809366022DB73EB7245F3F4F2DBF80914D
:105200009D06992787FD90959F938F938091950692
:10521000992787FD90959F938F9380918D0699276D
:1052200087FD90959F938F9380918506992787FDA1
:1052300090959F938F9382EE98E09F938F93FF9228
:10524000EF92E091BB03F091BC0309958CE380934E
:1052500066028DB79EB70C968DBF8091BD069927CB
:1052600087FD90959F938F938091B506992787FD31
:1052700090959F938F938091AD06992787FD909588
:105280009F938F938091A506992787FD90959F9373
:105290008F9383EF98E09F938F93FF92EF92E0912B
:1052A000BB03F091BC0309952DB73EB7245F3F4F78
:1052B0002DBF63C11092660284E099E09F938F93A3
:1052C0000CEF1FE1FF92EF92FE01099584E18093BC
:1052D00066020F900F900F900F9080917906881FB3
:1052E0008827881F97E0899FC00111248D969F937E
:1052F0008F9380917106881F8827881F96E0899F69
:10530000C00111248D969F938F9380916906881F09
:105310008827881F95E0899FC00111248D969F934F
:105320008F9380916106881F8827881F9927880F8F
:10533000991F880F991F8D969F938F9383E199E012
:105340009F938F93FF92EF92E091BB03F091BC0388
:10535000099588E2809366028DB79EB70C968DBF43
:1053600080919906881F8827881F9BE0899FC0012C
:1053700011248D969F938F9380919106881F882783
:10538000881F9AE0899FC00111248D969F938F9367
:1053900080918906881F8827881F99E0899FC0010E
:1053A00011248D969F938F9380918106881F882763
:1053B000881F992723E0880F991F2A95E1F78D967A
:1053C0009F938F9387E299E09F938F93FF92EF9241
:1053D000E091BB03F091BC0309958CE380936602D6
:1053E0002DB73EB7245F3F4F2DBF8091A106881F88
:1053F0008827881F9CE0899FC00111248D969F9368
:105400008F938BE399E09F938F93FF92EF92E091BC
:10541000BB03F091BC0309958091A9062DB73EB757
:105420002A5F3F4F2DBF87FF12C080E48093660242
:105430008CE499E09F938F93FF92EF92E091BB03EE
:10544000F091BC0309950F900F900F900F908091F1
:10545000B10687FF12C084E4809366028FE499E06E
:105460009F938F931F930F93E091BB03F091BC0325
:1054700009950F900F900F900F908091B90687FFBC
:105480007CC088E48093660282E599E09F938F93C5
:105490001F930F93E091BB03F091BC0309950F900C
:1054A0000F900F900F9069C01092660285E599E009
:1054B0009F938F93FF92EF92FE01099584E1809371
:1054C00066020F900F900F900F908091F5019091D0
:1054D000F6019F938F9383E699E09F938F93FF92BA
:1054E000EF92E091BB03F091BC03099588E28093B1
:1054F00066028DB79EB706968DBF8091F701909199
:10550000F8019F938F9380E799E09F938F93FF9289
:10551000EF92E091BB03F091BC03099589E480937D
:1055200066022DB73EB72A5F3F4F2DBF8DE799E04A
:105530009F938F93FF92EF92E091BB03F091BC0396
:105540000995809164020F900F900F900F9083FF48
:1055500014C01092F8011092F70160E070E08EE044
:1055600090E00E94292E09C080911F01281719F48C
:10557000215020931F011092650210926402E6E010
:10558000CDB7DEB70C947E78F999FECF92BD81BD80
:10559000F89A80B599270895F999FECF1FBA92BD60
:1055A00081BD60BD0FB6F894FA9AF99A0FBE0895BE
:1055B0004AEA20E030E02617370740F4FC018191E9
:1055C000480F2F5F3F4F26173707C8F3842F9927BF
:1055D0000895EAEA40E050E04617570778F49C0146
:1055E000F999FECF32BD21BDF89A80B5E80F4F5F23
:1055F0005F4F2F5F3F4F4617570790F38E2F992726
:10560000089581E080939A0582E08093990583E074
:105610008093980584E080939B0585E080939C05AA
:1056200086E080939D0587E080939E0588E08093C7
:105630009F0589E08093A0058AE08093A1058BE017
:105640008093A2058CE08093A30508951F93CF93C8
:10565000DF9384E58093970580910201843150F0B7
:105660008AE08093B7051092D9058BE18093B3054A
:105670008EE40AC083E08093B70580E28093D90569
:105680008EE18093B30585E58093D6058093D70599
:105690008AE68093A40583E08093FA05AEE1A093A7
:1056A000A5058FEF8093A705EFE0E093A805A093F1
:1056B000A6051092AA05F8E0F093AB0580E480936C
:1056C000AC051092AD0584E18093A9058EE080932E
:1056D000AE05B0E1B093AF051CE01093B005F093B8
:1056E000B10586EE8093B20580E88093B40550E55D
:1056F0005093B50586E98093B6055093B80580931D
:10570000B90576E07093BA0581E28093BB058DE21E
:105710008093BC059AE59093BD0580E28093BF0518
:105720001092C0051092C1051092C2051092C305D7
:105730001092DB051092DC051092DD051092DE055B
:1057400034E63093C40548E24093C50561E06093B8
:10575000F9051092C60527EF2093C7057093CC0575
:105760008DE78093CD058093CE058093CF05309350
:10577000C8054093C9051092CA052093CB0582E362
:105780008093D0059093D1058093D2051092F805AF
:105790009093D3055093D4056093D505B093D80565
:1057A0003093DA058FE58093DF0583EF8093E10581
:1057B0008AEA8093E3058093E405E093E005E093B3
:1057C000E2058EEF8093E5053093E6059093E705BB
:1057D0009093E8059093E9058BE48093EA05809324
:1057E000EB058093EC051092ED057093EE05F093B8
:1057F000EF059093F005A093F1053093F2053093F7
:10580000F30582E08093F4056093BE051092F605DF
:105810001092F705ABEFB5E0E0E7F1E0ED010190A4
:1058200009921A95E1F760E770E0CD018456904047
:105830000E94D82A80930706DF91CF911F91089587
:10584000CF93DF9384E580939705809102018431A3
:1058500050F08AE08093B7051092D9058BE18093D0
:10586000B3058EE40AC083E08093B70580E280939D
:10587000D9058EE18093B30585E58093D6058093A5
:10588000D7058AE68093A40583E08093FA057EE13C
:105890007093A5058FEF8093A7059FE09093A805CF
:1058A0007093A6051092AA0568E06093AB0580E4AA
:1058B0008093AC051092AD059093A9058AE0809382
:1058C000AE0580E18093AF0556E05093B00560933C
:1058D000B10586EE8093B20580E88093B4052AE591
:1058E0002093B50588E78093B6052093B80580938B
:1058F000B9055093BA0581E28093BB058DE2809390
:10590000BC052093BD05E0E2E093BF051092C00501
:105910001092C1051092C2051092C3051092DB05CA
:105920001092DC051092DD051092DE0544E64093EE
:10593000C40538E23093C505F1E0F093F905109203
:10594000C60597EF9093C7055093CC058DE78093DC
:10595000CD058093CE058093CF054093C805309345
:10596000C9051092CA059093CB0582E38093D005B8
:105970002093D1058093D2051092F8052093D3058A
:1059800080E58093D4058CE38093D505E093D8051A
:105990009BE49093DA058FE58093DF0583EF809396
:1059A000E1058AEA8093E3058093E40584E180932E
:1059B000E0058093E2058EEF8093E5054093E605D0
:1059C0002093E7052093E8052093E9059093EA05E5
:1059D0009093EB059093EC051092ED055093EE0536
:1059E0006093EF052093F0057093F1054093F20565
:1059F0004093F30582E08093F405F093BE05109286
:105A0000F6051092F705ABEFB5E08CE0E7E7F1E0C3
:105A1000ED01019009928A95E1F760E770E0CD0110
:105A2000845690400E94D82A80930706DF91CF9138
:105A30000895CF93DF9384E58093970580910201C9
:105A4000843150F08AE08093B7051092D9058BE13C
:105A50008093B3058EE40AC083E08093B70580E2AB
:105A60008093D9058EE18093B30585E58093D605B3
:105A70008093D7058AE68093A40583E08093FA0596
:105A80006EE16093A5058FEF8093A7059FE090934B
:105A9000A8056093A6051092AA0578E07093AB055F
:105AA00080E48093AC051092AD059093A9057093A6
:105AB000AE0590E19093AF0556E05093B00570931A
:105AC000B10586EE8093B20580E88093B40534E694
:105AD0003093B50588E78093B6053093B805809379
:105AE000B9055093BA0581E28093BB058DE280939E
:105AF000BC052AE52093BD059093BF051092C00513
:105B00001092C1051092C2051092C3051092DB05D8
:105B10001092DC051092DD051092DE053093C4056D
:105B200048E24093C505E1E0E093F9051092C6050F
:105B300097EF9093C7055093CC058DE78093CD05E3
:105B40008093CE058093CF053093C8054093C90557
:105B50001092CA059093CB0582E38093D0052093E1
:105B6000D1058093D2051092F8052093D30580E5E6
:105B70008093D40596E49093D50580E28093D80570
:105B80009093DA058FE58093DF0583EF8093E1053D
:105B90008AEA8093E3058093E4056093E0056093CF
:105BA000E2058EEF8093E5053093E6052093E70547
:105BB0002093E8052093E9058BE48093EA05809320
:105BC000EB058093EC051092ED055093EE05709374
:105BD000EF052093F0056093F1053093F2053093C3
:105BE000F30582E08093F405E093BE051092F6057C
:105BF0001092F705ABEFB5E08CE0EFE7F1E0ED01D7
:105C0000019009928A95E1F760E770E0CD01845632
:105C100090400E94D82A80930706DF91CF91089583
:105C2000F999FECF92BD81BDF89A80B59927089564
:105C3000F999FECF1FBA92BD81BD60BD0FB6F89431
:105C4000FA9AF99A0FBE089564EC7AE20E945576AA
:105C500008954CEC5AE20E948F760895EF92FF92DD
:105C60000F931F93CF93C82F8150853008F0C3E066
:105C700081E7C89F8001112483EFE82E8FEFF82E73
:105C8000E00EF11E60E770E0C7010E94E92A682F6C
:105C900098012D593F4F8FB39927AC014270507036
:105CA00081FDF9CF32BD21BDF89A80B5861711F07C
:105CB000CA0121C08FB399279C012270307081FDE9
:105CC000F9CFF2BCE1BCF89A80B5843511F0C90176
:105CD00012C081E7C89FC00111240D9724EC3AE25D
:105CE00041E750E0BC0187E995E00E9430760E94D0
:105CF0007F6681E090E0CF911F910F91FF90EF9030
:105D00000895282F863010F025E003C0882309F479
:105D100021E0F999FECF1FBA82E090E092BD81BDEB
:105D200020BD0FB6F894FA9AF99A0FBE0895CF9352
:105D3000C82F80919705843509F042C0C63010F015
:105D4000C5E003C0CC2309F43BC060E770E087E9FD
:105D500095E00E94D82A8093070681E7C89FC0017A
:105D600011242CEC3AE241E750E067E975E00D9729
:105D70000E946D762CEC3AE24CE050E068E975E068
:105D800080E590E00E946D766CE070E088E995E037
:105D90000E94D82A282FF999FECF1FBA8CE590E0EF
:105DA00092BD81BD20BD0FB6F894FA9AF99A0FBE44
:105DB0008C2F0E94812E0E947F6681E090E002C0BD
:105DC00080E090E0CF9108956DE470E088EE93E07C
:105DD0000E94E92A482F8FB399279C0122703070C6
:105DE00081FDF9CF85E394E092BD81BDF89A80B53D
:105DF000841779F48FB399279C012270307081FD4C
:105E0000F9CF88EE93E092BD81BDF89A80B58130DC
:105E100011F0C901089524EC3AE24EE450E068EE36
:105E200073E088E096E00E94307681E090E008958B
:105E3000809108068130A9F46DE470E088E096E076
:105E40000E94D82A809355062CEC3AE24EE450E0AA
:105E500068E076E088EE93E00E946D7681E090E065
:105E6000089580E090E00895CF93DF9381E08093E0
:105E70000806E8E0F6E08FE0158616861786108A99
:105E80008150349687FFF8CF80E480931506809385
:105E9000160610921706809318068093190690EC48
:105EA00090931A0610921B0680931C0680931D0681
:105EB00010921E0690931F06909320068093210651
:105EC000109222068093230690932406A9E0B6E060
:105ED00087E0E9E8F1E0ED01019009928A95E1F7A8
:105EE0006DE470E0CD0101970E94D82A8093550699
:105EF000DF91CF910895F999FECF82E090E092BDB5
:105F000081BDF89A80B5282F863078F023E0322FB3
:105F1000F999FECF1FBA82E090E092BD81BD30BDFD
:105F20000FB6F894FA9AF99A0FBE822F992708951E
:105F3000DF92EF92FF920F931F93CF93FF24DF2CFA
:105F4000EF2C81E090E00E94102E843539F031E092
:105F5000E32E64E581E090E00E94182E6CE070E092
:105F600080E590E00E94E92AC82FF999FECF8CE5E0
:105F700090E092BD81BDF89A80B58C1711F421E0B4
:105F8000D22EC1E001E010E0EE2029F48C2F0E9417
:105F90002E2E8823C1F591E0F92E1F930F9385E8EB
:105FA00099E09F938F938FE592E19F938F93E09178
:105FB000BB03F091BC0309958DB79EB706968DBFC4
:105FC0000230110549F0033011054CF40130110580
:105FD00031F40E94262B05C00E94202C02C00E9492
:105FE000192DDD2059F024EC3AE24CE050E060E558
:105FF00070E088E995E00E94307602C00E94012B93
:106000008C2F0E94972ECF5F0F5F1F4FC63008F472
:10601000BBCFFF2019F083E00E94812E0E947B2FCE
:10602000C82F0E942E2E8C2F99279F938F938BEA37
:1060300099E09F938F930FE512E11F930F93E091E7
:10604000BB03F091BC0309958DB79EB706968DBF33
:10605000EE2021F40E94E42E882399F484EC99E048
:106060009F938F931F930F93E091BB03F091BC0319
:1060700009950E94342F0E94182F0F900F900F90B7
:106080000F901092960590E0E5E1F6E0CFE0808178
:10609000349618160CF49F5FC150C7FFF8CF909349
:1060A0009605892F99279F938F9389E096E09F9378
:1060B0008F9385EE99E09F938F931F930F93E091B9
:1060C000BB03F091BC0309958DB79EB708968DBFB1
:1060D00086E09AE09F938F931F930F93E091BB0309
:1060E000F091BC0309950F900F900F900F90CF91F6
:1060F0001F910F91FF90EF90DF9008959FB7F89454
:106100003998389A88B1836088B98091B9008C7FBA
:106110008093B9008AE28093B800109270021092C6
:106120006E0210926D02EEE5F6E08BE010821182B5
:106130001282138214821582168217828150389639
:1061400087FFF4CF9FBF08951092700284E9809377
:10615000BC0010926E0210926D0280E88093BC0029
:106160001092BD001092BA001092BB001092B900BC
:106170001092B8000E947E301092BB0085E8809398
:10618000BC0080916B02826080936B0208951F9225
:106190000F920FB60F9211242F933F934F935F935B
:1061A0008F939F93EF93FF9380917002282F332753
:1061B000442755278F5F80937002F90127313105FD
:1061C00008F0B3C2E659FF4F0C948D7880916E02AF
:1061D0008C3090F480916E028F5F80936E0280917C
:1061E0006E02E82FFF27EE0FFF1FEE0FFF1FE85F85
:1061F000F94F8585181654F780916E028C3070F037
:1062000010926A021092690210926E0285E08093E9
:10621000700280916D02880F8D5A04C080916E02C9
:10622000880F8E5A8093BB0085E874C280916E02FD
:10623000E82FFF2783E0EE0FFF1F8A95E1F7E25A70
:10624000F94F81818093BB0085E88093BC008091E9
:106250006E02E82FFF27EE0FFF1FEE0FFF1FEE0F5E
:10626000FF1FE25AF94F808180FF91C080916E023A
:10627000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F90
:10628000E25AF94F8281882329F080919605873060
:1062900008F45FC28091690290916A02892B09F02B
:1062A00058C28091670290916802892B09F051C20F
:1062B0006EC080916E0221E030E002C0220F331FD9
:1062C0008A95E2F78091670290916802282339232A
:1062D000232B79F080916E02E82FFF27EE0FFF1F2E
:1062E000EE0FFF1FEE0FFF1FE25AF94F80E184838C
:1062F0000DC080916E02E82FFF27EE0FFF1FEE0FFB
:10630000FF1FEE0FFF1FE25AF94F148280916E02B9
:10631000E82FFF2753E0EE0FFF1F5A95E1F7E25AEF
:10632000F94F8481282F332743E0220F331F4A95EA
:10633000E1F780916E02E82FFF2793E0EE0FFF1F39
:106340009A95E1F7E25AF94F82818770822B809308
:10635000BB0085E88093BC0020916E0281E090E054
:1063600002C0880F991F2A95E2F7209169023091A7
:106370006A0282239323892B51F086E596E090935D
:1063800074028093730288E080937502E2C184E016
:1063900080C1E0917302F091740281918093BB00FF
:1063A00085E88093BC00F0937402E09373028091BF
:1063B0007502815080937502882309F4CAC183E075
:1063C00068C18091B900803351F5809171028823B2
:1063D00029F480916E028F5F8093710280916E022A
:1063E000E82FFF2783E0EE0FFF1F8A95E1F7E25ABF
:1063F000F94F838199278F7790708F3791057CF4BF
:1064000080916E02E82FFF27EE0FFF1FEE0FFF1F98
:10641000EE0FFF1FE25AF94F83818F5F8383109243
:10642000700284E98093BC008AE090E0909392012E
:106430008093910180916E028F5F80936E02109223
:10644000700262C18091B9008034A9F180916D021F
:10645000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1FAE
:10646000E25AF94F83818F77838380916D028F5F2A
:1064700080936D0280916D028C30A0F010926D02BD
:106480001092680210926702809172028F5F80936F
:1064900072028C3038F01092720280916B028D7F04
:1064A00080936B0280916B02816080936B021092EB
:1064B000700284E971C080916D02E82FFF27EE0F12
:1064C000FF1FEE0FFF1FEE0FFF1FE25AF94F8381F0
:1064D0008068838380916D02E82FFF27EE0FFF1FF6
:1064E000EE0FFF1FEE0FFF1FE25AF94F808180FF72
:1064F0002FC080916D02E82FFF2753E0EE0FFF1FA2
:106500005A95E1F7E25AF94F84819927009751F0A3
:106510004097D9F586E596E09093740280937302D4
:1065200088E031C080916D02992743E0880F991F60
:106530004A95E1F78D59994F9093740280937302B5
:1065400090916D02809172029817E1F483E01BC074
:1065500080916D02992733E0880F991F3A95E1F7F2
:106560008D59994F909374028093730280916B02BE
:1065700081FD06C090916D0280917202981711F40E
:1065800082E001C081E080937502809175028130C4
:1065900011F485E801C085EC8093BC008091710204
:1065A00080936C0210927102D4C0E0917302F0915A
:1065B00074028091BB008083809173029091740279
:1065C00001969093740280937302809175028150BA
:1065D00080937502823010F085EC58C0813011F440
:1065E00085E854C080916B0281FF2DC080917B02B1
:1065F00080FD1DC080916D02E82FFF2723E0EE0F84
:10660000FF1F2A95E1F7E25AF94F86818A3F79F414
:1066100080916D02E82FFF2793E0EE0FFF1F9A9500
:10662000E1F7E25AF94F8081816080830CC080914C
:106630006D02E82FFF2783E0EE0FFF1F8A95E1F739
:10664000E25AF94F108280916D028F5F80936D0244
:1066500080916D028C30A0F010926D021092680251
:1066600010926702809172028F5F809372028C3069
:1066700038F01092720280916B028D7F80936B02D2
:106680001092700284E98093BC0049C08093BC00E2
:1066900086E0809370025DC088E9C4CD80916F026E
:1066A000880F805FBFCD80916F029927813091055F
:1066B00061F0823091051CF4892B21F04AC00297C9
:1066C00039F047C080911201ADCD80911101AACD62
:1066D00080911001A7CD80E8A5CD1092700284E9C9
:1066E0008093BC008AE090E09093920180939101A6
:1066F00080916F02823088F480916F028F5F809367
:106700006F0282E18093700280916B028E7F809392
:106710006B0285EA8093BC001CC010926F028091CE
:106720006B02816080936B0214C01092700284E946
:106730008093BC0080916B02816080936B028AE041
:1067400090E0909392018093910110926E021092CA
:106750006D02FF91EF919F918F915F914F913F91CA
:106760002F910F900FBE0F901F9018951F93CF93EE
:10677000DF93182F8091A602882321F480910202D2
:10678000882319F081E090E097C01D3008F092C096
:106790001123B1F0E12FFF2723E0EE0FFF1F2A9511
:1067A000E1F7E25AF94F35978081359688230CF04E
:1067B00081C03897808180FD03C083E090E07CC079
:1067C00080915606823019F084E090E075C067E051
:1067D00070E086E596E00E94D82A90915D068917C0
:1067E00019F085E090E068C080ED97E00E94821685
:1067F000EC0180916B0280FD05C0CE010E948B16DA
:106800008823B9F3112319F48FEF90E00BC0212FE7
:1068100033272150304081E090E002C0880F991F5B
:106820002A95E2F790936A0280936902A1E0B0E0B2
:10683000EEE5F6E040E050E06BE0CD01042E02C052
:10684000880F991F0A94E2F72091690230916A0239
:1068500082239323892B11F01182128261504F5FA2
:106860005F4F389667FFE9CF10926E021092700268
:1068700080916B028E7F80936B0285EA8093BC00CF
:1068800080916B0280FD05C0CE010E948B1688238B
:10689000B9F38091690290916A02892B29F0CE01A7
:1068A0000E948B16882311F38091690290916A02ED
:1068B000009711F082E090E0DF91CF911F91089551
:1068C0000F931F93CF93DF93982F8091A602882375
:1068D00021F480910202882319F081E090E092C0B7
:1068E0009D30A0F4992319F486E090E08BC0C92F65
:1068F000DD27FE0133E0EE0FFF1F3A95E1F7E25A84
:10690000F94F35978081359687FD03C082E090E08E
:1069100079C03897808180FD03C083E090E072C029
:1069200080ED97E00E9482168C0180916B0280FDC1
:1069300005C0C8010E948B168823B9F3219721E076
:1069400030E0C90102C0880F991FCA95E2F7909301
:10695000680280936702D901EEE5F6E040E050E07E
:106960006BE0CD01042E02C0880F991F0A94E2F754
:10697000209167023091680282239323892B11F0C2
:106980001182128261504F5F5F4F389667FFE9CFE7
:1069900010926D021092560610925D0610927002CF
:1069A00080916B028E7F80936B0285EA8093BC009E
:1069B00080916B0280FD05C0C8010E948B16882360
:1069C000B9F38091670290916802892B29F0C80180
:1069D0000E948B16882311F380915606823019F09D
:1069E00084E090E00FC067E070E086E596E00E94EA
:1069F000D82A90915D06891719F085E090E002C0D1
:106A000080E090E0DF91CF911F910F91089589E18F
:106A1000A3EFB6E0EFEBF6E011821082329611960A
:106A20001C921E921296815087FFF6CF109215038A
:106A30001092140310921703109216031092190368
:106A40001092180308951F920F920FB60F921124FF
:106A50000F931F932F933F934F935F936F937F9366
:106A60008F939F93AF93BF93CF93DF93EF93FF9356
:106A70004091860050918700809177029091780232
:106A8000481B590BCA0157FD0196AC015595479516
:106A9000809186009091870090937802809377028E
:106AA000CA0189599840A0917902B0917A02875E13
:106AB000954338F4149714F01092930181E090E01C
:106AC00081C0AD30B1050CF081C0CA018B5F904030
:106AD0008356944008F071C0425C5340FD01EA0FB8
:106AE000FB1FE154F94F80819181FA01E81BF90BFA
:106AF000CF01F7FF03C0909581959F4F06974CF407
:106B00008091AF02883C28F48091AF02865F809329
:106B1000AF02FD01EA0FFB1FE154F94F8081918123
:106B20009C01220F331F280F391F240F351F37FFF9
:106B300002C02D5F3F4FE901D595C795D595C79503
:106B4000CA0101968C179D0714F4219706C0415085
:106B50005040C417D5070CF421968091AF02833CB6
:106B6000D8F08D010A0F1B1FF801E154F94F808105
:106B700091819E01281B390BC90163E070E00E94DE
:106B80000678CB01880F991F860F971F0D50194F5C
:106B9000F8019183808307C0AA0FBB1FAD50B94F86
:106BA00011961C921E92E0917902F0917A02EE0FFA
:106BB000FF1FE154F94FD183C083809179029091F6
:106BC0007A02019690937A0280937902FF91EF9175
:106BD000DF91CF91BF91AF919F918F917F916F91F5
:106BE0005F914F913F912F911F910F910F900FBE89
:106BF0000F901F901895EF92FF920F931F93809123
:106C0000B3059927880F991F880F991F7C010027CA
:106C1000F7FC0095102F8091030390910403A0913D
:106C20000503B0910603BC01CD01A80197010E94A4
:106C30003B7830934305209342058091FB0290916D
:106C4000FC02A091FD02B091FE02BC01CD01A801A1
:106C500097010E943B78309345052093440580912D
:106C6000790790917A0797FD039695958795959565
:106C70008795909347058093460580918907909169
:106C80008A0797FD03969595879595958795909397
:106C90004905809348058091140390911503209134
:106CA000420230914302821B930B90934B058093D9
:106CB0004A058091A1029091A202A091A302B091F5
:106CC000A402BC01CD0125E030E040E050E00E948C
:106CD0003B7830934D0520934C0580913C02909178
:106CE0003D0290934F0580934E058091C102909193
:106CF000C202909353058093520580911D0190919B
:106D00001E0190935505809354058091AF029927F9
:106D1000909357058093560580918507909186073B
:106D2000A0918707B0918807209195013091960135
:106D30004091970150919801BC01CD010E943B7890
:106D4000309359052093580580915F0699279093B9
:106D50005B0580935A0580916706992790935D059E
:106D600080935C0580916F06992790935F058093CF
:106D70005E05809177069927909361058093600561
:106D800080911D0290911E0290936B0580936A057D
:106D90008091FC079091FD0790936F0580936E059D
:106DA000809100089091010890937105809370057F
:106DB00080910208992790937D0580937C058091AE
:106DC0008C0390918D0390937F0580937E05809135
:106DD0008A0390918B039093810580938005809125
:106DE000D403882321F48091D503882321F0809156
:106DF0004105816003C0809141058E7F80934105EC
:106E00001F910F91FF90EF9008951F93CF93DF9301
:106E1000182FEB018091A6028823A1F411501F3F87
:106E200089F0D0932202C093210280912102909197
:106E30002202892BD1F7CE018C0F9D1F0E9497163D
:106E4000115078F7DF91CF911F910895CF93DF9381
:106E5000809102018D3011F40E94301B10927A0053
:106E600080914602909147029093400780933F079C
:106E700080914402909145029093310780933007AE
:106E8000809142029091430290937F0780937E0706
:106E900020913E0230913F02C901880F991F880F4F
:106EA000991F820F931F820F931F90937A078093ED
:106EB00079072091400230914102C901880F991F42
:106EC000880F991F820F931F820F931F90938A0739
:106ED000809389078FEC80937A00A0EBB2E0CCE935
:106EE000D5E097E08991E82FFF27EE0FFF1FE154CF
:106EF000F94F0190F081E02DE259FF4F1E161F0659
:106F00001CF0E0E0F0E005C0EF3FF10514F0EFEF1A
:106F1000F0E08C91282F3327E217F30714F4815007
:106F200004C02E173F0714F48F5F8C939150119675
:106F300097FFD8CF8091D6059927AA27BB27BC01F8
:106F4000CD0124EC39E040E050E00E94C777DC013D
:106F5000CB018093B5019093B601A093B701B09394
:106F6000B8018091D7059927AA27BB27BC01CD017D
:106F70000E94C777DC01CB018093B1019093B201ED
:106F8000A093B301B093B401DF91CF910895A0E035
:106F9000B0E0EDECF7E30C945C78882EC0E0D0E034
:106FA0007E016E011092D403469AD0930F03C093D2
:106FB0000E03D0930D03C0930C03D0930903C09329
:106FC0000803D0931903C0931803D0931703C093F9
:106FD0001603D0931503C093140310929E011092D0
:106FE0009D01109236020E94263784E690E00E94AE
:106FF000A4160E9426378091A40580FF10C08091BE
:10700000130190911401875B934038F48091130130
:10701000909114018E5E924010F40E94D61A0FE1F6
:107020008AE090E00E94A41680914202909143026F
:10703000C80FD91F8091460290914702E80EF91EB1
:107040008091440290914502C80ED91E015007FF5D
:10705000E7CF9701205F3F4F3695279536952795C7
:107060003093190320931803C6014096969587958F
:107070009695879590931703809316036096F5E095
:10708000D695C795FA95E1F7D0931503C0931403ED
:1070900090931303809312033093110320931003F2
:1070A000882009F441C08091790790917A0797FF71
:1070B00003C0909581959F4F6CE070E00E94067828
:1070C0009B0170930F0360930E0380918907909149
:1070D0008A0797FF03C0909581959F4F6CE070E001
:1070E0000E94067870930D0360930C0380918905CC
:1070F00090918A059093090380930803B90184E075
:1071000090E00E94292E60910C0370910D0386E09F
:1071100090E00E94292E609108037091090388E095
:1071200090E00E94292E65C084E090E00E94242E09
:1071300090930F0380930E0386E090E00E94242E2C
:1071400090930D0380930C0388E090E00E94242E1E
:107150009C01909309038093080380910E03909102
:107160000F038150984050F480910C0390910D03CF
:107170008150984018F421503440D8F187E29AE0C9
:107180009F938F938FE592E19F938F93E091BB0341
:10719000F091BC0309958091790790917A0797FF48
:1071A00003C0909581959F4F6CE070E00E94067837
:1071B00070930F0360930E038091890790918A0763
:1071C00097FF03C0909581959F4F6CE070E00E94FF
:1071D000067870930D0360930C038091890590915C
:1071E0008A0590930903809308030F900F900F90E6
:1071F0000F901092400710923F07109231071092A3
:10720000300710927F0710927E0784E690E00E947C
:10721000A41680913E0290913F029C01220F331FE1
:10722000220F331F280F391F280F391F30937A0779
:107230002093790780914002909141028C01000FC8
:10724000111F000F111F080F191F080F191F10938E
:107250008A07009389078091B305C82EDD24EE24A8
:10726000FF24442737FD4095542FC701B6010E94E3
:10727000C7774B015C016093030370930403809311
:107280000503909306039801442737FD4095542F3A
:10729000C701B6010E94C777DC01CB018093FB02D6
:1072A0009093FC02A093FD02B093FE028092DF0255
:1072B0009092E002A092E102B092E2028093D702A3
:1072C0009093D802A093D902B093DA021092D3021D
:1072D0001092D4021092D5021092D602809115011C
:1072E00090911601A0911701B091180190938C050F
:1072F00080938B0510923502109234021092C302D3
:107300001092C4021092C5021092C6028091C1026E
:107310009091C2029093C0028093BF020E941662B5
:1073200082E390E090932202809321028091D6051F
:107330009927AA27BB27BC01CD0124EC39E040E006
:1073400050E00E94C777DC01CB018856954CAF4FC7
:10735000BF4F8093B5019093B601A093B701B0934E
:10736000B8018091D7059927AA27BB27BC01CD0179
:107370000E94C777DC01CB018856954CAF4FBF4FB9
:107380008093B1019093B201A093B301B093B40183
:1073900010929A01109299018091C1029091C202BB
:1073A000AA2797FDA095BA2F2091950130919601BB
:1073B0004091970150919801BC01CD010E94C7777F
:1073C000DC01CB018093850790938607A093870704
:1073D000B09388071092BA021092B90281E08093AC
:1073E00001010E947F6680917B02846080937B0212
:1073F0008FEF8093F7071092F80780E28093F907E8
:10740000C0EBD2E0ACE9B5E007E08D91E82FFF27B3
:10741000EE0FFF1FE154F94F8081918182598993CA
:10742000015007FFF2CF84E68093AF0280911F02E4
:10743000882311F0469A579A809118039091190366
:1074400080569940815C9B4228F08091D4038160F2
:107450008093D4038091160390911703805699402E
:10746000815C9B4228F08091D40382608093D40396
:1074700080911403909115038C5291408957954047
:1074800028F08091D40384608093D40380910E030C
:1074900090910F038C529140835C914028F0809131
:1074A000D40388608093D40380910C0390910D03E2
:1074B0008C529140835C914028F08091D40380618C
:1074C0008093D403809108039091090380509240E7
:1074D0008355914028F08091D40380628093D40337
:1074E000ECE0CDB7DEB70C947878A3E1B0E0EBE741
:1074F000FAE30C945678809114039091150320912F
:10750000420230914302821B930B90937F0780933A
:107510007E0780914C0290914D0297FD07969C0149
:1075200053E0359527955A95E1F73093400720931E
:107530003F0780914A0290914B0297FD079643E0E6
:10754000959587954A95E1F7909331078093300799
:1075500030934B0720934A07909343078093420749
:107560008091790790917A07AC01440F551F480F1D
:10757000591F20913E0230913F02C901880F991F87
:10758000880F991F820F931F820F931F480F591F57
:1075900057FF02C04D5F5F4F5595479555954795ED
:1075A00050937A07409379078091890790918A07D1
:1075B000AC01440F551F480F591F209140023091D4
:1075C0004102C901880F991F880F991F820F931FCD
:1075D000820F931F480F591F57FF02C04D5F5F4F27
:1075E000559547955595479550938A074093890738
:1075F00020913E0230913F02C901880F991F880FE8
:10760000991F820F931F820F931F9C01442737FD00
:107610004095542F8091F3029091F402A091F502CD
:10762000B091F602820F931FA41FB51F8093F3023F
:107630009093F402A093F502B093F60220914002D9
:1076400030914102C901880F991F880F991F820F3D
:10765000931F820F931F9C01442737FD4095542FA1
:107660008091EF029091F002A091F102B091F202AC
:10767000820F931FA41FB51F8093EF029093F00217
:10768000A093F102B093F2028091540790915507B4
:1076900020913E0230913F02820F931F9093550735
:1076A0008093540780918107909182072091400236
:1076B00030914102820F931F90938207809381073C
:1076C00080910A0390910B03019690930B03809392
:1076D0000A038091890590918A05209108033091D1
:1076E0000903821B930B9C01442737FD4095542FBF
:1076F0008091EB029091EC02A091ED02B091EE022C
:10770000820F931FA41FB51F8093EB029093EC028E
:10771000A093ED02B093EE028FEC80937A0010926A
:107720000F012091DB023091DC024091DD0250918B
:10773000DE0229873A874B875C8729543B464140C4
:1077400050402CF028E43BE641E050E00DC0898534
:107750009A85AB85BC85885B9449AE4FBF4F4CF48E
:1077600028EB34E94EEF5FEF2D833E834F8358873C
:1077700008C089859A85AB85BC858D839E83AF8340
:10778000B8872091E3023091E4024091E5025091E4
:10779000E6022D873E874F87588B29543B46414050
:1077A00050402CF028E43BE641E050E00DC08D85D0
:1077B0009E85AF85B889885B9449AE4FBF4F4CF426
:1077C00028EB34E94EEF5FEF29833A834B835C83E8
:1077D00008C08D859E85AF85B88989839A83AB83E0
:1077E000BC83A0917E07B0917F07BB8BAA8BFD0164
:1077F000CF01AA2797FDA095BA2FA090D302B090F1
:10780000D402C090D502D090D602A80EB91ECA1ECE
:10781000DB1EA092D302B092D402C092D502D092C5
:10782000D602E0908507F0908607009187071091B7
:107830008807E80EF91E0A1F1B1FE0928507F092C9
:1078400086070093870710938807F0919602F98BBB
:10785000FF2309F098C180919502882309F093C114
:107860008091A40586FF8FC18091300790913107E8
:10787000AA2797FDA095BA2FBC01CD0129813A8195
:107880004B815C810E94C7779B01AC0197FF04C0CC
:107890002150384F4F4F5F4F6BE0559547953795C7
:1078A00027956A95D1F780919D01682E77248824C9
:1078B0009924CA01B901A40193010E94C777DC0190
:1078C000CB018093240390932503A0932603B093C8
:1078D0002703B7FF04C08150904FAF4FBF4F1C012B
:1078E0002D013CE055944794379427943A95D1F76D
:1078F00020922403309225034092260350922703BE
:1079000080913F0790914007AA2797FDA095BA2F35
:10791000BC01CD012D813E814F8158850E94C777E2
:1079200097FF04C06150784F8F4F9F4F2BE0959584
:107930008795779567952A95D1F7A40193010E94C1
:10794000C777DC01CB018093280390932903A09390
:107950002A03B0932B03B7FF04C08150904FAF4F61
:10796000BF4F9C01AD018CE0559547953795279504
:107970008A95D1F7209328033093290340932A0353
:1079800050932B0380912403909125039093280713
:1079900080932707809128039091290390932C07C7
:1079A00080932B0722193309440955092093280392
:1079B0003093290340932A0350932B03E20EF31EC6
:1079C000041F151FE0928507F09286070093870732
:1079D0001093880780919C018823B1F457FF04C05D
:1079E0002F5F3F4F4F4F5F4F5595479537952795E1
:1079F000A21AB30AC40AD50AA092D302B092D40242
:107A0000C092D502D092D6022A893B8979010027FB
:107A1000F7FC0095102F8091280390912903A091E5
:107A20002A03B0912B03E80EF91E0A1F1B1FC80181
:107A3000B70129813A814B815C810E94C7779B0104
:107A4000AC0197FF04C02150384F4F4F5F4FBBE050
:107A50005595479537952795BA95D1F780919E0111
:107A6000A82EBB24CC24DD24CA01B901A6019501AE
:107A70000E94C777DC01CB0180931C0390931D0308
:107A8000A0931E03B0931F03B7FF04C08150904F13
:107A9000AF4FBF4F3C014D01ACE095948794779474
:107AA0006794AA95D1F760921C0370921D0380928F
:107AB0001E0390921F03C801B7012D813E814F81A3
:107AC00058850E94C77797FF04C06150784F8F4F49
:107AD0009F4FFBE09595879577956795FA95D1F738
:107AE000A60195010E94C777DC01CB01809320039A
:107AF00090932103A0932203B0932303B7FF04C004
:107B00008150904FAF4FBF4FAC01BD01ECE0759578
:107B1000679557954795EA95D1F740932003509381
:107B2000210360932203709323032A893B8937FF43
:107B300003C0309521953F4F21343105E4F1D40144
:107B4000C30197FE07C0B095A095909581959F4F72
:107B5000AF4FBF4F81389105A105B10584F4DB011A
:107B6000CA0177FF07C0B095A095909581959F4F6A
:107B7000AF4FBF4F81389105A105B105E4F081E019
:107B80008093BB0218C010922C0710922B07109202
:107B900028071092270710922003109221031092B9
:107BA00022031092230310921C0310921D031092C3
:107BB0001E0310921F038091200390912103A09136
:107BC0002203B0912303BC01CD0124E630E040E064
:107BD00050E00E943B78E0901C03F0901D03E21AF5
:107BE000F30AF0923E07E0923D0780911C039091CA
:107BF0001D03A0911E03B0911F03BC01CD0124E61B
:107C000030E040E050E00E943B78DA01C901209169
:107C10002003309121038C01021B130B10933307B7
:107C2000009332078091950190919601A091970160
:107C3000B0919801BC01CD0128E631E040E050E070
:107C40000E94C7772091850730918607409187076A
:107C500050918807261737074807590764F0261BF5
:107C6000370B480B590B20938507309386074093B9
:107C700087075093880720918507309186074091A8
:107C800087075091880757FF0CC0260F371F481FE2
:107C9000591F209385073093860740938707509399
:107CA000880760913007709131076E0D7F1D9B0131
:107CB000442737FD4095542F8091D7029091D802E8
:107CC000A091D902B091DA02820F931FA41FB51FB1
:107CD0008093D7029093D802A093D902B093DA028E
:107CE00080919B0290919C02681B790BCB01AA2783
:107CF00097FDA095BA2F29853A854B855C85820F23
:107D0000931FA41FB51F8093DB029093DC02A09306
:107D1000DD02B093DE02C090B101D090B201E090DC
:107D2000B301F090B401C816D906EA06FB06C4F404
:107D300088EA91E6A0E0B0E08C199D09AE09BF0980
:107D40008093DB029093DC02A093DD02B093DE020D
:107D50008093D7029093D802A093D902B093DA020D
:107D600022273327A9012C193D094E095F0980916B
:107D7000DB029091DC02A091DD02B091DE0282175D
:107D80009307A407B507B4F4D701C601885A9146F2
:107D9000A040B0408093DB029093DC02A093DD0210
:107DA000B093DE028093D7029093D802A093D902B9
:107DB000B093DA0260913F0770914007600F711F26
:107DC0009B01442737FD4095542F8091DF0290910D
:107DD000E002A091E102B091E202820F931FA41F82
:107DE000B51F8093DF029093E002A093E102B0936D
:107DF000E2028091990290919A02681B790BCB0163
:107E0000AA2797FDA095BA2F2D853E854F855889C5
:107E1000820F931FA41FB51F8093E3029093E40287
:107E2000A093E502B093E602E090B501F090B601B0
:107E30000091B7011091B801E816F9060A071B076F
:107E4000C4F488EA91E6A0E0B0E08E199F09A00B87
:107E5000B10B8093E3029093E402A093E502B09308
:107E6000E6028093DF029093E002A093E102B093D8
:107E7000E20222273327A9012E193F09400B510B9B
:107E80008091E3029091E402A091E502B091E602B4
:107E900082179307A407B507B4F4D801C701885A1D
:107EA0009146A040B0408093E3029093E402A093F7
:107EB000E502B093E6028093DF029093E002A09384
:107EC000E102B093E2028091D3029091D402A0919A
:107ED000D502B091D6028093E7029093E802A09376
:107EE000E902B093EA028091E3029091E402A0914A
:107EF000E502B091E6028093030390930403A093FC
:107F00000503B09306038091DB029091DC02A091FF
:107F1000DD02B091DE028093FB029093FC02A093FD
:107F2000FD02B093FE028091DF029091E002A091E9
:107F3000E102B091E2028093FF0290930003A093CC
:107F40000103B09302038091D7029091D802A091CF
:107F5000D902B091DA028093F7029093F802A093CD
:107F6000F902B093FA0280911B0190911C0197FDD8
:107F7000079633E0959587953A95E1F790934007FA
:107F800080933F078091190190911A0197FD079600
:107F900023E0959587952A95E1F790933107809393
:107FA000300780914602909147020F9734F488E1A0
:107FB0009CEF9093400780933F07809146029091F9
:107FC0004702079734F480E398EF9093400780933B
:107FD0003F07209102012A30A9F480914602909136
:107FE0004702835F934034F088EE93E0909340071C
:107FF00080933F0780914602909147028A5F9340A9
:10800000DCF014C08091460290914702815D974058
:1080100034F088EE93E09093400780933F0780917F
:10802000460290914702805E974034F080ED97E0E1
:108030009093400780933F078091440290914502BE
:108040000F9734F488E19CEF9093310780933007C9
:108050008091440290914502079734F480E398EFB1
:1080600090933107809330072A30A9F4809144021D
:1080700090914502835F934034F088EE93E09093B3
:1080800031078093300780914402909145028A5FC6
:108090009340DCF014C08091440290914502815DD0
:1080A000974034F088EE93E0909331078093300747
:1080B0008091440290914502805E974034F080EDBB
:1080C00097E09093310780933007E091A801EE2369
:1080D00009F4B7C040911B0150911C0180912C0301
:1080E00090912D03481B590B509333034093320357
:1080F00020911B0130911C01280F391F37FF02C04E
:108100002F5F3F4F3595279530932D0320932C03F8
:10811000413851051CF080E890E005C040585F4FA1
:1081200034F480E89FEF90933303809332038E2FD3
:108130009927A0913203B0913303A89FA001A99F72
:10814000500DB89F500D112457FF02C0415F5F4F83
:1081500014E0559547951A95E1F780913F07909166
:108160004007840F951F9093400780933F076091CD
:10817000190170911A0180912E0390912F03681BB1
:10818000790B709331036093300340911901509142
:108190001A01480F591F57FF02C04F5F5F4F559597
:1081A000479550932F0340932E03613871051CF0BF
:1081B00080E890E005C060587F4F34F480E89FEF7E
:1081C00090933103809330032E2F33278091300317
:1081D00090913103829FB001839F700D929F700D2B
:1081E0001124AB0177FF02C0415F5F4FE4E055957A
:1081F0004795EA95E1F78091300790913107840F18
:10820000951F9093310780933007A29FC001A39FD1
:10821000900DB29F900D11249C0180911B019091B3
:108220001C01820F931F90931C0180931B0180916E
:10823000190190911A01860F971F90931A0180934C
:1082400019010091420710914307809127079091EF
:108250002807101611065CF59C0197FF04C0222721
:108260003327281B390BC901AA2797FDA095BA2FE0
:1082700020919C01332744275527BC01CD010E9442
:10828000C7779B01AC0197FF04C0215C3F4F4F4F64
:108290005F4F76E055954795379527957A95D1F7B5
:1082A00080913D0790913E07820F931F27C097FF53
:1082B00003C0909581959F4FAA2797FDA095BA2F4F
:1082C00020919C01332744275527BC01CD010E94F2
:1082D000C7779B01AC0197FF04C0215C3F4F4F4F14
:1082E0005F4F66E055954795379527956A95D1F785
:1082F00080913D0790913E07821B930B90933E0720
:1083000080933D07E0904A07F0904B0780912B0740
:1083100090912C071E141F045CF59C0197FF04C06C
:1083200022273327281B390BC901AA2797FDA095BF
:10833000BA2F20919C01332744275527BC01CD013A
:108340000E94C7779B01AC0197FF04C0215C3F4F9F
:108350004F4F5F4F96E055954795379527959A95DE
:10836000D1F78091320790913307820F931F27C076
:1083700097FF03C0909581959F4FAA2797FDA095E1
:10838000BA2F20919C01332744275527BC01CD01EA
:108390000E94C7779B01AC0197FF04C0215C3F4F4F
:1083A0004F4F5F4F86E055954795379527958A95AE
:1083B000D1F78091320790913307821B930B9093F2
:1083C0003307809332078091A40587FF44C09989C1
:1083D000992309F040C0809195028823E1F5A1E03E
:1083E000EA16A1E0FA064CF080913F079091400711
:1083F0008E0D9F1D805091400DC0B0E0EB16BFEF79
:10840000FB0664F480913F07909140078E0D9F1DFD
:1084100080509F4F9093400780933F07E1E00130E9
:108420001E074CF08091300790913107800F911F0B
:10843000805091400CC0FFEF00301F0764F4809122
:10844000300790913107800F911F80509F4F90937C
:10845000310780933007A0EBB2E06CE975E057E09C
:10846000FB018191BF01E82FFF27EE0FFF1FE154B1
:10847000F94F0190F081E02DE259FF4FEF3FF105F8
:1084800021F01CF0EFEFF0E004C0F7FF02C0E0E0E5
:10849000F0E04C91242F3327E217F307B1F0CF011E
:1084A000821B930B97FD079613E0959587951A9578
:1084B000E1F7242F280F2C93822F9927E817F9072B
:1084C00014F4215001C02F5F2C935150119657FF87
:1084D000C7CFE2E1CD5E0C9472788091A60288232A
:1084E00001F580917B028C7F80937B02A9EDB3E044
:1084F000EEE5F6E09BE080910202882309F48C937C
:108500008D91818312829150389697FFF4CF80919C
:108510000202882359F08091020281508093020266
:1085200005C080917B02816080937B0210926E0275
:108530001092700280916B028E7F80936B0285EAAD
:108540008093BC0008958091A605883F38F0EFEF36
:10855000F0E0E81BF109E055FD4F80818093AE010A
:108560008091AE01882329F0843618F084E6809348
:10857000AE018091A805883F38F0EFEFF0E0E81BEE
:10858000F109E055FD4F80818093AC018091AC01F1
:10859000882329F0843618F084E68093AC0180911A
:1085A000B505883F38F0EFEFF0E0E81BF109E05542
:1085B000FD4F80818093A7018091A7018B3010F43B
:1085C0008AE002C08F3F11F48093A7018091E005FB
:1085D000883F38F0EFEFF0E0E81BF109E055FD4F80
:1085E00080818093560780915607823010F481E095
:1085F00002C08F3F11F4809356078091E205883FB7
:1086000038F0EFEFF0E0E81BF109E055FD4F808115
:1086100080937C0780917C07823010F481E002C057
:108620008F3F11F480937C078091CD05883F38F00F
:10863000EFEFF0E0E81BF109E055FD4F80818093FA
:1086400053078091CE05883F38F0EFEFF0E0E81B4C
:10865000F109E055FD4F808180932D078091CF0572
:10866000883F38F0EFEFF0E0E81BF109E055FD4FEF
:10867000808180935B079091A705983F18F49093B1
:10868000AD0109C0EFEFF0E0E91BF109E055FD4F46
:1086900080818093AD01983F18F49093AD0109C09B
:1086A000EFEFF0E0E91BF109E055FD4F8081809389
:1086B000AD018091AA05883F38F0EFEFF0E0E81BAC
:1086C000F109E055FD4F80818093AB018091AC05AD
:1086D000883F38F0EFEFF0E0E81BF109E055FD4F7F
:1086E00080818093A9018091B405883F38F0EFEF35
:1086F000F0E0E81BF109E055FD4F80818093AA016D
:108700008091B605883F38F0EFEFF0E0E81BF10903
:10871000E055FD4F80818093A6018091B705883F89
:1087200038F0EFEFF0E0E81BF109E055FD4F8081F4
:108730008093A8018091B805883F38F0EFEFF0E012
:10874000E81BF109E055FD4F80818093A5018091E0
:10875000B905883F38F0EFEFF0E0E81BF109E0558C
:10876000FD4F80818093A4018091BF05883F38F040
:10877000EFEFF0E0E81BF109E055FD4F80818093B9
:10878000A2018091C005883F38F0EFEFF0E0E81BD0
:10879000F109E055FD4F8081809390028091C105E1
:1087A000883F38F0EFEFF0E0E81BF109E055FD4FAE
:1087B000808180938F028091C205883F38F0EFEF6F
:1087C000F0E0E81BF109E055FD4F808180938E02B7
:1087D0008091C305883F38F0EFEFF0E0E81BF10926
:1087E000E055FD4F808180938D028091DB05883FAD
:1087F00038F0EFEFF0E0E81BF109E055FD4F808124
:1088000080938C028091DC05883F38F0EFEFF0E038
:10881000E81BF109E055FD4F808180938B02809128
:10882000DD05883F38F0EFEFF0E0E81BF109E05597
:10883000FD4F808180938A028091DE05883F38F069
:10884000EFEFF0E0E81BF109E055FD4F80818093E8
:1088500089028091C405883F38F0EFEFF0E0E81B13
:10886000F109E055FD4F80818093A1018091C805F9
:10887000883F38F0EFEFF0E0E81BF109E055FD4FDD
:1088800080818093A0018091D005883F38F0EFEF80
:10889000F0E0E81BF109E055FD4F808180939F01D6
:1088A0008091D305883F38F0EFEFF0E0E81BF10945
:1088B000E055FD4F808180939E018091D405883FD3
:1088C00038F0EFEFF0E0E81BF109E055FD4F808153
:1088D00080939D018091D505883F38F0EFEFF0E05F
:1088E000E81BF109E055FD4F808180939C01809148
:1088F000DA05883F38F0EFEFF0E0E81BF109E055CA
:10890000FD4F808180939B018091F505883F38F071
:10891000EFEFF0E0E81BF109E055FD4F8081809317
:108920008C078091A201282F33272F5F3F4F8CE3C4
:1089300098E2B9010E9406787093B0016093AF018C
:108940008091B20580937D078091B10580934407A3
:108950009091F705933320F181E080938802983F4E
:1089600058F0EFEFF0E0E91BF109E055FD4F808191
:10897000823310F4109288028091CA079091CB073D
:1089800097FF08C080918802882321F08091D4034A
:10899000806803C08091D4038F778093D40302C092
:1089A000109288028091CA079091CB0797FF1DC053
:1089B0008091A6028823C9F0809188028823A9F0BB
:1089C00080910801909109018F5F9F4F71F488E9B0
:1089D0009AE3909322028093210280E094EA90939C
:1089E00009018093080110928802809188028823EF
:1089F00039F080919E01823D18F4825E80939E0141
:108A00000895A5E3B0E0E7E0F5E40C9456780E9401
:108A1000753A309102013C3010F4299A01C029982E
:108A2000E090A702F090A802F9A2E8A28091440782
:108A300099270A96E816F90614F499A388A3809159
:108A4000AF02843608F05CC08091480390914903DE
:108A5000009731F00197909349038093480307C032
:108A60001092A60280917B028F7E80937B023A3027
:108A700011F0343110F0289A01C0289880917C02BE
:108A800090917D02895E9340C0F18091BC05282FB2
:108A9000332739A328A380917B02806180937B02D6
:108AA00080919805A82FBB27AA0FBB1FFD01ED5091
:108AB000F94F1182108280919905282F3327220FB8
:108AC000331FC9018D50994FFC0111821082A154AE
:108AD000B94F11961C921E922154394FD90111960B
:108AE0001C921E9280919B05E82FFF27EE0FFF1F1F
:108AF000E154F94F11821082AAC21092A602A7C2B5
:108B00008091AF028D3808F4A2C280917B028F7EE3
:108B100080937B029091BD0582E3989FC001112450
:108B20009093490380934803E8A1F9A1B9978CF089
:108B30008091A602882369F080917C0290917D0249
:108B4000FFEF8F3F9F0729F0019690937D0280935E
:108B50007C0280917C0290917D028F3F910509F00B
:108B600038F51092CB021092CC021092CD021092E6
:108B7000CE021092C7021092C8021092C90210923F
:108B8000CA021092340310923503109236031092E9
:108B900037031092D3021092D4021092D502109291
:108BA000D6028A3F910549F481E080934E0305C0C7
:108BB00080917B02826080937B0280919A05E82FEE
:108BC000FF27EE0FFF1FE154F94F8081918181351E
:108BD00091050CF441C12091A602222309F03CC169
:108BE00080919B05E82FFF27EE0FFF1FE154F94FFF
:108BF000808191818C3491050CF406C180914A03E7
:108C00008F5F80934A03893C08F426C13C3010F4FE
:108C1000299801C0299A1092A60210924A03109234
:108C20007D0210927C0230919805E32FFF27EE0F12
:108C3000FF1FE154F94F8081918187349105B4F48D
:108C400080919905E82FFF27EE0FFF1FE154F94FA0
:108C5000808191810190F081E02DF7FF03C0F095B4
:108C6000E195FF4FE734F1050CF478C041E0209125
:108C70009905A22FBB27AA0FBB1FA154B94F8D91F5
:108C80009C9111978734910544F0E32FFF27EE0F55
:108C9000FF1FE154F94F808191818D919C91873420
:108CA000910574F080919805E82FFF27EE0FFF1FC4
:108CB000E154F94F80819181873491050CF042E0B5
:108CC000E22FFF27EE0FFF1FE154F94F80819181C2
:108CD0008634910574F480919805E82FFF27EE0FF4
:108CE000FF1FE154F94F80819181873491050CF089
:108CF00043E0E22FFF27EE0FFF1FE154F94F808181
:108D000091818A5B9F4F74F480919805E82FFF272B
:108D1000EE0FFF1FE154F94F808191818734910557
:108D20000CF044E0E22FFF27EE0FFF1FE154F94F54
:108D3000808191818A5B9F4F74F480919805E82F20
:108D4000FF27EE0FFF1FE154F94F80819181863498
:108D500091050CF445E0842F0E94812E80919905A5
:108D6000E82FFF27EE0FFF1FE154F94F808191811B
:108D70000190F081E02DF7FF03C0F095E195FF4FE2
:108D80007E97BCF480919805E82FFF27EE0FFF1F18
:108D9000E154F94F808191818A5B9F4F54F481E0C7
:108DA0008093EF0388EE93E0909322028093210258
:108DB00053C00E947B2F0E942E2E80E00E946D07E0
:108DC0008091BE050E94FA738091A40580FF10C0B7
:108DD0008091130190911401875B934038F4809146
:108DE0001301909114018E5E924010F40E94D61AE5
:108DF00010921F0280E00E94C73781E080934D03EC
:108E000080931F02579A1FC080819181855B9F4F7D
:108E10000CF580914A038F5F80934A03893CE0F010
:108E20003C3010F4299801C0299A1092A6021092A1
:108E30004A0310927D0210927C0281E00E94C737A3
:108E400081E080934D030E947B2F68E770E00E94D1
:108E5000053702C020934A0380919A05E82FFF2727
:108E6000EE0FFF1FE154F94F808191818B5A9F4F84
:108E70000CF0EDC02091A602E0919B05222309F0A1
:108E8000CAC0FF27EE0FFF1FE154F94F8081918187
:108E9000855B9F4F0CF0BCC080914B038F5F80932C
:108EA0004B03893C08F4D3C020934B038091D40337
:108EB000882309F0A6C080914D03882309F4A1C03E
:108EC00081E090E090937D0280937C0281E080932A
:108ED000A6021092340310923503109236031092BA
:108EE00037031092D3021092D4021092D50210923E
:108EF000D6021092CF021092D0021092D10210929C
:108F0000D2028091B305E82EFF240027112780911B
:108F1000790790917A079C01442737FD4095542F9B
:108F2000C801B7010E94C777DC01CB018093E3023F
:108F30009093E402A093E502B093E6028091890742
:108F400090918A079C01442737FD4095542FC80112
:108F5000B7010E94C777DC01CB018093DB029093BD
:108F6000DC02A093DD02B093DE02809103039091B6
:108F70000403A0910503B09106038093DF02909350
:108F8000E002A093E102B093E2028091FB02909193
:108F9000FC02A091FD02B091FE028093D702909353
:108FA000D802A093D902B093DA021092CB021092A9
:108FB000CC021092CD021092CE021092C7021092F3
:108FC000C8021092C9021092CA0280917B02886086
:108FD00080937B029091F6058FE0989F9001112479
:108FE0008091C1029091C202820F931F68E671E0E6
:108FF0000E94067897FD01969595879580930703C3
:1090000026C08CED95E090932202809321021FC030
:1090100020934B031CC0FF27EE0FFF1FE154F94FB5
:10902000808191818C34910584F080914C038F5F15
:1090300080934C03893C58F01092A60210924C0386
:1090400010927D0210927C0202C010924C0380911B
:109050009301815080939301809193018F3F21F080
:1090600080917B0284FF82C30E94A34280915703B8
:10907000909158039C01220F331F280F391FA09095
:109080009805AA2DBB27AA0FBB1FFD01E154F94F7C
:109090009090AE05492D552780819181849FF001E4
:1090A000859FF00D949FF00D11242E0F3F1F37FF69
:1090B00002C02D5F3F4FB90175956795759567950E
:1090C000AD50B94F8091AF05082F11278D919C911C
:1090D000809F7001819FF00C909FF00C11246E0D09
:1090E0007F1D7093580360935703809159039091AB
:1090F0005A039C01220F331F280F391FB090990586
:10910000AB2DBB27AA0FBB1FFD01E154F94F808196
:109110009181849FF001859FF00D949FF00D1124A3
:109120002E0F3F1F37FF02C02D5F3F4FA9015595FE
:10913000479555954795AD50B94F8D919C91809F1E
:109140007001819FF00C909FF00C11244E0D5F1D5B
:1091500050935A03409359039E012F5F3F4F8FE175
:10916000E0ECF1E0D90101900D928A95E1F7809150
:109170008802882309F448C0CB0177FD0396DC01FF
:10918000B595A795B595A795CA0157FD0396FC011E
:10919000F595E795F595E7958091E901682F772793
:1091A00067FD70956A9F90016B9F300D7A9F300D1F
:1091B000112480919003482F552747FD50954E9FCD
:1091C000C0014F9F900D5E9F900D1124280F391FF5
:1091D00037FF02C0295F3F4F03E0359527950A9579
:1091E000E1F73093AE022093AD026E9F90016F9F26
:1091F000300D7E9F300D11244A9FC0014B9F900D72
:109200005A9F900D112444C08091F605082F112714
:10921000DE01A00FB11FFD0197819093E901020FBC
:10922000131FD8018C9180939003A92FBB27A7FD12
:10923000B095A69F9001A79F300DB69F300D1124C9
:10924000E82FFF27E7FDF095E49FC001E59F900D13
:10925000F49F900D1124280F391F37FF02C0295F9A
:109260003F4F13E0359527951A95E1F73093AE02FD
:109270002093AD02A49F9001A59F300DB49F300DA7
:109280001124E69FC001E79F900DF69F900D1124D9
:10929000281B390B37FF02C0295F3F4FF3E035959C
:1092A0002795FA95E1F73093AC022093AB028091B9
:1092B0009B05E82FFF27EE0FFF1FE154F94F808138
:1092C0009181909581959F4F9093AA028093A902D6
:1092D0008330910514F0029705C0BFEF8E3F9B07C6
:1092E00034F402969093AA028093A90204C01092CB
:1092F000AA021092A90280918C0390918D03209173
:10930000880330918903820F931FC090AD02D090E3
:10931000AE02C81AD90AD092AE02C092AD028091B4
:109320008A0390918B032091860330918703820FEB
:10933000931F0091AB021091AC02081B190B109304
:10934000AC020093AB0280919A05E82FFF27EE0F45
:10935000FF1FE154F94FE080F180E8E7F0E0EE0E06
:10936000FF1EF092A802E092A7028091A701992720
:10937000AA2797FDA095BA2FBC01CD010E943B778B
:10938000DC01CB0120E030E040E251E4BC01CD0142
:109390000E94A976DC01CB01BC01CD010E940D77B2
:1093A000DC01CB01809383078091A60180935C0749
:1093B0008091A5019927AA2797FDA095BA2FBC01F6
:1093C000CD010E943B77DC01CB0120E030E040E2A0
:1093D00051E4BC01CD010E94A976DC01CB01BC01A6
:1093E000CD010E940D77DC01CB018093370780917E
:1093F000A40180934C078091FB0380FF59C08091AA
:109400008C07813808F454C08091F403992787FDB4
:109410009095292D3327829FA001839F500D929F05
:10942000500D1124C40ED51ED092AE02C092AD02D2
:109430008091F503992787FD9095829FB001839FC6
:10944000700D929F700D1124060F171F1093AC0220
:109450000093AB028091F603282F332727FD309528
:109460008091A9029091AA02820F931F9093AA0261
:109470008093A9028091F803282F332727FD309588
:109480008091A9059927289FD001299FB00D389F69
:10949000B00D1124B0939A01A09399018091F70324
:1094A00099278E159F0524F49093A8028093A70214
:1094B0008091A7029091A80297FF04C01092A80281
:1094C0001092A7028091A40582FF02C010925C074F
:1094D0004091AD025091AE02CA0157FD03969C0126
:1094E000359527953595279537FF03C030952195FC
:1094F0003F4F809180029091810282179307B4F4CC
:10950000CA0157FF03C0909581959F4F97FD039621
:109510009595879595958795909381028093800284
:109520008536910544F084E690E001C00197909360
:109530008102809380024091AB025091AC02CA013B
:1095400057FD03969C01359527953595279537FF4F
:1095500003C0309521953F4F80917E0290917F020C
:1095600082179307B4F4CA0157FF03C09095819501
:109570009F4F97FD03969595879595958795909321
:109580007F0280937E028536910544F084E690E068
:1095900001C0019790937F0280937E0280917B02AD
:1095A00084FF08C0109281021092800210927F0204
:1095B00010927E02EB2DFF27EE0FFF1FE154F94FB3
:1095C0004091D105242F33278081918128173907B5
:1095D00044F48091F80582FF04C081E080939402F6
:1095E00013C0EB2DFF27EE0FFF1FE154F94F842F1F
:1095F00099272091D205821B91092081318128175A
:10960000390714F41092940240919905E42FFF2732
:10961000EE0FFF1FE154F94F5091D105852F992787
:1096200022273327281B390B8081918182179307CA
:1096300044F48091F80583FF04C081E08093930295
:1096400016C080919302882391F0E42FFF27EE0F3C
:10965000FF1FE154F94F8091D2059927851B91098D
:10966000208131818217930714F410929302EA2D1E
:10967000FF27EE0FFF1FE154F94F4091D105242F32
:109680003327808191812817390744F48091F805A8
:1096900080FF04C081E08093910217C08091910205
:1096A000882399F0EA2DFF27EE0FFF1FE154F94FB1
:1096B000842F99272091D205821B91092081318125
:1096C0002817390714F41092910240919805E42F5D
:1096D000FF27EE0FFF1FE154F94F5091D105852F61
:1096E000992722273327281B390B808191818217E4
:1096F000930744F48091F80581FF04C081E08093D2
:10970000920216C080919202882391F0E42FFF27E5
:10971000EE0FFF1FE154F94F8091D2059927851B69
:109720009109208131818217930714F410929202DB
:1097300080919402882319F480919302811181E031
:109740008093950280919102882321F48091920266
:10975000882351F081E08093960210929502109236
:1097600094021092930202C0809396028091950217
:10977000882321F480919602882369F08091D00596
:109780009927E8A1F9A18E179F0714F499A388A33C
:1097900081E08093BB0280917B0284FF1AC010920B
:1097A000AA021092A9021092AE021092AD0210927B
:1097B000AC021092AB029AE59093830788E78093FE
:1097C0005C079093370780934C0710929502109294
:1097D000960280914F0790915007A0915107B09148
:1097E00052072091030330910403409105035091E7
:1097F0000603820F931FA41FB51F80934F079093FA
:109800005007A0935107B09352078091570790914A
:109810005807A0915907B0915A072090FB02309049
:10982000FC024090FD025090FE02820D931DA41D8B
:10983000B51D8093570790935807A0935907B0938D
:109840005A078091460790914707A0914807B09129
:109850004907E090FF02F09000030091010310918E
:109860000203EAA2FBA20CA31DA38E0D9F1DA01F45
:10987000B11F8093460790934707A0934807B09382
:1098800049078091380790913907A0913A07B09124
:109890003B07E090F702F090F8020091F902109176
:1098A000FA02EEA2FFA208A719A78E0D9F1DA01F06
:1098B000B11F8093380790933907A0933A07B0936C
:1098C0003B07F0909602FAA6FF2029F480919502BA
:1098D000882309F460C01092F3021092F4021092EF
:1098E000F5021092F6021092EF021092F00210921E
:1098F000F1021092F20210924F071092500710924C
:109900005107109252071092570710925807109261
:10991000590710925A071092460710924707109263
:109920004807109249071092380710923907109291
:109930003A0710923B078091E3029091E402A091D4
:10994000E502B091E6028093DF029093E002A093DB
:10995000E102B093E2028091DB029091DC02A091DF
:10996000DD02B091DE028093D7029093D802A093DB
:10997000D902B093DA02109233021092320210929E
:109980009A021092990210929C0210929B020AA5D0
:10999000002309F0F2C180919502882309F0EDC1FE
:1099A0008091890590918A05815092402CF4809194
:1099B000A602882309F4E1C19090F707A090B305AF
:1099C0006091790770917A077BAB6AAB80918907C8
:1099D00090918A079DAB8CAB9FEF991609F4D9C083
:1099E000BB24CC24DD24CA01B901A60195010E9443
:1099F0003B7879018A01EAA9FBA9CF01AA2797FD43
:109A0000A095BA2FE81AF90A0A0B1B0BC201B10183
:109A1000A60195010E943B7859016A012CA93DA934
:109A2000C901AA2797FDA095BA2FA81AB90ACA0A90
:109A3000DB0A292C332427FC3094432C532CC801F7
:109A4000B701A20191010E94C77797FF04C061503E
:109A50007E4F8F4F9F4F3B014C0109E095948794B7
:109A6000779467940A95D1F7C601B501A2019101D7
:109A70000E94C77797FF04C061507E4F8F4F9F4F62
:109A80005B016C0119E0D594C794B794A7941A951B
:109A9000D1F78091800290918102813491053CF44C
:109AA00080917E0290917F0281349105D4F0D4019F
:109AB000C30197FE03C00196A11DB11D3C014D01DC
:109AC0009594879477946794D601C501D7FE03C017
:109AD0000196A11DB11D5C016D01D594C794B79489
:109AE000A79480919B05E82FFF27EE0FFF1FE154FD
:109AF000F94F808191810190F081E02DF7FF03C043
:109B0000F095E195FF4F7A97A4F0C401B30123E0EB
:109B100030E040E050E00E943B7839014A01C60144
:109B2000B50123E030E040E050E00E943B7859016D
:109B30006A018091F907282F332727FD3095432F9D
:109B4000532F261537054805590514F439014A01E4
:109B5000992787FD9095909581959F4FAA2797FD0E
:109B6000A095BA2F681679068A069B0614F43C0164
:109B70004D012A153B054C055D0514F459016A0198
:109B8000A816B906CA06DB060CF0CFC05C016D0151
:109B9000CCC0EA2CFF2400271127CA01B901A80173
:109BA00097010E943B7839014A014AA95BA9CA0181
:109BB000AA2797FDA095BA2F681A790A8A0A9B0AE4
:109BC000C201B101A80197010E943B7859016A01C5
:109BD0006CA97DA9CB01AA2797FDA095BA2FA81A39
:109BE000B90ACA0ADB0AD401C30197FE03C00F9663
:109BF000A11DB11D3C014D01F4E09594879477942B
:109C00006794FA95D1F7D601C501D7FE03C00F9628
:109C1000A11DB11D5C016D01E4E0D594C794B7941A
:109C2000A794EA95D1F780918002909181028134C6
:109C300091053CF480917E0290917F0281349105E0
:109C4000A4F0C401B30123E030E040E050E00E9402
:109C50003B7839014A01C601B50123E030E040E01C
:109C600050E00E943B7859016A0180919B05E82FE2
:109C7000FF27EE0FFF1FE154F94F80819181019082
:109C8000F081E02DF7FF03C0F095E195FF4F7A9743
:109C9000A4F0C401B30123E030E040E050E00E94B2
:109CA0003B7839014A01C601B50123E030E040E0CC
:109CB00050E00E943B7859016A0171E26716710415
:109CC000810491042CF070E2672E712C812C912C70
:109CD00080EE68168FEF78068FEF88068FEF980674
:109CE00044F460EE662E6FEF762E6FEF862E6FEFE8
:109CF000962E91E2A916B104C104D1042CF050E2D1
:109D0000A52EB12CC12CD12CA0EEAA16AFEFBA060D
:109D1000AFEFCA06AFEFDA0644F440EEA42E4FEFE1
:109D2000B42E4FEFC42E4FEFD42E8091E3029091CA
:109D3000E402A091E502B091E60286199709A8090C
:109D4000B9098093E3029093E402A093E502B093F3
:109D5000E6028091DB029091DC02A091DD02B091DD
:109D6000DE028A199B09AC09BD098093DB0290933E
:109D7000DC02A093DD02B093DE028091320290916A
:109D800033028F3F910509F008F4C4C5BAA5BB237F
:109D900009F04EC580919502882309F049C580914C
:109DA000BB02882309F044C5E091D905EBA7EE2357
:109DB00009F43EC580914F0790915007A09151073B
:109DC000B0915207B7FF04C081509F4FAF4FBF4FB4
:109DD000E92EFA2E0B2F112707FD1A95E0924F0757
:109DE000F092500700935107109352078091570744
:109DF00090915807A0915907B0915A07B7FF04C036
:109E000081509F4FAF4FBF4F892F9A2FAB2FBB274A
:109E1000A7FDBA958CA79DA7AEA7BFA780935707AC
:109E200090935807A0935907B0935A078091B305B0
:109E3000A82EBB24CC24DD242091F3023091F4021F
:109E40004091F5025091F602C601B5010E94C77714
:109E500097FF04C061507F4F8F4F9F4F672E782E22
:109E6000892E992487FC9A946092F3027092F402EE
:109E70008092F5029092F6022091EF023091F0026A
:109E80004091F1025091F202C601B5010E94C777DC
:109E900097FF04C061507F4F8F4F9F4F272E382E62
:109EA000492E552447FC5A942092EF023092F0023A
:109EB0004092F1025092F2028091EB029091EC02FA
:109EC000A091ED02B091EE02B7FF04C081509F4F08
:109ED000AF4FBF4F892F9A2FAB2FBB27A7FDBA9546
:109EE0008093EB029093EC02A093ED02B093EE020C
:109EF000D801C70186199709A809B90980934003B9
:109F000090934103A0934203B09343032091D8055B
:109F1000E22EFF2400271127BC01CD01A8019701E3
:109F20000E943B7859016A0120934F0330935003FC
:109F300040935103509352038CA59DA5AEA5BFA598
:109F400082199309A409B5098093440390934503AA
:109F5000A0934603B0934703BC01CD01A80197012C
:109F60000E943B782093530330935403409355034E
:109F700050935603D601C501D7FE04C081509F4FB0
:109F8000AF4FBF4F892F9A2FAB2FBB27A7FDBA9595
:109F900090939A028093990257FF04C021503F4F3B
:109FA0004F4F5F4FBB2757FDBA95A52F942F832F97
:109FB00090939C0280939B028091800290918102F9
:109FC00081349105DCF480917E0290917F0281348E
:109FD0009105A4F480919B05E82FFF27EE0FFF1F4A
:109FE000E154F94F808191810190F081E02DF7FFDC
:109FF00003C0F095E195FF4F7A97E4F08091F70761
:10A000008F3FC1F48091990290919A0297FD019639
:10A010009595879590939A028093990280919B02DF
:10A0200090919C0297FD01969595879590939C023F
:10A0300080939B028091460790914707A091480723
:10A04000B0914907B7FF04C081509F4FAF4FBF4F3A
:10A05000892F9A2FAB2FBB27A7FDBA958093460770
:10A0600090934707A0934807B0934907809138071A
:10A0700090913907A0913A07B0913B07B7FF04C010
:10A0800081509F4FAF4FBF4F892F9A2FAB2FBB27C8
:10A09000A7FDBA958093380790933907A0933A07A4
:10A0A000B0933B078091030390910403A0910503B3
:10A0B000B09106032AA13BA14CA15DA1281B390B3D
:10A0C0004A0B5B0B209338033093390340933A03D8
:10A0D00050933B038091FB029091FC02A091FD0202
:10A0E000B091FE02EEA0FFA008A519A5E81AF90A92
:10A0F0000A0B1B0BE0923C03F0923D0300933E03DE
:10A1000010933F0320934003309341034093420355
:10A1100050934303E0924403F092450300934603B7
:10A12000109347038091DF029091E002A091E10239
:10A13000B091E202821B930BA40BB50B8093DF025C
:10A140009093E002A093E102B093E2028091D702E3
:10A150009091D802A091D902B091DA028E199F098C
:10A16000A00BB10B8093D7029093D802A093D90291
:10A17000B093DA02FBA5FF23E1F02091B902309100
:10A18000BA02213831054CF08091140390911503E7
:10A190000196909315038093140320583F4F4CF47D
:10A1A0008091140390911503019790931503809368
:10A1B00014031092BA021092B90281E090E09093D9
:10A1C0005C0380935B03A0904003B0904103C09078
:10A1D0004203D0904303D601C501D7FE07C08827AC
:10A1E0009927DC018A199B09AC09BD09815092406D
:10A1F000A040B04034F084E090E090935C03809302
:10A200005B038091610390916203A0916303B0911D
:10A21000640320914F0730915007409151075091AE
:10A220005207821B930BA40BB50B815E914BAF4F72
:10A23000BF4F8F539C49A040B04028F08091F80751
:10A2400089310CF4FFC031E0A31630E1B30630E0F1
:10A25000C30630E0D3060CF473C080915D038823FD
:10A2600009F46AC0D601C501D7FE07C0882799271F
:10A27000DC018A199B09AC09BD099C01AD01B7FF3E
:10A2800004C021503E4F4F4F5F4F09E05595479511
:10A29000379527950A95D1F780915B0390915C03E0
:10A2A000820F931F90935C0380935B03D601C501DB
:10A2B000D7FE03C00796A11DB11D13E0B595A79564
:10A2C000979587951A95D1F780934F0390935003F4
:10A2D000A0935103B093520389589341A040B040DA
:10A2E00064F088E893E1A0E0B0E080934F0390939E
:10A2F0005003A0935103B093520320914F03309128
:10A300005003409151035091520357FF04C0215014
:10A310003F4F4F4F5F4F232F342F452F552747FD7A
:10A320005A958091990290919A02820F931F90936F
:10A330009A028093990206C081E080935D0302C077
:10A3400010925D0350E0A51650EFB5065FEFC5060D
:10A350005FEFD5060CF073C080915E03882309F48B
:10A360006AC0D601C501D7FE07C088279927DC013E
:10A370008A199B09AC09BD099C01AD01B7FF04C056
:10A3800021503E4F4F4F5F4FF9E055954795379518
:10A390002795FA95D1F780915B0390915C03820F2A
:10A3A000931F90935C0380935B03D601C501D7FE96
:10A3B00003C00796A11DB11DE3E0B595A79597953C
:10A3C0008795EA95D1F780934F0390935003A0931C
:10A3D0005103B093520388579C4EAF4FBF4F64F464
:10A3E00088E79CEEAFEFBFEF80934F03909350034D
:10A3F000A0935103B093520320914F033091500327
:10A40000409151035091520357FF04C021503F4FD8
:10A410004F4F5F4F232F342F452F552747FD5A9518
:10A420008091990290919A02820F931F90939A02C1
:10A430008093990211C081E080935E030DC0109259
:10A440005E030AC010925C0310925B0388EE93E0F7
:10A450009093BA018093B9017BA5272F3327809170
:10A460005B0390915C032817390724F430935C0355
:10A4700020935B03E091F807EE2379F02E2F33272A
:10A4800027FD309580915B0390915C032817390775
:10A4900024F430935C0320935B034091400350917C
:10A4A00041036091420370914303413851056105B6
:10A4B000710574F0809118039091190320915B034A
:10A4C00030915C03820F931F9093190380931803BC
:10A4D00040585F4F6F4F7F4F74F4809118039091F5
:10A4E000190320915B0330915C03821B930B9093C3
:10A4F00019038093180381E090E090935C038093AC
:10A500005B03A0904403B0904503C0904603D090F5
:10A510004703D601C501D7FE07C088279927DC016C
:10A520008A199B09AC09BD0981509240A040B040F6
:10A5300034F084E090E090935C0380935B0380911F
:10A54000650390916603A0916703B0916803209121
:10A550005707309158074091590750915A07821B6D
:10A56000930BA40BB50B815E914BAF4FBF4F8F5335
:10A570009C49A040B04018F0E9310CF4FFC011E054
:10A58000A11610E1B10610E0C10610E0D1060CF4EE
:10A5900073C080915F03882309F46AC0D601C501A6
:10A5A000D7FE07C088279927DC018A199B09AC09C7
:10A5B000BD099C01AD01B7FF04C021503E4F4F4F74
:10A5C0005F4F69E055954795379527956A95D1F77F
:10A5D00080915B0390915C03820F931F90935C03C7
:10A5E00080935B03D601C501D7FE03C00796A11D6A
:10A5F000B11D23E0B595A795979587952A95D1F735
:10A600008093530390935403A0935503B093560340
:10A6100089589341A040B04064F088E893E1A0E0FD
:10A62000B0E08093530390935403A0935503B093E9
:10A630005603209153033091540340915503509198
:10A64000560357FF04C021503F4F4F4F5F4F232FFA
:10A65000342F452F552747FD5A9580919B029091A5
:10A660009C02820F931F90939C0280939B0206C0D2
:10A6700081E080935F0302C010925F0330E0A31675
:10A6800030EFB3063FEFC3063FEFD3060CF073C0C5
:10A6900080916003882309F46AC0D601C501D7FE02
:10A6A00007C088279927DC018A199B09AC09BD09D5
:10A6B0009C01AD01B7FF04C021503E4F4F4F5F4F8B
:10A6C00009E055954795379527950A95D1F78091DB
:10A6D0005B0390915C03820F931F90935C038093C4
:10A6E0005B03D601C501D7FE03C00796A11DB11DAE
:10A6F00013E0B595A795979587951A95D1F780930F
:10A70000530390935403A0935503B0935603885773
:10A710009C4EAF4FBF4F64F488E79CEEAFEFBFEFA6
:10A720008093530390935403A0935503B09356031F
:10A730002091530330915403409155035091560397
:10A7400057FF04C021503F4F4F4F5F4F232F342FEF
:10A75000452F552747FD5A9580919B0290919C0269
:10A76000820F931F90939C0280939B0211C081E003
:10A77000809360030DC0109260030AC010925C03C6
:10A7800010925B0388EE93E09093BA018093B90135
:10A790005BA5252F332780915B0390915C032817DD
:10A7A000390724F430935C0320935B038091F8070E
:10A7B000882379F0282F332727FD309580915B037C
:10A7C00090915C032817390724F430935C0320939D
:10A7D0005B0340914403509145036091460370919F
:10A7E0004703413851056105710574F080911603E6
:10A7F0009091170320915B0330915C03820F931FAC
:10A80000909317038093160340585F4F6F4F7F4F0D
:10A81000CCF4809116039091170320915B03309143
:10A820005C03821B930B90931703809316030AC05B
:10A8300010929C0210929B0210929A02109299021E
:10A840001092BB0280915C07882341F410929C0215
:10A8500010929B0210929A021092990280914F07D7
:10A8600090915007A0915107B091520780936103D6
:10A8700090936203A0936303B0936403809157079E
:10A8800090915807A0915907B0915A07809365039A
:10A8900090936603A0936703B09368031092F3024A
:10A8A0001092F4021092F5021092F6021092EF024A
:10A8B0001092F0021092F1021092F2021092EB024A
:10A8C0001092EC021092ED021092EE0210924F07DD
:10A8D000109250071092510710925207109257078A
:10A8E000109258071092590710925A071092460773
:10A8F00010924707109248071092490710923807A4
:10A900001092390710923A0710923B0710923302C7
:10A91000109232020091A9021091AA02C80117FFF9
:10A9200004C088279927801B910B40976CF088EE14
:10A9300093E09093BA018093B9018091A40584FDBE
:10A9400003C081E080934E03F090B005AF2CBB2490
:10A95000CC24DD24B801882777FD8095982F9801B5
:10A9600017FF04C022273327201B310B442737FD54
:10A970004095542F0E94C7779B01AC01C601B501D9
:10A980000E94C77797FF04C061507E4F8F4F9F4F43
:10A99000F9E09595879577956795FA95D1F79B019D
:10A9A0008F2D9927809FD001819FB00D909FB00D72
:10A9B0001124CD01B7FD03969595879595958795BB
:10A9C000280F391F442737FD4095542F2093340317
:10A9D0003093350340933603509337038091D3026D
:10A9E0009091D402A091D502B091D602821B930B14
:10A9F000A40BB50B8093D3029093D402A093D502FD
:10AA0000B093D6028155934CA040B04064F080E5ED
:10AA100093ECA0E0B0E08093D3029093D402A09393
:10AA2000D502B093D6028091D3029091D402A09126
:10AA3000D502B091D602805B9C43AF4FBF4F64F408
:10AA400080EB9CE3AFEFBFEF8093D3029093D402EF
:10AA5000A093D502B093D602A090C102B090C202DA
:10AA6000A114B10409F478C18091A40583FF74C1D5
:10AA70008091030390910403A0910503B091060314
:10AA8000B7FF04C081509E4FAF4FBF4F79E0B595DF
:10AA9000A795979587957A95D1F76C0197FF04C094
:10AAA000D094C194D108D3948091FB029091FC0280
:10AAB000A091FD02B091FE02B7FF04C081509E4FED
:10AAC000AF4FBF4F69E0B595A795979587956A9564
:10AAD000D1F7BC0197FF03C0709561957F4FC616F3
:10AAE000D7060CF46B01B601D7FE02C0695F7F4F39
:10AAF0002B0153E0559447945A95E1F742E0E42E38
:10AB0000F12C4E0C5F1C0CE112E0A00EB11E750181
:10AB10000027F7FC0095102F24EE3DEFA20EB31E88
:10AB20008091850790918607A0918707B09188074B
:10AB30006090950170909601809097019090980197
:10AB4000BC01CD01A40193010E943B78E21AF30AF3
:10AB5000040B150BC801B70128E631E040E050E0D6
:10AB60000E943B78DC01CB013CE4E32E3FEFF32E67
:10AB7000E80EF91E0091B9011091BA0101151105F5
:10AB800089F539E1C316D1046CF58091B902909131
:10AB9000BA028E0D9F1D9093BA028093B9028091E4
:10ABA0004E038823F9F0C501AA2797FDA095BA2F77
:10ABB000BC01CD01A40193010E94C777DC01CB0148
:10ABC0008093850790938607A0938707B0938807A3
:10ABD000BC01CD010E943B783093C0022093BF029C
:10ABE00010924E03C70124E0880F991F2A95E1F7C0
:10ABF000B2010E940678CB01AA2797FDA095BA2F33
:10AC000020918507309186074091870750918807EA
:10AC1000280F391F4A1F5B1F209385073093860733
:10AC20004093870750938807F090AA016F2D7727EC
:10AC3000C69EC001C79E900DD69E900D112497FD13
:10AC40004F966C0195E0D594C7949A95E1F76C19ED
:10AC50007D096B0177FD7AC00115110509F06FC000
:10AC6000009180021091810280917E0290917F027A
:10AC7000080F191F17FF02C0095F1F4F83E01595CA
:10AC800007958A95E1F7005C1F4FCA01B901A4013D
:10AC900093010E943B78DA01C9012091BF023091F3
:10ACA000C002442737FD4095542F821B930BA40B01
:10ACB000B50B845E9D4FAF4FBF4FBC01CD0128E661
:10ACC00031E040E050E00E943B78DC01CB01845B46
:10ACD00090408C9DA0018D9D500D9C9D500D112488
:10ACE000CA01B8010E94067883E0F89E6001112431
:10ACF000C616D70614F4B60108C0882799278C1900
:10AD00009D09681779070CF4BC019B01442737FDA6
:10AD10004095542F8091D3029091D402A091D502F6
:10AD2000B091D602820F931FA41FB51F8093D30248
:10AD30009093D402A093D502B093D6020DC00150D7
:10AD400010401093BA010093B90106C084EF91E05E
:10AD50009093BA018093B9018091BB02882381F05E
:10AD60001092C7021092C8021092C9021092CA0231
:10AD70001092CB021092CC021092CD021092CE0211
:10AD8000709096027720F1F480915C07282F33278A
:10AD9000442755278091030390910403A091050354
:10ADA000B0910603BC01CD010E94C777DC01CB0145
:10ADB000BC01CD0128EF3AE240E050E00E943B7830
:10ADC000290102C044245524909095029920F1F461
:10ADD00080915C07282F3327442755278091FB0259
:10ADE0009091FC02A091FD02B091FE02BC01CD0148
:10ADF0000E94C777DC01CB01BC01CD0128EF3AE20C
:10AE000040E050E00E943B78190102C02224332424
:10AE10008091320790913307893C91051CF088ECB2
:10AE200090E005C088539F4F34F488E39FEF9093E0
:10AE300033078093320780913D0790913E07893C0C
:10AE400091051CF088EC90E005C088539F4F34F4C6
:10AE500088E39FEF90933E0780933D0780913F07E3
:10AE600090914007AA2797FDA095BA2F20918307BC
:10AE7000A22EBB24CC24DD24BC01CD01A60195016A
:10AE80000E94C7779B01AC018091320790913307F4
:10AE9000AA2797FDA095BA2F17E0880F991FAA1F20
:10AEA000BB1F1A95D1F7280F391F4A1F5B1F57FF89
:10AEB00004C0215C3F4F4F4F5F4FA6E0559547952B
:10AEC00037952795AA95D1F77201E20EF31EF092FD
:10AED0004007E0923F078091300790913107AA2701
:10AEE00097FDA095BA2FBC01CD01A60195010E9446
:10AEF000C7779B01AC0180913D0790913E07AA273F
:10AF000097FDA095BA2FF7E0880F991FAA1FBB1FC6
:10AF1000FA95D1F7280F391F4A1F5B1F57FF04C04E
:10AF2000215C3F4F4F4F5F4FE6E055954795379572
:10AF30002795EA95D1F78101020F131F109331076E
:10AF40000093300780917E0790917F07880F991FAB
:10AF5000AA2797FDA095BA2F2091370733274427BA
:10AF60005527BC01CD010E94C7775B016C0197FF9B
:10AF700008C08FE390E0A0E0B0E0A80EB91ECA1EA2
:10AF8000DB1E76E0D594C794B794A7947A95D1F751
:10AF900080914C07282F3327442755278091E702BB
:10AFA0009091E802A091E902B091EA02BC01CD01C2
:10AFB0000E94C777DC01CB01BC01CD0120EF35E554
:10AFC00040E050E00E943B78B501620F731F709320
:10AFD0007F0760937E0791E0E91690E1F90634F06F
:10AFE00080E090E19093400780933F0780913F0776
:10AFF000909140078050904F34F480E090EF909310
:10B00000400780933F070150104134F080E090E109
:10B0100090933107809330078091300790913107EA
:10B020008050904F34F480E090EF909331078093FC
:10B0300030076150704134F080E090E190937F07D9
:10B0400080937E0780917E0790917F078050904F7C
:10B0500034F480E090EF90937F0780937E07809197
:10B060000001482F552780911D0190911E0148171E
:10B07000590794F420911D0130911E0168A179A116
:10B08000649FC001659F900D749F900D1124B901BC
:10B090000E94F27779A368A388A199A1880F991FCC
:10B0A000880F991F99A388A34091A40540FF92C6D9
:10B0B000992009F08FC6772009F08CC6CC24DD24B6
:10B0C0004601809197029091980290936D0580932C
:10B0D0006C0520911A0330911B032115310509F0ED
:10B0E0003FC080911301909114018959934058F009
:10B0F00087B5803F20F480913602815011C081E0F5
:10B10000809374034EC08091130190911401843692
:10B11000910508F587B58031D0F0809136028F5FB8
:10B12000809336029FE0890290011124809193055B
:10B13000821B87BD8CE291E09093220280932102D2
:10B140008EE591E090931B0380931A032AC081E05F
:10B150008093730326C0709273037092740321C0AE
:10B160008091A1029091A202A091A302B091A402A9
:10B1700054E0880F991FAA1FBB1F5A95D1F78093DF
:10B18000370290933802A0933902B0933A02D092DA
:10B190003502C09234022150304030931B0320937B
:10B1A0001A032091AD0141FF24C02233D8F48091CD
:10B1B000BF0181508093BF018F3FD9F51092BC022F
:10B1C0008091A1029091A202A091A302B091A40249
:10B1D00080939D0290939E02A0939F02B093A00241
:10B1E00081E004C081E08093BC0288EC8093BF01C1
:10B1F00020C08091990190919A01820F911D209118
:10B20000A9053327829FF001839FF00D929FF00DD7
:10B210001124CF01AA2797FDA095BA2F80939D02F4
:10B2200090939E02A0939F02B093A00281E080932E
:10B23000BC028091030390910403A0910503B09197
:10B240000603E0909501F09096010091970110910E
:10B250009801BC01CD01A80197010E943B785901DA
:10B260006A018091FB029091FC02A091FD02B091D5
:10B27000FE02BC01CD01A80197010E943B78B901F3
:10B28000C5010E94F0753C01CC971CF04CE3642E84
:10B29000712CC3010E942D6A3C0180E280939401CD
:10B2A0008091BC02882309F421C480917B029927F4
:10B2B0009C012071307084FD19C46091FA0560FD15
:10B2C00004C08091A40581FD07C008A119A1309395
:10B2D0006A032093690397C180917B0281FF69C152
:10B2E0004091BB015091BC01CA010F962091A70269
:10B2F0003091A80282179307ACF5809173038823DD
:10B3000089F58091750381FF13C08D7F809375034C
:10B310008091A1029091A202A091A302B091A402F7
:10B3200080939D0290939E02A0939F02B093A002EF
:10B3300080917503816080937503241B350B2F501A
:10B34000304037FF03C0309521953F4F809169030E
:10B3500090916A03820F931F90936A03809369030D
:10B360008BE26EC0CA010F9728173907ACF58091A0
:10B370007403882389F58091750380FF13C08E7F45
:10B38000809375038091A1029091A202A091A302E3
:10B39000B091A40280939D0290939E02A0939F027D
:10B3A000B093A00280917503826080937503241B83
:10B3B000350B215F3F4F37FF03C0309521953F4F3D
:10B3C0008091690390916A03821B930B90936A03A7
:10B3D000809369038DE234C020917503822F9927F1
:10B3E00083709070892B59F12C7F209375031092F4
:10B3F0006A03109269032091A1023091A202409148
:10B40000A3025091A40220939D0230939E02409388
:10B410009F025093A00261FF06C084EF91E09093D9
:10B420002202809321028091A502882341F42333D4
:10B430003105410551051CF081E08093A5028DE3A3
:10B44000809394012091690330916A03C90137FF09
:10B4500004C088279927821B930B815092400CF4DB
:10B4600091C08091A9059927289FA001299F500D7F
:10B47000389F500D1124CA0160E075E00E940678E3
:10B48000CB01AA2797FDA095BA2F20919D0230915C
:10B490009E0240919F025091A002280F391F4A1F1F
:10B4A0005B1F20939D0230939E0240939F02509316
:10B4B000A00210926A0310926903A090A102B090BA
:10B4C000A202C090A302D090A402D601C501805070
:10B4D0009440A040B04082179307A407B5075CF4DE
:10B4E000D601C50180509C4FAF4FBF4F2817390779
:10B4F0004A075B0744F080939D0290939E02A093BD
:10B500009F02B093A0028091FA0581FF06C08BE4F0
:10B5100090E090932202809321028091AD058823D0
:10B5200089F5409197025091980257FF02C04D5FF4
:10B530005F4F559547955595479580911D01909181
:10B540001E01209100013327489FB001499F700DD3
:10B55000589F700D1124CB01B9010E940678709399
:10B56000BC016093BB01663471051CF486E490E075
:10B5700005C06739710534F086E990E09093BC010D
:10B580008093BB0180911A0390911B03892BB9F121
:10B590008091A1029091A202A091A302B091A40275
:10B5A00080939D0290939E02A0939F02B093A0026D
:10B5B00026C08091A1029091A202A091A302B09115
:10B5C000A40280599140A040B04080939D02909386
:10B5D0009E02A0939F02B093A0028091AD058823A4
:10B5E00011F0992702C088E790E09093BC01809306
:10B5F000BB0188A199A19093980280939702009132
:10B60000970210919802A090A102B090A202C0905F
:10B61000A302D090A40220919D0230919E024091FD
:10B620009F025091A0022A153B054C055D0524F0B0
:10B630008091FA0580FD9CC280911A0390911B03B2
:10B64000892B39F00091970210919802CC24DD24C7
:10B65000C9C0D601C501821B930BA40BB50B809307
:10B66000380390933903A0933A03B0933B0382309D
:10B67000E0E89E07EFEFAE07EFEFBE072CF481E0A6
:10B6800090E8AFEFBFEF09C08F5F9F47A040B04089
:10B6900064F08FEF9FE7A0E0B0E0809338039093D1
:10B6A0003903A0933A03B0933B03C0903803D09082
:10B6B00039038091AC01282F3327442755278091E7
:10B6C000380390913903A0913A03B0913B03BC0138
:10B6D000CD010E94C77797FF04C0615E7F4F8F4FF7
:10B6E0009F4F25E095958795779567952A95D1F792
:10B6F000609338037093390380933A0390933B032C
:10B7000065302EEF72072FEF82072FEF92072CF490
:10B7100084E09EEFAFEFBFEF09C0605074408040FF
:10B72000904064F080E094E0A0E0B0E080933803C3
:10B7300090933903A0933A03B0933B03809038036E
:10B7400090903903209134023091350237FF02C0C6
:10B75000295F3F4F83E0359527958A95E1F74FEFB5
:10B76000223834071CF421E83FEF05C020383105AA
:10B7700014F020E830E0C901AA2797FDA095BA2F60
:10B780002091AE01332744275527BC01CD010E94EB
:10B79000C77797FF04C06D5F7F4F8F4F9F4FB2E019
:10B7A0009595879577956795BA95D1F79B015FEF4A
:10B7B000613075071CF420E03FEF06C06F3F710554
:10B7C00019F014F020E031E080917503882341F0F6
:10B7D000C90137FD03969C01359527953595279529
:10B7E000820E931E2091AB01222309F454C0609174
:10B7F000C3027091C4028091C5029091C60297FF66
:10B8000004C061587F4F8F4F9F4FF7E09595879504
:10B8100077956795FA95D1F73327442755270E94E6
:10B82000C77797FF04C0615E7F4F8F4F9F4FE5E062
:10B830009595879577956795EA95D1F76093380345
:10B840007093390380933A0390933B036138AFEFD1
:10B850007A07AFEF8A07AFEF9A072CF480E89FEFE3
:10B86000AFEFBFEF0AC06F3F71058105910569F029
:10B8700064F080E091E0A0E0B0E080933803909322
:10B880003903A0933A03B0933B038091380390911E
:10B890003903880E991E8091A901282F33278091A2
:10B8A000FB07992787FD9095289FF001299FF00DB0
:10B8B000389FF00D11249F01F7FF02C021583F4F20
:10B8C000220F232F221F330BFFEF21383F071CF4D9
:10B8D00020E83FEF06C02F3F310519F014F020E0BB
:10B8E00031E0820E931EC401AA2797FDA095BA2FBE
:10B8F000E0909702F09098029701442737FD409519
:10B90000542FBC01CD010E94C77797FF04C061503E
:10B910007E4F8F4F9F4F59E0959587957795679507
:10B920005A95D1F7061B170B8091690390916A0312
:10B93000892B09F060C01E141F040CF05CC0960136
:10B94000D7FE03C0309521953F4F2D33310540F48C
:10B9500080916D0390916E038017910774F526C056
:10B960002C53304045E0369527954A95E1F7203134
:10B97000310510F02FE030E040916D0350916E03DF
:10B980001C141D04E4F480E190E0821B930B489F9B
:10B990009001499F300D589F300D112494E0369549
:10B9A00027959A95E1F72017310720F58091BD0181
:10B9B0009091BE0108171907F4F08C011CC0205F9C
:10B9C0003F4F8091BD019091BE01829FB001839F46
:10B9D000700D929F700D11249B0184E03695279580
:10B9E0008A95E1F74017510714F08A0104C0021745
:10B9F000130708F08901C801AA2797FDA095BA2F5F
:10BA00001DE0880F991FAA1FBB1F1A95D1F793013C
:10BA1000442737FD4095542FBC01CD010E943B784F
:10BA200020933C0330933D0340933E0350933F03E8
:10BA300000913C0310913D0380916B0390916C0346
:10BA40009C01220F331F280F391F200F311F37FF92
:10BA500002C02D5F3F4FA9015595479555954795D4
:10BA600050936C0340936B038091A505282F3327D7
:10BA7000220F331F220F331F241735076CF48091D8
:10BA80007D07282F3327220F331F220F331F205506
:10BA900030404217530724F030936C0320936B031C
:10BAA0008091FA0580FF0DC080916B0390916C032B
:10BAB000A8A1B9A18A179B0724F0B0936C03A093A7
:10BAC0006B0328A139A12E193F0937FF02C02D5F52
:10BAD0003F4F3595279535952795E0916B03F0916C
:10BAE0006C03E20FF31FF9A3E8A342C08091AD05F8
:10BAF000882301F5609197027091980277FF02C048
:10BB00006D5F7F4F759567957595679540911D01A0
:10BB100050911E0180910001282F3327649FC0019E
:10BB2000659F900D749F900D1124B9010E940678B5
:10BB3000CB0101C099279093BC018093BB018091F8
:10BB4000BB019091BC01873491051CF486E490E020
:10BB500005C08639910534F086E990E09093BC01E8
:10BB60008093BB01E8A0F9A0F0926C03E0926B0314
:10BB700080917B0299279C012270307081FF1CC14B
:10BB800080916F0390917003A0917103B091720343
:10BB90000097A105B10521F08091A5028130B1F493
:10BBA00008A119A1C801AA2797FDA095BA2F2EE0D8
:10BBB000880F991FAA1FBB1F2A95D1F780936F0387
:10BBC00090937003A0937103B09372038091A502C8
:10BBD000813019F482E08093A50228A139A1C9011E
:10BBE000AA2797FDA095BA2F9301442737FD4095CA
:10BBF000542FBC01CD010E94C777DC01CB0180939B
:10BC00003C0390933D03A0933E03B0933F03B7FFE3
:10BC100004C08150904EAF4FBF4F5C016D010DE0ED
:10BC2000D594C794B794A7940A95D1F7A0923C03F2
:10BC3000B0923D03C0923E03D0923F0360917C02DC
:10BC400070917D023FE0603A730750F580916F0379
:10BC500090917003A0917103B09172039C01AD01AA
:10BC60001AE056954795379527951A95D1F7821B77
:10BC7000930BA40BB50BA6019501F4E0220F331F23
:10BC8000441F551FFA95D1F7820F931FA41FB51FAC
:10BC900080936F0390937003A0937103B09372032A
:10BCA00060547F4118F580916F0390917003A091CB
:10BCB0007103B09172039C01AD01ECE0569547957C
:10BCC00037952795EA95D1F7821B930BA40BB50BFB
:10BCD000A601950172E0220F331F441F551F7A956C
:10BCE000D1F7820F931FA41FB51F29C08091340282
:10BCF00090913502809134029091350297FF03C0F4
:10BD0000909581959F4F843691050CF580916F0336
:10BD100090917003A0917103B09172039C01AD01E9
:10BD20006EE056954795379527956A95D1F7821B12
:10BD3000930BA40BB50B8A0D9B1DAC1DBD1D8093F1
:10BD40006F0390937003A0937103B093720380917B
:10BD50006F0390917003A0917103B09172032EE074
:10BD6000B695A795979587952A95D1F790939802C0
:10BD7000809397024091AB05442399F055279C018D
:10BD8000BA010E940678C901861B970B90936E0337
:10BD900080936D03260F371F3093BE012093BD01A2
:10BDA00019C010926E0310926D038FEF93E0909381
:10BDB000BE018093BD010EC01092A50210926F03C8
:10BDC00010927003109271031092720330939802D4
:10BDD000209397025091440758AB252F3327220F09
:10BDE000331F220F331F285D3F4F68A179A126170B
:10BDF000370714F039A328A370917D0779AB872FFB
:10BE00009927880F991F880F991F80559040A8A1E6
:10BE1000B9A18A179B0714F499A388A380916C0297
:10BE2000882321F4809102088F3FA1F080917C0249
:10BE300090917D020297C09768F4E8A1F9A11E16BF
:10BE40001F0644F481E090E090937D0280937C0291
:10BE500039A328A3E8A0F9A0F0925105E09250057B
:10BE60008091340390913503A0913603B09137034C
:10BE700012E0880F991FAA1FBB1F1A95D1F7C09017
:10BE80007E07D0907F07C81AD90A8701013A1105A9
:10BE90008CF0C701F7FC0196959587958C159D054B
:10BEA0000CF46C01909581959F4FC816D90694F4B7
:10BEB0006C0110C011E5C116D1041CF0E0E5CE2ED6
:10BEC000D12C20EBC2162FEFD20624F470EBC72E34
:10BED0007FEFD72E49A9242F3327220F331F220F9C
:10BEE000331FC90168A179A1861B970B8C159D058D
:10BEF0000CF46C0188A199A1821B930BC816D9067A
:10BF00000CF46C0180913F07909140076091AD0265
:10BF10007091AE02861B970B90934E0780934D074E
:10BF2000A0905C072091CB023091CC024091CD02D1
:10BF30005091CE02AA2041F0461A570AC201AA2700
:10BF400097FDA095BA2F04C0AA2797FDA095BA2FF8
:10BF5000280F391F4A1F5B1F2093CB023093CC025E
:10BF60004093CD025093CE028091CB029091CC02AF
:10BF7000A091CD02B091CE0281509A4FA040B04026
:10BF800064F080E09AEFA0E0B0E08093CB02909361
:10BF9000CC02A093CD02B093CE028091CB029091BF
:10BFA000CC02A091CD02B091CE0280509640AF4F0E
:10BFB000BF4F64F480E096E0AFEFBFEF8093CB0219
:10BFC0009093CC02A093CD02B093CE02B090BA056C
:10BFD0002B2D332780914D0790914E07289F70019C
:10BFE000299FF00C389FF00C11249701F7FE02C036
:10BFF000295F3F4F790153E0F594E7945A95E1F7B3
:10C000000091AF011091B0019801442737FD409590
:10C01000542F8091CB029091CC02A091CD02B0918F
:10C02000CE02BC01CD010E943B78E20EF31E90903F
:10C030009B01692D7727882799279601D7FE04C091
:10C04000222733272C193D0937FF02C02F5F3F4FAE
:10C050003595279548A159A1240F351F442737FD51
:10C060004095542F0E94C77797FF04C0615C7F4FB3
:10C070008F4F9F4F26E095958795779567952A95E1
:10C08000D1F79B016E157F050CF47B01309521954E
:10C090003F4FE216F3060CF479018091300790913E
:10C0A00031076091AB027091AC02861B970B9093A5
:10C0B0002F0780932E072091C7023091C80240912C
:10C0C000C9025091CA02AA2041F0261A370AC101BA
:10C0D000AA2797FDA095BA2F04C0AA2797FDA0957F
:10C0E000BA2F280F391F4A1F5B1F2093C7023093B6
:10C0F000C8024093C9025093CA028091C70290912E
:10C10000C802A091C902B091CA0281509A4FA040C2
:10C11000B04064F080E09AEFA0E0B0E08093C70206
:10C120009093C802A093C902B093CA028091C7023B
:10C130009091C802A091C902B091CA028050964065
:10C14000AF4FBF4F64F480E096E0AFEFBFEF809356
:10C15000C7029093C802A093C902B093CA022B2DC4
:10C16000332780912E0790912F07289FD001299F78
:10C17000B00D389FB00D11249D01B7FF02C0295F9B
:10C180003F4F5901B3E0B594A794BA95E1F79801F0
:10C19000442737FD4095542F8091C7029091C802E3
:10C1A000A091C902B091CA02BC01CD010E943B78A6
:10C1B000A20EB31E692D7727882799279601D7FEEF
:10C1C00004C0222733272C193D0937FF02C02F5FF7
:10C1D0003F4F35952795E8A1F9A12E0F3F1F442722
:10C1E00037FD4095542F0E94C77797FF04C0615CCC
:10C1F0007F4F8F4F9F4FF6E0959587957795679581
:10C20000FA95D1F79B016A157B050CF45B0130951B
:10C2100021953F4FA216B3060CF45901EEE56E2EA0
:10C22000E6E07E2E75E1872E76E0972E6BE0362EC7
:10C230005DE5452E57E0552ED4012C9112160CF0D9
:10C24000DFC0203419F408A119A11EC0E8A1F9A18A
:10C25000CF01AA2797FDA095BA2F332727FD309548
:10C26000432F532FBC01CD010E94C77797FF04C015
:10C27000615C7F4F8F4F9F4F46E0959587957795EF
:10C2800067954A95D1F78B01F4012181203419F487
:10C290000E0D1F1D22C0203C19F40E191F091DC0D0
:10C2A000C701AA2797FDA095BA2F332727FD309500
:10C2B000432F532FBC01CD010E94C77797FF04C0C5
:10C2C000615C7F4F8F4F9F4F36E0959587957795AF
:10C2D00067953A95D1F7060F171FF4012281203494
:10C2E00019F40A0D1B1D22C0203C19F40A191B0960
:10C2F0001DC0C501AA2797FDA095BA2F332727FD9A
:10C300003095432F532FBC01CD010E94C77797FF73
:10C3100004C0615C7F4F8F4F9F4F26E095958795B6
:10C32000779567952A95D1F7060F171FF40123819A
:10C33000203419F40C0D1D1D22C0203C19F40C19D9
:10C340001D091DC0C601AA2797FDA095BA2F332746
:10C3500027FD3095432F532FBC01CD010E94C77795
:10C3600097FF04C0615C7F4F8F4F9F4FB6E095955C
:10C37000879577956795BA95D1F7060F171FD20164
:10C380008D919C91801791075CF4BC01600F711F27
:10C3900077FF02C06F5F7F4F8B011595079504C033
:10C3A000000F111F081B190BB8A98B2F9927880F95
:10C3B000991F880F991F8017910754F4E9A98E2FB0
:10C3C0009927880F991F880F991F081719070CF0D4
:10C3D0008C01C80117FD03969595879595958795CE
:10C3E000F3018183880F991F880F991F9801281BDB
:10C3F000390BC901880F8283D2010D931C9303C0AE
:10C40000F301118212823A9402E010E0400E511EB4
:10C4100024E030E0820E931E48E050E0640E751E6A
:10C4200037FE0ACFE2E1CB5C0C94727880918203F4
:10C4300090918303A0918403B091850380937A0344
:10C4400090937B03A0937C03B0937D0380917E0344
:10C4500090917F03A0918003B09181038093760334
:10C4600090937703A0937803B09379030895109283
:10C470008D0310928C0310928B0310928A030895FF
:10C4800084B1806A84B93D9A82E58CBD1DBC459A11
:10C4900081E080938F078AEA8093A00783E88093E6
:10C4A000A1078AE08093A2071092A4071092A30725
:10C4B0001092A6071092A5071092FA071092C207D1
:10C4C000089530918F07332309F085C00DB407FE1E
:10C4D00082C084E080932002459A2EB5809191031A
:10C4E00099278130910589F0823091051CF4892BC0
:10C4F00021F03EC00297B9F03BC03093C1072093B2
:10C5000092032138A9F581E008C0253549F48091CE
:10C510009203820F8093920382E08093910328C05C
:10C520003093910325C08091C107E82FFF27E35284
:10C53000F84F20838F5F8093C107909192038A31D7
:10C54000A0F0291769F48AE1ADEDB7E0E3ECF7E07C
:10C550000D9001928A95E1F781E08093C20702C0B5
:10C560003093C2071092910303C0920F90939203ED
:10C5700020919F07203208F028C045980000000055
:10C5800000000000000000000000000000000000AB
:10C59000000000000000000000000000000000009B
:10C5A000000000000000000000000000E09198077B
:10C5B000F0919907E20FF11D80818EBD8091BF0738
:10C5C0009081890F8093BF0703C081E080938F071C
:10C5D0002F5F20939F070895EF92FF920F931F9371
:10C5E0008091B3059927880F991F880F991F7C01A7
:10C5F0000027F7FC0095102F80910303909104030E
:10C60000A0910503B0910603BC01CD01A8019701DB
:10C610000E943B783093A4072093A3078091FB02EC
:10C620009091FC02A091FD02B091FE02BC01CD01EF
:10C63000A80197010E943B783093A6072093A50795
:10C640002091850730918607409187075091880790
:10C65000DA01C901E3E0880F991FAA1FBB1FEA9501
:10C66000D1F7820F931FA41FB51F820F931FA41F22
:10C67000B51F2091950130919601409197015091FD
:10C680009801BC01CD010E943B783093AC07209308
:10C69000AB078091140390911503209142023091D1
:10C6A0004302821B930B9093B2078093B107E091F2
:10C6B0000A03F0910B038091540790915507BF0135
:10C6C0000E940678CB019B01220F331F220F331FDC
:10C6D000280F391F280F391F37FF02C02D5F3F4F2A
:10C6E00035952795359527953093A8072093A7076B
:10C6F0008091810790918207BF010E9406789B017B
:10C70000220F331F220F331F260F371F260F371F0D
:10C7100037FF02C02D5F3F4F3595279535952795FB
:10C720003093AA072093A90710920B0310920A03D3
:10C7300010925507109254071092820710928107A9
:10C740008091A20799278D30910509F466C08E303B
:10C7500091055CF48B30910509F48EC08C30910505
:10C760000CF00FC10A9761F0A8C18F30910509F450
:10C770007CC18F3091050CF45CC1409799F19DC14B
:10C78000809190028093B30780918F028093B407C9
:10C7900080918E028093B50780918D028093B607B9
:10C7A00080918C028093B70780918B028093B807A9
:10C7B00080918A028093B907809189028093BA0799
:10C7C00080917B028093BB0780917B02837F809363
:10C7D0007B020E947B2F8093BC078091070380938C
:10C7E000BD076BC18091FC079091FD079093B40742
:10C7F0008093B30780910008909101089093B60749
:10C800008093B50780911D0190911E018093B70719
:10C81000809100018093B80750C18091E505809315
:10C82000B3078091E6058093B4078091E705809374
:10C83000B5078091E8058093B6078091E90580935C
:10C84000B7078091ED058093B8078091EE0580933E
:10C85000B9078091EF058093BA078091F205809324
:10C86000BB078091F0058093BC078091F105809310
:10C87000BD078091F305DAC0F89480919A05E82FFE
:10C88000FF27EE0FFF1FE154F94F0190F081E02DDB
:10C89000E038F1051CF0EFE7F0E006C02FEFE138DB
:10C8A000F20714F4E1E8FFEFE093B30780919B05F2
:10C8B000E82FFF27EE0FFF1FE154F94F0190F081A1
:10C8C000E02DE038F1051CF0EFE7F0E006C06FEF77
:10C8D000E138F60714F4E1E8FFEFE093B407809144
:10C8E0009905E82FFF27EE0FFF1FE154F94F019044
:10C8F000F081E02DE038F1051CF0EFE7F0E006C034
:10C900008FEFE138F80714F4E1E8FFEFE093B507A3
:10C9100080919805E82FFF27EE0FFF1FE154F94F94
:10C920000190F081E02DE038F1051CF0EFE7F0E038
:10C9300006C02FEFE138F20714F4E1E8FFEF789436
:10C94000E093B6078091B0028093B7078091B1025F
:10C950008093B8078091B2028093B9078091B302A7
:10C960008093BA078091B4028093BB078091B5028F
:10C970008093BC078091B6028093BD078091B70277
:10C9800055C08091EF03863018F01092EF0385E0D8
:10C990008093B3078091F4058093B4078091A1023E
:10C9A0009091A202A091A302B091A402BC01CD017A
:10C9B00025E030E040E050E00E943B783093B6073D
:10C9C0002093B50780919D0290919E02A0919F02B5
:10C9D000B091A002BC01CD0125E030E040E050E084
:10C9E0000E943B783093B8072093B7078091EA05FF
:10C9F0008093B9078091EB058093BA078091EC058D
:10CA00008093BB078091AF028093BC078091BF06E3
:10CA10009091C0068093BD0780915005909151057B
:10CA200097FD039695958795959587958093BE0775
:10CA300044C01092B30780E58093B40783E08093ED
:10CA4000B5078EE08093B607809102018093B70707
:10CA50008091D4038093B8078091D5038093B90760
:10CA60008091D6038093BA0728C08091CC0580932B
:10CA7000B3078091F9058093B4078091A101809359
:10CA8000B5078091C5058093B6078091C605809350
:10CA9000B7078091C7058093B8078091A001809364
:10CAA000B9078091C9058093BA078091CA05809320
:10CAB000BB078091CB058093BC078091C207882378
:10CAC00009F4CFC08AEF8093E8014091C4075091E8
:10CAD000C507CA0181509E4F8F5F9340B0F42091EB
:10CAE000C6073091C707C90181509E4F8F5F9340A1
:10CAF00060F48091A40585FF08C050938D03409396
:10CB00008C0330938B0320938A038091CA07909102
:10CB1000CB0721E08936920724F49093C2028093D8
:10CB2000C1028091C1029091C2022091BF02309156
:10CB3000C002821B930B845E9D4F68E671E00E94E9
:10CB40000678845B90409093BE028093BD02209152
:10CB5000CE073091CF078091210290912202821757
:10CB6000930740F48091EF03882321F4309322024D
:10CB7000209321028091C30799278836910549F1B6
:10CB80008936910524F48736910531F072C08936D3
:10CB9000910509F445C06DC08091D0078093F707D7
:10CBA0008091D1078093F9078091D2078093F8078D
:10CBB0008091D3078093FA078091D4078093FB0775
:10CBC0008091D5078093E9018091D60780939003E7
:10CBD00050C08091D00780939A078091D1078093AD
:10CBE0009B078091D20780939C078091D307809305
:10CBF0009D078091D40780939E0780914005909176
:10CC0000D507892B809340059091D60790938E038A
:10CC10008091410583709C70892B8093410529C0C8
:10CC20008091D007809390078091D10780939107DE
:10CC30008091D207809392078091D30780939307C6
:10CC40008091D4079091D50790939507809394078E
:10CC50008091D6079091D707909397078093960776
:10CC600008C010928D0310928C0310928B031092C7
:10CC70008A031F910F91FF90EF90089580918F0785
:10CC8000882309F43BC0459880EA97E09093990780
:10CC90008093980790918F03E92FFF27E152FE4F71
:10CCA0009F5F90938F0380818093A207993010F04B
:10CCB00010928F0310928F070E94EC6281E08093A4
:10CCC0009F070000000000000000000000000000BE
:10CCD0000000000000000000000000000000000054
:10CCE0000000000000000000000000000000000044
:10CCF00000008091A0078093BF078EBD089587B183
:10CD00008C6087B9429843981092940380E880938E
:10CD1000EB01109293038093EA01089580919903A7
:10CD20008150809399038F3F09F0F4C094E0909371
:10CD3000990380917B02807BE1F08091E305882359
:10CD400049F080919C03882311F49093940381E02F
:10CD500080939C038091E4058823B9F080919D0322
:10CD6000882319F484E08093930381E080939D03EA
:10CD70000CC080939C0380939D038091DF0580937A
:10CD80009A038091E10580939B0380919C03882303
:10CD900009F040C08091F805282F332724FF07C0F1
:10CDA0008091A602882319F425FD4DC04EC09091B4
:10CDB000E005983F50F0809156078D3D30F080910E
:10CDC0009A0388230CF43FC040C0983F48F08091FC
:10CDD00056078A3028F480919A038823B4F133C02F
:10CDE000809194038150809394038F3F79F58091D3
:10CDF00056078150809394038091EB01813011F4A8
:10CE000080E801C086958093EB018091EB019091C1
:10CE10009A0317C0809194038150809394038F3FAD
:10CE2000A9F489E0809394038091EB01813011F49F
:10CE300080E801C086958093EB018091EB01909191
:10CE4000E305892311F0429A01C0429880919D0325
:10CE5000882309F043C08091F805282F332724FF49
:10CE600007C08091A602882319F426FD50C034C063
:10CE70009091E205983F50F080917C078D3D30F015
:10CE800080919B0388230CF442C026C0983F48F051
:10CE900080917C078A3028F480919B038823E4F0FA
:10CEA00036C0809193038150809393038F3F91F517
:10CEB00080917C078150809393038091EA018130B7
:10CEC00011F480E801C086958093EA018091EA011F
:10CED00090919B038923D9F44398089580919303FB
:10CEE0008150809393038F3FA9F489E0809393034B
:10CEF0008091EA01813011F480E801C08695809329
:10CF0000EA018091EA019091E405892311F0439AA6
:10CF10000895439808954FB724E130E0F894809144
:10CF2000C9008F778093C9008091C9008F7B80935F
:10CF3000C9008091C9008F7D8093C9005A9A529888
:10CF40005B9A539A832F99278093CD002093CC002E
:10CF50008091C80082608093C80080E18093C900FE
:10CF60008091CA008F778093CA008091CA008F7B1E
:10CF70008093CA008091CA008F7D8093CA008091FF
:10CF8000CA008F7E8093CA008091CA00877F8093F9
:10CF9000CA008091C9008B7F8093C9008091CA002C
:10CFA00084608093CA008091CA0082608093CA0026
:10CFB0008091C80087FF03C08091CE00F9CF809197
:10CFC000C90080688093C9004FBF0895FF920F93F6
:10CFD0001F93CF93DF9380E197E20E948216EC01CA
:10CFE000FF248091C9008F778093C9008091C90088
:10CFF0008F7E8093C9005A988FE39AE09F938F9316
:10D000000FE512E11F930F93E091BB03F091BC0376
:10D0100009950F900F900F900F9002C04A996CC025
:10D02000CE010E948B168823C9F3E091BB03F091D7
:10D03000BC03FF2009F468C085E79AE09F938F93B3
:10D040001F930F930995529A0F900F900F900F9086
:10D05000CE010E948B168823D9F383E690E05A9A7A
:10D06000019797FFFCCF8FE891E05A98019797FFBF
:10D07000FCCF89E090E05A9A019797FFFCCF89E0B6
:10D0800090E05A98019797FFFCCF8FE891E05A9A69
:10D09000019797FFFCCF8FE891E05A98019797FF8F
:10D0A000FCCF89E090E05A9A019797FFFCCF89E086
:10D0B00090E05A98019797FFFCCF8FE891E05A9A39
:10D0C000019797FFFCCF8FE891E05A98019797FF5F
:10D0D000FCCF89E090E05A9A019797FFFCCF89E056
:10D0E00090E05A98019797FFFCCF8FE891E05A9A09
:10D0F000019797FFFCCF13C08AE590E00E9482164B
:10D10000EC0191E0F92E91CF8BE79AE09F938F93FA
:10D110001F930F9309950F900F900F900F905298B7
:10D120005A980E948B67E5E0CDB7DEB70C947F7804
:10D13000EF92FF920F931F93CF93DF93482F00E05E
:10D1400010E08091EC01813061F41092EC0184E4F4
:10D1500080939E031092A00310929F031092A1034C
:10D160002BC180919E03882319F421E030E001C097
:10D17000980190919F03992371F4232B11F081E082
:10D1800010C084E480939E039093A00390939F0328
:10D190009093A103FAC0913069F4232B09F0EBC0FE
:10D1A00082E080939F038091A0038F5F8093A00310
:10D1B00083E0E9C09230D1F4232B09F0DCC083E096
:10D1C00080939E034093A1039091A003923039F481
:10D1D0001092A20347FF03C081E08093A20383E083
:10D1E00080939F039F5F9093A003CFC0933009F07B
:10D1F000C2C0232B09F0BFC090939E0382E08093AE
:10D200009F038091A0038F5F8093A0032091A103CF
:10D21000822F9927782F6627842F9927682B792BBF
:10D220008091BE05813049F47370CB0180509240EB
:10D2300063E070E00E94067817C0823061F4777076
:10D24000CB018050944066E070E00E9406782695FD
:10D25000269526950BC0737068567140CB0177FDFB
:10D260000196BC017595679526952695022F112785
:10D270000F7010700F5F1F4F0D30110508F074C054
:10D280007801E00EF11EF701E154F94F80819181A0
:10D290009B01281B390BC90137FF03C0909581956D
:10D2A0009F4F069794F48091AF02883C30F48091B0
:10D2B000AF02865F8093AF0208C088EC8093AF0214
:10D2C00080916F008F7D80936F00F701E154F94FDB
:10D2D000808191819C01220F331F280F391F260F57
:10D2E000371F37FF02C02D5F3F4FE901D595C79526
:10D2F000D595C795CB0101968C179D0714F42197FE
:10D3000006C061507040C617D7070CF42196809173
:10D31000AF02843BD0F0F701E154F94F8081918155
:10D32000FE01E81BF90BCF0163E070E00E94067874
:10D33000CB01880F991F860F971F23EF36E0E20E6F
:10D34000F31EF7019183808307C023EF36E0E20EDE
:10D35000F31EF70111821082000F111F0154194FA3
:10D36000F801D183C08311C00231110570F081E052
:10D370008093EC010AC081E08093EC011092A0033D
:10D380001092A20384E480939E038091A0038031D5
:10D3900098F08091A203882331F48091EC018823D6
:10D3A00011F4809393011092A0031092A2031092A3
:10D3B0009F0384E480939E03E6E0CDB7DEB70C9430
:10D3C0007E78CF93FC0197FF05C0CFEFF095E195F4
:10D3D000FF4F01C0C1E028E631E0CF01B9010E9452
:10D3E0000678FC018B35910554F08B5590408A35B9
:10D3F000910538F484EB90E08E1B9F0BFC0141E01B
:10D400000DC0CF01855B90408A35910518F4E45B2F
:10D41000F04003C02E1B3F0BF9014FEFEE0FFF1F33
:10D42000EA57F54F259134918C2F992787FD9095D8
:10D43000289FB001299F700D389F700D1124842FF3
:10D44000992787FD9095689FA001699F500D789F4F
:10D45000500D1124CA01CF9108952AE530E0281B10
:10D46000390BC9010E94E1690895CF93DF9380E0F1
:10D470000E94966F80911D0190911E016AE070E0FC
:10D480000E9406789F938F9380911D0190911E01B9
:10D490006AE070E00E9406787F936F9384E59BE0DA
:10D4A0009F938F93C9E8DFE6DF93CF93E091BB03AF
:10D4B000F091BC0309952DB73EB7285F3F4F2DBFB4
:10D4C0008091E8018823B9F186E00E94966F8091EF
:10D4D0009407909195076AE070E00E94F2777F933D
:10D4E0006F938FED90E09F938F938091850790913C
:10D4F0008607A0918707B091880720919501309108
:10D5000096014091970150919801BC01CD010E9474
:10D510003B783F932F938DE59BE09F938F93DF9311
:10D52000CF93E091BB03F091BC0309958DB79EB7F3
:10D530000A968DBF12C086E00E94966F89E69BE036
:10D540009F938F93DF93CF93E091BB03F091BC0344
:10D5500009950F900F900F900F9080918E03882364
:10D56000C1F086E00E94966F80918E0399279F9369
:10D570008F9380E79BE09F938F93DF93CF93E0910E
:10D58000BB03F091BC0309952DB73EB72A5F3F4F0F
:10D590002DBF80E10E94966F8091F3019091F4017C
:10D5A0006CE370E00E94F2779F938F938091F30178
:10D5B0009091F4016CE370E00E94F2777F936F9397
:10D5C00080910008909101089F938F938BE79BE0D7
:10D5D0009F938F93C9E8DFE6DF93CF93E091BB037E
:10D5E000F091BC0309958091A4052DB73EB7265F45
:10D5F0003F4F2DBF80FF29C08AE10E94966F809126
:10D60000940199279F938F938091A1029091A202F8
:10D61000A091A302B091A402BC01CD0124E630E0A8
:10D6200040E050E00E943B783F932F9388E89BE0D6
:10D630009F938F93DF93CF93E091BB03F091BC0353
:10D6400009958DB79EB708968DBFDF91CF9108954C
:10D65000CF93DF9380E00E94966F80917D0699279B
:10D6600087FD90959F938F9380917506992787FDED
:10D6700090959F938F9380916D06992787FD909544
:10D680009F938F9380916506992787FD90959F932F
:10D690008F938FE89BE09F938F93C9E8DFE6DF933A
:10D6A000CF93E091BB03F091BC03099580E10E9408
:10D6B000966F2DB73EB7245F3F4F2DBF80919D06DB
:10D6C000992787FD90959F938F9380919506992731
:10D6D00087FD90959F938F9380918D06992787FD65
:10D6E00090959F938F9380918506992787FD9095BC
:10D6F0009F938F938FE99BE09F938F93DF93CF93BB
:10D70000E091BB03F091BC030995809196052DB77C
:10D710003EB7245F3F4F2DBF853098F480E10E94D3
:10D72000966F8FEA9BE09F938F93DF93CF93E09167
:10D73000BB03F091BC0309950F900F900F900F90D1
:10D7400018C08730B0F488E10E94966F8FED90E0AA
:10D750009F938F9380EC9BE09F938F93DF93CF9366
:10D76000E091BB03F091BC0309958DB79EB7069677
:10D770008DBFDF91CF9108950F931F9380E00E949A
:10D78000966F2AE030E08091FC079091FD07B90187
:10D790000E94F2779F938F938091FC079091FD07F1
:10D7A000B9010E94F2777F936F9380911D01909150
:10D7B0001E01B9010E9406789F938F9380911D01ED
:10D7C00090911E01B9010E9406787F936F9389ECB6
:10D7D0009BE09F938F9309E81FE61F930F93E091BF
:10D7E000BB03F091BC03099580E10E94966F8DB751
:10D7F0009EB70C968DBF80910008909101089F9371
:10D800008F938091FE079091FF079F938F938CEDEC
:10D810009BE09F938F931F930F93E091BB03F09135
:10D82000BC0309958DB79EB708968DBF1F910F91C8
:10D8300008950F931F93CF93DF938091E801C9E878
:10D84000DFE6882309F478C080E00E94966F80911B
:10D85000910799279F938F938091930799279F937F
:10D860008F9388EE9BE09F938F938E01DF93CF93EE
:10D87000E091BB03F091BC0309958DB79EB7089664
:10D880008DBF80919207833031F48CE00E94966FB7
:10D8900087EF9BE005C08CE00E94966F8CEF9BE0C9
:10D8A0009F938F93DF93CF93E091BB03F091BC03E1
:10D8B00009950F900F900F900F908091900781FF26
:10D8C00012C08CE00E94966F81E09CE09F938F9342
:10D8D0001F930F93E091BB03F091BC0309950F9048
:10D8E0000F900F900F9080E10E94966F8FED90E067
:10D8F0009F938F9380919607909197079F938F9313
:10D9000080919407909195076AE070E00E94F27709
:10D910007F936F9386E09CE09F938F9389E89FE6C7
:10D920009F938F93E091BB03F091BC0309958DB752
:10D930009EB70A968DBF12C082E00E94966F86E164
:10D940009CE09F938F93DF93CF93E091BB03F09183
:10D95000BC0309950F900F900F900F90DF91CF911E
:10D960001F910F910895CF93C82F2091A303209367
:10D97000A40399278F32910509F1803391051CF496
:10D980004F97A1F02CC08F34910501F18F3891058C
:10D9900031F5222319F481E090E038C086E0289F19
:10D9A000F0011124E45CF44F849117C086E0289FB5
:10D9B000F0011124E35CF44F84910FC086E0289FAE
:10D9C000F0011124E25CF44F849107C086E0289FA7
:10D9D000F0011124E15CF44F84918093A3039091B2
:10D9E000A3038091A4039813C0E00E949C6F9091C0
:10D9F000A30386E0989FF0011124E05CF44F259189
:10DA000034918C2FF901099580E090E0CF91089531
:10DA10001092FD071092FC07109201081092000866
:10DA20001092FF071092FE07109202088AE090E021
:10DA30000E9482169093A6038093A5030895CF9326
:10DA4000DF938091A5039091A6030E948B168823F3
:10DA500009F4AFC08091A5039091A6030A96909314
:10DA6000A6038093A503E0E0F0E09F0190E05FEF64
:10DA7000AEE5B6E04BE0ED018B8187FF0BC09F5F09
:10DA80008D81E80FF11D8981280F311D8E81851749
:10DA900008F4582F4150189647FFEDCF50930208D5
:10DAA000232B41F52091AB033091AC034091AD03A2
:10DAB0005091AE03BB27A52F942F832F9093AA03D9
:10DAC0008093A903AA27BB27281B390B4A0B5B0BA2
:10DAD000CF01AA27BB27280F391F4A1F5B1F20939E
:10DAE000AB033093AC034093AD035093AE03E5E03A
:10DAF000F0E013C02091A9033091AA032E173F072D
:10DB000018F4E21BF30B02C0E0E0F0E0892F992744
:10DB1000880F991FE80FF91F3596F093FD07E093E2
:10DB2000FC07EF3FF10578F480911D0190911E01F3
:10DB30008E9F90018F9F300D9E9F300D1124C90143
:10DB400064E670E013C0CF0196958795969587950A
:10DB500020911D0130911E01289FA001299F500D89
:10DB6000389F500D1124CA0169E170E00E94F277DC
:10DB70007093FF076093FE072091A7033091A803DD
:10DB80002E0F3F1F3093A8032093A7035EE021319F
:10DB9000350778F0809100089091010801969093E4
:10DBA00001088093000820513E403093A803209341
:10DBB000A703DF91CF9108954FB720E430E0F894A8
:10DBC0008091C9008F778093C9008091C9008F7BB5
:10DBD0008093C9008091C9008F7D8093C9005A9AB3
:10DBE00052985B9A539A832F99278093CD00209364
:10DBF000CC008091C80082608093C80088E1809347
:10DC0000C9008091CA008F778093CA008091CA00B2
:10DC10008F7B8093CA008091CA008F7D8093CA0059
:10DC20008091CA008F7E8093CA008091CA00877F4E
:10DC30008093CA008091C9008B7F8093C900809136
:10DC4000CA0084608093CA008091CA008260809379
:10DC5000CA008091C80087FF03C08091CE00F9CF31
:10DC60008091C90080688093C9004FBF08950F93C9
:10DC70001F93CF93DF93482F4F5F893108F089C0FE
:10DC80008091BE06841710F44093BE06CB018353E7
:10DC90009B4268E170E00E940678A42FBB27FD013B
:10DCA000EA0FFB1FE154F94F808191819B01281BF2
:10DCB000390BC90137FF03C0909581959F4F069797
:10DCC00094F48091AF02883C30F48091AF02865F7B
:10DCD0008093AF0208C088EC8093AF0280916F0000
:10DCE0008F7D80936F00FD01EA0FFB1FE154F94F18
:10DCF000808191819C01220F331F280F391F260F2D
:10DD0000371F37FF02C02D5F3F4FE901D595C795FB
:10DD1000D595C795CB0101968C179D0714F42197D3
:10DD200006C061507040C617D7070CF42196809149
:10DD3000AF02843BD8F08D010A0F1B1FF801E1549C
:10DD4000F94F80819181FE01E81BF90BCF0163E05F
:10DD500070E00E940678CB01880F991F860F971FED
:10DD60000D50194FF8019183808307C0AA0FBB1F84
:10DD7000AD50B94F11961C921E92E42FFF27EE0F63
:10DD8000FF1FE154F94FD183C083443011F4109246
:10DD90009301DF91CF911F910F910895CF93DF935E
:10DDA00020910308822F9927807F9070409709F077
:10DDB0006CC02F3109F046C0809104088093B303F2
:10DDC000209106082093B503809107088093B4033F
:10DDD000822F99279093C0068093BF06222309F0D3
:10DDE00054C080919805282F3327220F331FF90143
:10DDF000ED50F94F1182108280919905A82FBB2711
:10DE0000AA0FBB1FFD01ED50F94F118210828091C6
:10DE10009B05E82FFF27EE0FFF1FCF018D50994F75
:10DE2000EC01198218822154394FE90119821882B4
:10DE3000A154B94F11961C921E92E154F94F1182D0
:10DE4000108223C0C22FCF70CA30F8F4809104082A
:10DE500080932D088091050880932C0880910608F6
:10DE600080932F088091070880932E0860912C08DA
:10DE700070912D088C2F0E94376E60912E08709142
:10DE80002F088C2F8F5F0E94376EDF91CF910895FE
:10DE9000CF93C82F8F3F49F48091B6038F3F29F469
:10DEA0001092B8031092B70332C02091B803222316
:10DEB00039F4CF3111F485E001C084E08093B903D7
:10DEC0008091B9039091B7038217A0F4892F8095B0
:10DED0008093B7038F3F19F48EEF8093B70380913F
:10DEE000B703C81711F40E94CE6E1092B8031092B7
:10DEF000B7030BC0E22FFF27ED5FF74FC0832F5F03
:10DF00002093B8039C0F9093B703C093B603CF91AF
:10DF100008959091B203933240F4E92FFF27E75F11
:10DF2000F74F80839F5F9093B2030895833218F474
:10DF30008D5F8093B203089590E2ECE0F8E08FE10A
:10DF40009193815087FFFCCF0895CF93CFB723E003
:10DF500031E0F8948091C9008F778093C900809157
:10DF6000C9008F7B8093C9008091C9008F7D809309
:10DF7000C9005A9A52985B9A539A832F9927809393
:10DF8000CD002093CC008091C80082608093C800AF
:10DF900088E18093C9008091CA008F778093CA007E
:10DFA0008091CA008F7B8093CA008091CA008062F2
:10DFB0008093CA008091CA0080618093CA008091DA
:10DFC000CA0088608093CA008091C90084608093F1
:10DFD000C9008091CA0084608093CA008091CA0001
:10DFE00082608093CA008091C80087FF03C080913F
:10DFF000CE00F9CF8091C90080688093C9008091DC
:10E00000C90080648093C9000E949C6FCFBFCF91EC
:10E010000895282F99278F709070892B31F42095BF
:10E020008091B103822B8093B10308958091EF0119
:10E03000882309F441C080917B0285FF0AC082E9F0
:10E040008093090883E280930A0885E580930B0892
:10E0500002C0109209088091F0018F3071F4809114
:10E06000B1030E94B36C882341F081E980930908D1
:10E0700080930A0881E380930B081092EF0180914E
:10E08000C80085FFFCCF8091C9008F7E8093C900B6
:10E090008091C9008E7F8093C900809109088823F0
:10E0A00011F48EEF01C08EE78093CE008091B10312
:10E0B0008093F0011092B10308951F920F920FB652
:10E0C0000F9211248F939F93EF93FF939091EF0101
:10E0D000992309F040C08091BA03882361F48091AC
:10E0E0000908882311F483E003C0813999F481E0A1
:10E0F0008093BA030FC0833099F480910908882374
:10E1000049F0909309088091C9008E7F8093C900DF
:10E110008EEF1EC08091C90081608093C9000EC03F
:10E12000833261F48091C9008E7F8093C9008FEFA4
:10E130008093CE0081E08093EF0114C08091BA03F8
:10E14000E82FFF27E75FF74F8F5F8093BA03808147
:10E150008093CE0007C01092BA038091C9008061FD
:10E160008093C900FF91EF919F918F910F900FBE07
:10E170000F901F901895EF92FF920F931F93CF93DC
:10E18000DF937C018B01EA01452B39F0F801819185
:10E190008F01F70109952197C9F7E6E0CDB7DEB702
:10E1A0000C947E78EF92FF920F931F93CF93DF939F
:10E1B0007C018B01EA01452B41F0F8010F5F1F4FF5
:10E1C0008491F70109952197C1F7E6E0CDB7DEB755
:10E1D0000C947E780F931F93CF938C01C62F161645
:10E1E00034F480E2F8010995C1501C16D4F3CF91A4
:10E1F0001F910F9108950F931F93CF938C01C62FFA
:10E20000161634F480E3F8010995C1501C16D4F3B6
:10E21000CF911F910F910895A5E3B0E0E2E1F1E7FE
:10E220000C9456782E96EEADFFAD2E978824992447
:10E2300054018091B003882321F42C961FAE1EAEAA
:10E240002C975EE4452E512C4C0E5D1E6F01B601DD
:10E2500005C0153239F00894C11CD11CF601149187
:10E260001123B9F7A601461B570B31F02C968EAD42
:10E270009FAD2C970E94D270112309F46AC20894B2
:10E28000C11CD11CFF24FDA6FCA64FEFE42EF9A66D
:10E29000F6010894C11CD11C1491153721F0812F6F
:10E2A00080628837B1F4F0FE0AC0F20124E030E069
:10E2B000420E531E80809180A280B3800AC0F2017A
:10E2C00042E050E0440E551E808191814C01AA2409
:10E2D000BB24103221F489A58823D1F61DC0133246
:10E2E00019F458E0F52AD4CF1A3211F01D3291F406
:10E2F0001A3259F4F20182E090E0480E591EE08192
:10E30000ECA7EE232CF6E195ECA790E1F92AAFED0E
:10E31000FA22BECF1B3211F419A7BACF1E32C1F5B3
:10E32000F6010894C11CD11C14911A3279F4F2013F
:10E3300022E030E0420E531E408151813FEF4F3FBB
:10E34000530714F44FEF5FEFE42EA2CF40E050E00C
:10E35000812F80538A30A0F4CA0133E0880F991FBF
:10E360003A95E1F7840F951F480F591F410F511D32
:10E3700040535040F6010894C11CD11C1491E8CFC1
:10E380008FEF4F3F580714F44FEF5FEFE42E85CF28
:10E39000103329F4F4FC7CCF90E2F92A79CF812F55
:10E3A00081538930D8F440E050E0CA0123E0880F5F
:10E3B000991F2A95E1F7840F951F480F591F410FA8
:10E3C000511D40535040F6010894C11CD11C1491BA
:10E3D000812F80538A3048F34CA75FCF183619F449
:10E3E000A4E0FA2A55CF1C3619F4B1E0FB2A50CF2D
:10E3F000133661F43E010894611C711CF20122E0A5
:10E4000030E0420E531E808189833CC1143421F0D8
:10E41000143611F0193651F5143411F431E0F32AA1
:10E42000F0FE0AC0F20144E050E0440E551E808028
:10E430009180A280B3800CC0F20182E090E0480E8F
:10E44000591E808191814C01AA2497FCA094BA2C7A
:10E45000B7FE0AC0B094A09490948094811C911C43
:10E46000A11CB11C8DE289A70AE06FC01F3411F016
:10E470001F3631F41F3411F491E0F92A08E064C02A
:10E48000103779F4F201A2E0B0E04A0E5B1E808101
:10E4900091814C01AA24BB2400E1B0E4FB2A18E7D7
:10E4A00053C01337C1F5F20122E030E0420E531E93
:10E4B000608071806114710489F43E010894611CCC
:10E4C000711C88E289838EE6F301818385E78B8363
:10E4D0008CE68C838D8389E28E831F82E7FC13C0D8
:10E4E0008E2D992787FD9095AC0160E070E0C30107
:10E4F0000E942376009729F0382E3618E3140CF08A
:10E50000C3C03E2CC1C0F30101900020E9F7319750
:10E510003E2E3618B9C0153511F0153731F41535C2
:10E5200011F4F1E0FF2A0AE00FC0183519F018378E
:10E5300009F0A0C000E1F3FE07C081149104A1041A
:10E54000B10411F020E4F22A19A6EDA6E7FC02C0FE
:10E550003FEDF32289E2682E712C6C0E7D1E811432
:10E560009104A104B10421F44DA5442309F47BC016
:10E57000802F9927AA27BB278EA79FA7A8ABB9AB47
:10E58000202E332490E0891690E0990691E0A906A8
:10E5900090E0B90648F0C501B4012EA53FA548A9F1
:10E5A00059A90E94197817C0AFEF8A169104A104E7
:10E5B000B10449F040F0C401B1010E94F2779B011F
:10E5C0004427552708C0882D602F0E94E677282F02
:10E5D0003327442755272AAB3BAB4CAB5DAB0A3006
:10E5E00059F48AA9880F880F880F9AA9990F890F63
:10E5F000382D381B832F10C0003139F48AA9829539
:10E60000807F482D481B842F07C08AA9880F880F58
:10E61000880F582D581B852F90E02EA53FA548A99F
:10E6200059A982169306A406B50608F091E08AA8B7
:10E630009BA8ACA8BDA88A3010F4805D04C0895A9C
:10E64000183509F48F7DD3018E933D01992309F08C
:10E6500099CF083041F4F3FE06C0803321F080E307
:10E66000FD0182933F01CE010196382E3618F8E263
:10E670003F0E0BC0112309F46CC03E010894611CCD
:10E68000711C1983B1E03B2E19A6032D2DA423186C
:10E6900027FC222489A5882311F00F5F02C0F6FC15
:10E6A0000E5F020DEF2CFF24C70180739070892B41
:10E6B00049F48CA5801B682F2C968EAD9FAD2C97AE
:10E6C0000E94EA7089A5882331F041E050E0BE0144
:10E6D000675D7F4F0AC0E6FE0EC080E38AA71BA7D6
:10E6E00042E050E0BE01665D7F4F2C968EAD9FAD3F
:10E6F0002C970E94BB70C70180739070809749F47B
:10E700008CA5801B682F2C968EAD9FAD2C970E94F8
:10E71000FB70622D2C968EAD9FAD2C970E94FB70E6
:10E72000832D992787FD9095AC01B3012C968EAD72
:10E730009FAD2C970E94BB70E4FE89CD2CA5201BB9
:10E740002CA7622F2C968EAD9FAD2C970E94EA705D
:10E750007ECDE2E1CB5C0C9472782FB740E0F89468
:10E76000E0E0F0E081E2809357009491E2E0F0E095
:10E77000809357003491E4E0F0E080935700849157
:10E780002FBF9E3199F4363941F4893011F441E0BC
:10E790000DC08A3059F442E009C0373939F4863067
:10E7A00011F443E003C0853009F444E0842F992735
:10E7B00008959FB7F8948091C900877F8093C9001E
:10E7C0008091C9008F7E8093C9008091C9008F77A6
:10E7D0008093C9008091C9008F7B8093C90080918C
:10E7E000C9008F7D8093C90052985A9A53985B9ABA
:10E7F0009FBF08951F93CF93DF93182F8091B0038D
:10E80000882309F48DC08091EE01181709F488C09F
:10E810008091AF03882321F40E94AD738093AF03EE
:10E820008FE09DE09F938F93CFE5D2E1DF93CF936D
:10E83000E091BB03F091BC0309950F900F900F90EE
:10E840000F90812F99278230910501F18330910536
:10E850002CF4009761F0019769F024C08430910591
:10E86000D9F084309105ACF00597C9F01BC08FEF4B
:10E870009CE002C08DEE9CE09F938F93DF93CF933B
:10E88000E091BB03F091BC03099518C084ED9CE0B6
:10E89000F3CF81EB9CE0F0CF83EA9CE0EDCF8BE9F6
:10E8A0009CE0EACF8CE19DE09F938F93DF93CF9321
:10E8B000E091BB03F091BC03099510E00F900F901D
:10E8C0000F900F908091AF03843011F0823099F453
:10E8D0000E94D973812F8150833018F40E948B6776
:10E8E0001DC0143019F40E94A56F18C01530B1F482
:10E8F0000E94DC6D13C0112389F082E39DE09F9399
:10E900008F938FE592E19F938F93E091BB03F091FA
:10E91000BC0309950F900F900F900F901093EE018C
:10E92000DF91CF911F9108950F931F9381E0809302
:10E93000B0034091ED01EBE4FCE020E030E05FE467
:10E94000849199272F5F3F4F829FB001839F700D65
:10E95000929F700D112446275150319657FFF0CFEA
:10E960004093ED01E3E2FCE020E030E057E28491E7
:10E9700099272F5F3F4F829FB001839F700D929F19
:10E98000700D112446275150319657FFF0CF409318
:10E99000ED018091AF03882321F40E94AD73809331
:10E9A000AF038091ED01833459F088E190E029E2D2
:10E9B0000FB6F894A895809360000FBE2093600076
:10E9C0008CE091E79093BC038093BB038DE49DE0C2
:10E9D0009F938F930FE512E11F930F93E091BB0379
:10E9E000F091BC0309950F900F900F900F9084E663
:10E9F00090E09F938F9380E590E09F938F931F9279
:10EA00001F92809102016AE00E94E677892F992780
:10EA10009F938F93809102010E94E67799279F939D
:10EA20008F9383E79DE09F938F931F930F93E091C4
:10EA3000BB03F091BC0309958BE49CE09F938F93FB
:10EA40001F930F93E091BB03F091BC03099583E200
:10EA50009CE09F938F931F930F93E091BB03F091E2
:10EA6000BC0309958DB79EB746968DBF87EA9DE09A
:10EA70009F938F931F930F93E091BB03F091BC037F
:10EA8000099582EC8093810080916F008062809371
:10EA90006F000F900F900F900F901F910F9108959E
:10EAA0008091B003882361F08091EE01843011F4ED
:10EAB0000E9416708091ED01833411F01092B00322
:10EAC00008951F920F920FB60F9211242F933F9328
:10EAD0004F935F936F937F938F939F93AF93BF9366
:10EAE000EF93FF932091CE009091EE01892F8150FA
:10EAF000833020F4822F0E9498680BC0943021F458
:10EB0000822F0E94097005C0953019F4822F0E944F
:10EB1000486FFF91EF91BF91AF919F918F917F913E
:10EB20006F915F914F913F912F910F900FBE0F907A
:10EB30001F901895002422273327442751E0BB2734
:10EB4000EE27FF27A0E1660F771F881F991F001C83
:10EB5000221F331F441F660F771F881F991F001C39
:10EB6000221F331F441F2AF4050E2B1F3E1F4F1F69
:10EB700004C0051A2B0B3E0B4F0B550FBB1FEE1F8E
:10EB8000587F556047FD5250AA95E9F6E695B7952E
:10EB90005795E695B7955795852F9B2F0895222772
:10EBA000332741E0552768E0880F991F221F331F44
:10EBB000880F991F221F331F1AF4240F351F02C01C
:10EBC000241B350B440F551F487F456037FD4250CD
:10EBD0006A9551F75695479556954795842F089510
:10EBE000AA2797FF04C0809590958A1F9A1F77FFE8
:10EBF00004C0609570956A1F7A1F669F9001779F89
:10EC0000A001679F300D411D5A1F300D411D5A1F35
:10EC1000889FF001999F2E0F3F1F401D511D899F16
:10EC2000300D411D5A1F300D411D5A1FCA01B90137
:10EC3000112480CFFB01DC0102C005900D924150F0
:10EC40005040D8F70895FC014150504030F00190F9
:10EC50000616D1F73197CF0108958827992708958F
:10EC6000A0E0B0E0E6E3F6E70C945E786C017B018F
:10EC7000EA01590121978FEFCF3FD80789F086012C
:10EC80000894C11CD11CC7010894E11CF11CF501BA
:10EC90000995F80180832197FFEFCF3FDF0779F7D0
:10ECA000EAE0CDB7DEB70C947A78CF92DF92EF929C
:10ECB000FF920F931F937C016B01FB010995082FB5
:10ECC000C7010196F6010995182FC8011F910F91F0
:10ECD000FF90EF90DF90CF900895A0E0B0E0E3E7E1
:10ECE000F6E70C9460788C017B01EA0169012197B9
:10ECF0008FEFCF3FD80771F0F70121917F01C80155
:10ED00000F5F1F4F622FF60109952197FFEFCF3F4D
:10ED1000DF0791F7E8E0CDB7DEB70C947C78CF92AF
:10ED2000DF92EF92FF920F931F936C018B017A0198
:10ED3000FA010995812F9927682FC6010196F701DD
:10ED400009951F910F91FF90EF90DF90CF9008955C
:10ED50005058BB27AA270ED0E0C0D1D030F0D6D073
:10ED600020F031F49F3F11F41EF4C6C00EF4E0957C
:10ED7000E7FBBCC0E92FE2D080F3BA176207730744
:10ED80008407950718F071F49EF5FAC00EF4E0952B
:10ED90000B2EBA2FA02D0B01B90190010C01CA0155
:10EDA000A0011124FF27591B99F0593F50F4503E00
:10EDB00068F11A16F040A22F232F342F4427585FF2
:10EDC000F3CF469537952795A795F0405395C9F70A
:10EDD0007EF41F16BA0B620B730B840BBAF09150C2
:10EDE000A1F0FF0FBB1F661F771F881FC2F70EC061
:10EDF000BA0F621F731F841F48F487957795679534
:10EE0000B795F7959E3F08F0B3CF9395880F08F01C
:10EE10009927EE0F97958795089598D088F09F577A
:10EE200090F0B92F9927B751A0F0D1F0660F771F56
:10EE3000881F991F1AF0BA95C9F712C0B13081F036
:10EE40009FD0B1E008959CC0672F782F8827B85FC6
:10EE500039F0B93FCCF3869577956795B395D9F797
:10EE60003EF490958095709561957F4F8F4F9F4FA1
:10EE70000895E89409C097FB3EF4909580957095AD
:10EE800061957F4F8F4F9F4F9923A9F0F92F96E9F6
:10EE9000BB279395F695879577956795B795F1116B
:10EEA000F8CFFAF4BB0F11F460FF1BC06F5F7F4F08
:10EEB0008F4F9F4F16C0882311F096E911C077231A
:10EEC00021F09EE8872F762F05C0662371F096E823
:10EED000862F70E060E02AF09A95660F771F881FF2
:10EEE000DAF7880F9695879597F9089597F99F67B0
:10EEF00080E870E060E008959FEF80EC08950024C2
:10EF00000A941616170618060906089500240A948E
:10EF100012161306140605060895092E0394000C14
:10EF200011F4882352F0BB0F40F4BF2B11F460FFA3
:10EF300004C06F5F7F4F8F4F9F4F089557FD9058CC
:10EF4000440F551F59F05F3F71F04795880F97FBAD
:10EF5000991F61F09F3F79F0879508951216130667
:10EF60001406551FF2CF4695F1DF08C01616170696
:10EF70001806991FF1CF86957105610508940895CB
:10EF8000E894BB2766277727CB0197F90895629FFE
:10EF9000D001739FF001829FE00DF11D649FE00D91
:10EFA000F11D929FF00D839FF00D749FF00D659FF2
:10EFB000F00D9927729FB00DE11DF91F639FB00DF1
:10EFC000E11DF91FBD01CF0111240895991B79E0BE
:10EFD00004C0991F961708F0961B881F7A95C9F7E9
:10EFE00080950895AA1BBB1B51E107C0AA1FBB1F38
:10EFF000A617B70710F0A61BB70B881F991F5A95C5
:10F00000A9F780959095BC01CD01089597FB092E35
:10F0100007260AD077FD04D0E5DF06D000201AF4D9
:10F02000709561957F4F0895F6F7909581959F4F64
:10F030000895A1E21A2EAA1BBB1BFD010DC0AA1F39
:10F04000BB1FEE1FFF1FA217B307E407F50720F051
:10F05000A21BB30BE40BF50B661F771F881F991FCC
:10F060001A9469F760957095809590959B01AC0115
:10F07000BD01CF01089597FB092E05260ED057FD3F
:10F0800004D0D7DF0AD0001C38F450954095309555
:10F0900021953F4F4F4F5F4F0895F6F7909580951C
:10F0A000709561957F4F8F4F9F4F08952F923F929C
:10F0B0004F925F926F927F928F929F92AF92BF9288
:10F0C000CF92DF92EF92FF920F931F93CF93DF9334
:10F0D000CDB7DEB7CA1BDB0B0FB6F894DEBF0FBE91
:10F0E000CDBF09942A88398848885F846E847D84DE
:10F0F0008C849B84AA84B984C884DF80EE80FD80E0
:10F100000C811B81AA81B981CE0FD11D0FB6F89455
:10F11000DEBF0FBECDBFED010895EE0FFF1F0590BE
:08F12000F491E02D0994FFCFEA
:10F128005E010A010164FF01FFFF01FC01FC01010E
:10F13800737373FF03007D0000C409C409640011E0
:10F1480048656C6C6F20576F726C6400000000009B
:10F1580000000000000000000000000000000000A7
:10F168000000000000000000000000000000000097
:10F178000000000000000000000000000000000087
:10F188000000000000000000000000000000000077
:10F1980053706F727400004E6F726D616C000042A4
:10F1A8006567696E6E6572000051756164726F0003
:10F1B80000640001200B050000ECFF6440415A4642
:10F1C80064640A02969696960840403A10FB3038D6
:10F1D8000190D0030090D00300F4017800FF03648D
:10F1E80000020406070808080706040200FEFCFAE5
:10F1F800F9F8F8F8F9FAFCFE000204060708080B0B
:10F208000A0D0B0C0E0B0F10FA2001010170FF0103
:02F218000F00E5
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/Flight-Ctrl_MEGA644_V0_80d-Arthur-P.hex
0,0 → 1,3902
:100000000C94E3060C9427070C9427070C942707FD
:100010000C9427070C9427070C9427070C942707A8
:100020000C9427070C941F170C9427070C94270790
:100030000C9411350C9427070C9427070C94270770
:100040000C9427070C9427070C9487150C9427070A
:100050000C94570C0C9427070C94210C0C94270734
:100060000C94791C0C9427070C94B5300C9427073A
:100070000C9466770C9427070C946272A41CA91C3C
:10008000AE1CB71CCE1CE51CF51C051D221D0E1F49
:10009000E51CD01DE11D101E2E1E4B1EA51E001FAF
:1000A000DE2070212D22AD221623C623D1252E2637
:1000B0009B26E52630277D27CE272828872821293B
:1000C000BC29B62ADD3004314731B731CF31103287
:1000D000C332833383338333833383338333833331
:1000E00083338333833383333A333C33413359335C
:1000F0005B330A0D426174743A0020256420436525
:100100006C6C732000204C6F77207761726E696E83
:1001100067206C6576656C3A2025642E2564000A9C
:100120000D466F756E6420424C2D4374726C3A20FC
:10013000002564000A0D0A0D2121204D4953534921
:100140004E4720424C2D4354524C3A2025642021E6
:1001500021000A0D3D3D3D3D3D3D3D3D3D3D3D3D8B
:100160003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DBF
:100170003D3D3D3D3D3D3D000A0D43616C69627270
:100180006174696E67207072657373757265207330
:10019000656E736F722E2E004F4B0A0D000A0D46CE
:1001A0006C696768742D74696D65202575206D69AB
:1001B0006E2020546F74616C3A2575206D696E0055
:1001C0000A0D436F6E74726F6C3A2000486561646B
:1001D000696E67486F6C64004E6F726D616C2028A9
:1001E0004143432D4D6F646529000A0D3D3D3D3D62
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A51
:100210000D00416E676C654E69636B2020202020C5
:100220002020416E676C65526F6C6C20202020206E
:1002300020204163634E69636B2020202020202012
:100240002020416363526F6C6C20202020202020EE
:1002500020205961774779726F20202020202020AC
:1002600020204865696768742056616C7565202098
:1002700020204163635A202020202020202020209D
:1002800020204761732020202020202020202020B3
:100290002020436F6D706173732056616C7565200B
:1002A0002020566F6C74616765205B302E31565D7F
:1002B00020205265636569766572204C6576656CB1
:1002C00020204779726F20436F6D70617373202017
:1002D00020204D6F746F722031202020202020209C
:1002E00020204D6F746F722032202020202020208B
:1002F00020204D6F746F722033202020202020207A
:1003000020204D6F746F7220342020202020202068
:1003100020203136202020202020202020202020B6
:1003200020203137202020202020202020202020A5
:100330002020313820202020202020202020202094
:100340002020313920202020202020202020202083
:100350002020536572766F2020202020202020202E
:100360002020486F7665726761732020202020204E
:10037000202043757272656E74205B302E31415DB2
:1003800020204361706163697479205B6D41685D11
:100390002020323420202020202020202020202037
:1003A0002020323520202020202020202020202026
:1003B0002020323620202020202020202020202015
:1003C0002020323720202020202020202020202004
:1003D00020204932432D4572726F72202020202048
:1003E0002020424C204C696D697420202020202060
:1003F00020204750535F4E69636B2020202020202F
:1004000020204750535F526F6C6C2020202020200A
:10041000202021212120494E434F4D504154494233
:100420004C4520212121002E000A0D20444143206B
:100430006F7220493243204552524F522120436867
:1004400065636B204932432C2033567265662C203D
:1004500044414320616E6420424C2D4374726C0011
:100460005B25695D005B25695D002B204D696B7222
:100470006F4B6F70746572202B0048573A56256495
:100480002E25642053573A25642E256425632D417B
:1004900072746875722D500053657474696E673A92
:1004A0002564202573004861726477617265204578
:1004B00072726F7220313A2564202121004D6973D8
:1004C00073696E6720424C2D4374726C3A25642127
:1004D00021004D69786572204572726F7221004962
:1004E0003243204552524F5221212100486569670D
:1004F00068743A202025356900536574706F696E01
:10050000743A2535690050726573737572653A25C2
:100510003569004F66667365743A20202535690099
:1005200048656967687420636F6E74726F6C00440D
:10053000495341424C4544004865696768742063EB
:100540006F6E74726F6C0044495341424C454400D5
:100550006163742E2062656172696E67004E696323
:100560006B3A20202020202025356900526F6C6CCA
:100570003A20202020202025356900436F6D7061CE
:1005800073733A202020253569004B313A253469B0
:1005900020204B323A25346920004B333A25346908
:1005A00020204B343A25346920004B353A253469F4
:1005B00020204B363A25346920004B373A253469E0
:1005C00020204B383A25346920004E693A25346999
:1005D0002020526F3A253469200047733A25346948
:1005E000202047693A253469200050313A25346982
:1005F000202050323A253469200050333A2534699E
:10060000202050343A25346920004779726F202D1C
:100610002053656E736F72004E69636B25346920D9
:10062000282533692E25692900526F6C6C253469A1
:1006300020282533692E25692900476965722534EC
:1006400069202825336929004E69636B20253469A8
:1006500020282533692E25782900526F6C6C2025BF
:10066000346920282533692E25782900596177209F
:1006700020253469202825336929004E69636B20C1
:100680002534692028253369292825336929005212
:100690006F6C6C202534692028253369292825337F
:1006A000692900596177202025346920282533697C
:1006B00029282533692900414343202D2053656EA5
:1006C000736F72004E69636B2025346920282533CF
:1006D000692900526F6C6C20253469202825336904
:1006E00029005A2020202025346920282533692913
:1006F00000566F6C746167653A2020202533692E9F
:10070000253169560043757272656E743A20202057
:100710002533692E2531694100506F7765723A2083
:100720002020202025346957004469736368617272
:1007300067653A202535696D4168005265636569D2
:100740007665720052432D525353493A202020209F
:100750002534690052432D5175616C6974793A20D2
:100760002534690052432D4368616E6E656C733A9F
:1007700025346900436F6D7061737300486561646F
:10078000696E673A20202535690056616C75653AB7
:10079000202020202535690053746172743A20208E
:1007A000202025356900506F7469313A20202533A7
:1007B0006900506F7469323A202025336900506F08
:1007C0007469333A202025336900506F7469343AD4
:1007D000202025336900506F7469353A2020253375
:1007E0006900506F7469363A202025336900506FD4
:1007F0007469373A202025336900506F7469383A9C
:10080000202025336900536572766F2020005365E0
:1008100074706F696E74202025336900506F73699E
:1008200074696F6E3A202533690052616E67653ACC
:100830002533692D2533690045787465726E436FE1
:100840006E74726F6C2020004E693A253469202046
:10085000526F3A253469200047733A2534692020C5
:1008600047693A253469200048693A2534692020CF
:1008700043663A2534692000424C2D4374726C2043
:100880004572726F72732000253364202533642013
:100890002533642025336420002533642025336408
:1008A000202533642025336420002533642025333C
:1008B0006420253364202533642000424C20546595
:1008C0006D7065726174757265002533692025331A
:1008D00069202533692025336920002533692025C7
:1008E00033692025336920253369200025336920A9
:1008F00025336920253369202533692000424C2D9A
:100900004374726C20666F756E642000202563202E
:10091000202025632020202563202020256320001F
:1009200020256320202025632020202563202020EF
:10093000256320002025632020202D2020202D202D
:1009400020202D2000313000313100313200466C42
:10095000696768742D54696D65202000546F746157
:100960006C3A2535756D696E004163743A20202517
:1009700035756D696E0028726573657429000A0DFE
:1009800047656E65726174696E672064656661753E
:100990006C7420506172616D65746572205365746A
:1009A000202564000A0D5573696E672050617261DD
:1009B0006D6574657220536574202564000A0D47C7
:1009C000656E65726174696E672064656661756CD9
:1009D00074204D69786572205461626C65000A0D5F
:1009E0004D697865722D436F6E6669673A202725D9
:1009F000732720282575204D6F746F727329000AA4
:100A00000D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D46
:100A10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0043
:100A20000A0D414343206E6F742063616C696272EA
:100A300061746564210D0A000A0D506C656173656F
:100A400020636F6E6E656374205370656B7472758E
:100A50006D20726563656976657220666F722062CB
:100A6000696E64696E67204E4F572E2E2E006F6B95
:100A70002E0A0D0054696D656F75742E0A0D000005
:100A8000008F001E01AD013B02CA025803E6037449
:100A90000402058F051B06A7063307BE074808D2C8
:100AA000085B09E3096B0AF20A780BFD0B810C0461
:100AB0000D860D070E870E060F840F00107B10F5B4
:100AC000106E11E5115B12CF124213B3132314926F
:100AD00014FE146A15D3153B16A11605176717C81F
:100AE0001727188318DE1837198E19E319361A8755
:100AF0001AD61A231B6E1BB61BFD1B411C831CC37D
:100B00001C001D3C1D751DAB1DE01D121E421E6FFD
:100B10001E9A1EC31EE91E0D1F2E1F4D1F691F8426
:100B20001F9B1FB01FC31FD31FE11FEC1FF51FFB2F
:100B30001FFF1F002003010000BA6B00020101AD7E
:100B40006C01030202416D020003039E6D253269B0
:100B50002E25316956002533642563202530336402
:100B60006D00537461747573004552524F523A20B0
:100B700025326400253469202532693A25303269EE
:100B8000002534696D2563002533692025336920EC
:100B900025336920253369002533692025336920F1
:100BA000253369202533690054656D706572617461
:100BB00075726573202020200025634320202020AB
:100BC00020002532692E2531695620202533692ED3
:100BD000253169410025346957202536696D416802
:100BE000002532756D2F73205361743A25642000FF
:100BF00020203344004E6F4678004447505300484D
:100C00006F6D653A2533646D202533642563004E8E
:100C10006F204E6176694374726C21000A0D7777FC
:100C2000772E4D696B726F4B6F707465722E6465B1
:100C30002028632920486953797374656D732047B0
:100C40006D6248000A0D74686520757365206F66D3
:100C5000207468697320736F6674776172652069A8
:100C600073206F6E6C79207065726D697474656441
:100C7000200A0D6F6E206F726967696E616C204D7E
:100C8000696B726F4B6F707465722D486172647717
:100C9000617265004143542044534C004A657469B5
:100CA00020736174656C6C6974005370656B747249
:100CB000756D20736174656C6C697420284C6F7756
:100CC000207265736F6C7574696F6E29005370655F
:100CD0006B7472756D20736174656C6C6974202817
:100CE0003230343829005370656B7472756D20731F
:100CF0006174656C6C6974004D756C7469736967B7
:100D00006E616C2050504D000A0D52656365697626
:100D100065723A2000756E6B6E6F776E2E2055737C
:100D2000696E672050504D2E2E2E006E6F7420730A
:100D30007570706F72746564206279206861726486
:100D40007761726521000A0D3D3D3D3D3D3D3D3DD4
:100D50003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC3
:100D60003D3D3D3D3D3D3D3D3D3D3D000A0D466C1B
:100D700069676874436F6E74726F6C0A0D486172B4
:100D800064776172653A25642E25640A0D536F6697
:100D900074776172653A5625642E256425632000B8
:100DA0000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3DD6
:100DB0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D63
:100DC0003D3D3D3D3D0011241FBECFEFD0E1DEBFD4
:100DD000CDBF11E0A0E0B1E0EAECF2EF02C0059077
:100DE0000D92A43FB107D9F718E0A4EFB1E001C01C
:100DF0001D92A23AB107E1F76AEAE2E0F0E081E28F
:100E0000809357007491AE014F5F5F4F20EF37EF33
:100E1000DA019FE0F9012F5F3F4F84918D9391504C
:100E200097FFF8CF773911F40000FECFFA019EE06A
:100E3000819168276095915097FFFACF888968174C
:100E400021F0773911F40000FECF0C94E8070C94E0
:100E5000000080910A06E82FFF27EE0FFF1FEF5CCE
:100E6000F84F808191818D5E9F4F14F010920301A5
:100E7000808191818A5B9F4FCCF48091030188230C
:100E8000A9F481E080930301809161048F5F8093D6
:100E90006104853038F088EE93E0909324028093CB
:100EA000230204C066E970E00E947B3880916104EF
:100EB00099279093DB058093DA0508951F93CF93CC
:100EC000DF93182F882389F082EF90E09F938F9310
:100ED0008BE692E19F938F93E0912D04F0912E0485
:100EE00009950F900F900F900F9080912D068233EF
:100EF00008F044C084EF91E00E948E16EC011123AB
:100F000029F0CE010E9497168823D9F3C2E0D0E0E1
:100F100026E530E080911F01909120018217930710
:100F200030F02196255D3F4FC730D10598F3809171
:100F30002D069927C89F9001C99F300DD89F300D6D
:100F40001124209300011123D9F068EC70E08C2F5C
:100F50000E947B38DF93CF938AEF90E09F938F932B
:100F60008BE692E19F938F93E0912D04F0912E04F4
:100F700009958DB79EB706968DBF02C0809300017C
:100F8000112311F1809100016AE00E949078892F6D
:100F900099279F938F93809100010E9490789927C1
:100FA0009F938F9385E091E09F938F938BE692E1DF
:100FB0009F938F93E0912D04F0912E0409952DB706
:100FC0003EB7285F3F4F2DBFDF91CF911F9108950E
:100FD000CFEFD0E1DEBFCDBF8824992414B815B877
:100FE00007EE13E00253104017FFFCCF189B06C01A
:100FF000199B02C08DE007C08BE005C0199B02C0A1
:1010000084E101C08AE08093020181E887B93E9AB9
:101010008FEF88B98BE184B981E085B98EE38AB915
:1010200087E48BB9469A84B7877F84BF809160003C
:101030008861809360001092600084EC99E0909346
:1010400024028093230210921C0310921B0310921F
:1010500036071092350710921E0310921D0310924E
:10106000200310921F0320910201243128F084EC08
:1010700094E0A0E0B0E004C08BE095E0A0E0B0E038
:101080008093970190939801A0939901B0939A014E
:101090002A3011F0243110F0289801C0289A0E94BB
:1010A00008170E94C8160E9473120E94F5340E940D
:1010B000321B0E946C300E94C5630E948D6E0E949C
:1010C0009976809102018C3010F4299A01C02998F8
:1010D00078940E948B2F80917102826080937102BC
:1010E000109273020E94E34384EF91E00E948E16F7
:1010F0008C018091710280FD05C0C8010E94971685
:101100008823B9F38FE191E09F938F93BBE6AB2ED9
:10111000B2E1BB2EBF92AF92E0912D04F0912E046C
:10112000099580EA9FE00E948E168C01C0E0D0E015
:101130000F900F900F900F90A3EDEA2EA6E0FA2EDD
:10114000F7E8CF2EF6E0DF2E0E94E3438091710294
:1011500080FD05C0C8010E9497168823B9F3F601E7
:1011600080811816ACF40BC00E94E3438091710299
:1011700080FD05C0C8010E9497168823B9F3C801F5
:101180000E949716882321F4F7018081882364F751
:10119000F701808187FF18C02196DF93CF932197B5
:1011A00081E391E09F938F93BF92AF92E0912D04E2
:1011B000F0912E0409958091F4018F5F8093F401E2
:1011C0008DB79EB706968DBF2196E4E0F0E0CE0E77
:1011D000DF1E88E090E0E80EF91ECC30D10508F45F
:1011E000B3CFC0E0D0E000ED16E0E7E8EE2EE6E099
:1011F000FE2EF801838187FD1CC0F701808118163F
:10120000C4F42196DF93CF93219784E391E09F93D9
:101210008F938BE692E19F938F93E0912D04F09151
:101220002E04099582E0809321028DB79EB7069621
:101230008DBFF801838180788383219684E090E0DC
:10124000E80EF91E085F1F4FCC30D10590F282E501
:1012500091E09F938F93CBE6D2E1DF93CF93E09120
:101260002D04F0912E040995909108068091F401C7
:101270000F900F900F900F90981728F480914704CB
:1012800080618093470488E791E09F938F93DF9379
:10129000CF93E0912D04F0912E04099588EE93E010
:1012A0000E948E168C010E94381B0F900F900F9099
:1012B0000F90C8010E9497168823D9F388E991E01E
:1012C0009F938F93DF93CF93E0912D04F0912E04A1
:1012D000099580E00E943D39809102010F900F90A6
:1012E0000F900F908A3011F0843110F0289801C0CF
:1012F000289A80ED97E0909324028093230285E55D
:10130000809363048EE090E00E945A2E9927182F54
:1013100000278FE090E00E945A2E080F111D1093B5
:10132000FA010093F9018AE090E00E945A2E992771
:10133000182F00278BE090E00E945A2E080F111DF5
:101340001093F8010093F7010F5F1F4F39F0809160
:10135000F9019091FA018F5F9F4F41F41092FA01C9
:101360001092F9011092F8011092F7018091F701A3
:101370009091F8019F938F938091F9019091FA01D8
:101380009F938F938DE991E09F938F93DF93CF93FA
:10139000E0912D04F0912E0409958DB79EB7089623
:1013A0008DBF80EC91E09F938F93DF93CF93E0917B
:1013B0002D04F0912E040995809116060F900F9040
:1013C0000F900F90E0912D04F0912E0482FF07C042
:1013D0008CEC91E09F938F93DF93CF9308C088EDBF
:1013E00091E09F938F938BE692E19F938F93099562
:1013F0000F900F900F900F900E94552088E893E176
:10140000909394018093930181E0809362040E9401
:101410005E07809130060E94FF758AEE91E09F93EF
:101420008F93DF93CF93E0912D04F0912E040995D3
:1014300080ED97E00E948E168C018AEF90E00E946A
:101440008E16EC0183E08093B2050F900F900F9001
:101450000F90CE010E949716882339F084E690E021
:101460000E948E16EC010E945577809127028823F6
:1014700009F4DFC180911101882309F4DAC11092C7
:10148000270280916104882319F00E94290702C075
:101490000E9477460E94E343209102012A3011F016
:1014A000243110F0289801C0289A8091210390914E
:1014B0004704882339F080912103815080932103D0
:1014C000977F0AC080916F00806280936F001092B6
:1014D00032071092310798609093470480919301EE
:1014E000909194010197909394018093930180913E
:1014F000930190919401892B29F0809172028823A5
:1015000009F43EC08091930190919401892B01F5DB
:101510000E94923085E090E0909394018093930133
:101520008091EC059091ED0501969093ED058093E7
:10153000EC058091ED0280688093ED028091470474
:101540008160809347048091B30582608093B305E6
:1015500080910801909109018F5F9F4F19F580914B
:1015600018038823F9F080E197E290932402809396
:10157000230280E890E0909309018093080112C053
:101580002A3011F0243110F0289801C0289A809157
:10159000230290912402892B29F48091ED028F7708
:1015A0008093ED0280912702882309F042C10E94B6
:1015B000B7120E94950EC8010E949716882309F45D
:1015C00034C10C5E1F4F80917202909147048823B2
:1015D00039F09260909347048091B30582600CC00B
:1015E0009D7F909347048091930190919401079778
:1015F00028F08091B3058D7F8093B305809193018E
:1016000090919401079728F0809147048E7F8093F2
:10161000470480910501882321F0815080930501C2
:1016200025C080936D041092F9021092F802109276
:10163000F7021092F6021092F5021092F4028091D5
:101640000801909109018F5F9F4F81F480912103E0
:10165000882361F488E99AE390932402809323021B
:1016600080E09CE090930901809308018091EA0159
:10167000893C70F081508093EA018091ED028F7B6C
:101680008093ED02809147048B7F8093470435C09F
:1016900080910F08882309F18091ED028064809386
:1016A000ED02809147048460809347048091080193
:1016B000909109018F5F9F4F81F4809118038823D7
:1016C00061F088E99AE3909324028093230280E0FA
:1016D00098EA90930901809308011092FF031092F9
:1016E000FE031092FD031092FC038FEF9FEF909387
:1016F0003D0880933C081092EA0180910001282F58
:10170000332780911F019091200182179307CCF419
:101710008091ED0280628093ED02809108019091AA
:1017200009018F5F9F4FC1F480E797E190932402F6
:101730008093230280E093E0909309018093080155
:101740000BC08091230290912402892B29F480916F
:10175000ED028F7D8093ED020E94C36784E0809349
:10176000220280911803882329F45AEA852E55E035
:10177000952E12C08091FB018F5F8093FB01813316
:1017800059F41092FB018091F5019091F6010196B8
:101790009093F6018093F5010894811C911CF2E767
:1017A0008F16FBE09F0609F040C088249924209101
:1017B000F9013091FA012F5F3F4F3093FA012093E6
:1017C000F9018091F7019091F80101969093F80149
:1017D0008093F701832F9927682F8EE090E00E9475
:1017E000602E8091F9019091FA019070682F8FE03E
:1017F00090E00E94602E8091F7019091F801892F6E
:101800009927682F8AE090E00E94602E8091F7016E
:101810009091F8019070682F8BE090E00E94602E0C
:1018200084E190E00E948E168C010E9413680E9451
:10183000A46E80912202882309F00BCE0E94E663F9
:1018400008CE1F920F920FB60F9211248F939F9381
:10185000EF93FF93809107018823E1F480911502B3
:101860009091160201969093160280931502FC0146
:10187000EE5EFA4FE081ED3019F0803A910539F4CF
:10188000109216021092150281E080930701E093F6
:10189000C60004C01092160210921502FF91EF913B
:1018A0009F918F910F900FBE0F901F9018951F92D0
:1018B0000F920FB60F9211242F933F934F935F9384
:1018C0006F937F938F939F93AF93BF93CF93EF9338
:1018D000FF9390E08091C60080930D0250911B020F
:1018E000503A10F090931C0280910D028D3009F057
:1018F00065C080911C02823009F060C090931C0288
:10190000852F992780599B4FFC0132974081209168
:10191000170230911802241B3109DC0111978C91B8
:10192000281B3109C9019F709093180280931702F8
:1019300046E0969587954A95E1F7982F935C9093AA
:1019400019022F733070235C20931A02808198173C
:1019500029F48C91281711F491E006C090E0809151
:101960000A028F5F80930A02C0910C02CC2309F017
:1019700074C0992309F471C081E080930C02580F60
:10198000509309025150E52FFF27E059FB4F8DE09E
:10199000808380917204823509F05FC00E945520D7
:1019A00088E190E02CE00FB6F894A8958093600051
:1019B0000FBE20936000C09321024FC020911C02F3
:1019C000822F992781309105F9F0823091051CF41E
:1019D000892B21F040C0029711F13DC080910D028A
:1019E000833239F480910C02882319F481E08093CA
:1019F0001C0280910D028093700481E080931B0291
:101A000080910D02992722C02F5F20931C02E52FA1
:101A1000FF27E059FB4F80910D02808309C0E52F1D
:101A2000FF27E059FB4F80910D028083503A20F44C
:101A30005F5F50931B0202C010921C0220910D02A6
:101A40008091170290911802820F911D90931802B5
:101A50008093170202C010921C02FF91EF91CF9168
:101A6000BF91AF919F918F917F916F915F914F91B6
:101A70003F912F910F900FBE0F901F901895AC01C2
:101A8000A0E0B0E09D01A817B90748F4E2E1F5E055
:101A90008191280F311D1196A417B507C8F33F7027
:101AA000FD01EE5EFA4FC90156E0969587955A956D
:101AB000E1F7835C80831196FD01EE5EFA4F2F7390
:101AC0003070822F835C8083AD5EBA4F8DE08C9343
:101AD00010920701809112058093C6000895A0E03E
:101AE000B0E0E5E7FDE00C9409792C859D850E8535
:101AF000BB2483E2809312059F5990931305209392
:101B0000140533E0E32EF12C002309F49EC0CF84AA
:101B1000D888BE016D5E7F4FA989BA8901501097A0
:101B200009F493C01097B9F0F601EB0DF11DB394D1
:101B30009081119791F4002349F1FB016E5F7F4F73
:101B4000DB01C080D1806E5F7F4F0D90BC91A02DD6
:101B5000BB24015002C090E019C01097B9F0F60103
:101B6000EB0DF11DB3944081119791F4002341F1E5
:101B7000FB016E5F7F4FDB01C080D1806E5F7F4FC6
:101B80000D90BC91A02DBB24015002C040E018C0B4
:101B90001097B1F0F601EB0DF11DB3941081119780
:101BA00081F4002371F0FB013296DB01CD90DC90D3
:101BB000BF016E5F7F4FA081B181BB24015001C086
:101BC00010E0F701EE5EFA4F892F86958695835CCB
:101BD00080830894E11CF11CF701EE5EFA4F892F17
:101BE00099278370907024E0880F991F2A95E1F758
:101BF00055279A0194E0369527959A95E1F7822B1F
:101C0000835C80830894E11CF11CF701EE5EFA4FBF
:101C10004F705070440F551F440F551F812F992747
:101C200026E0969587952A95E1F7842B835C80833F
:101C30000894E11CF11CF701EE5EFA4F1F73135C70
:101C400010830894E11CF11C6ACFC7010E943F0D6C
:101C5000E9E00C942579A3E07A2F409109024650DF
:101C6000442309F458C0E72FFF27E059FB4F808138
:101C70008D537F5FE72FFF27E059FB4F20812D53C6
:101C80007F5FE72FFF27E059FB4F30813D537F5F98
:101C9000E72FFF27E059FB4F60816D537F5F992746
:101CA000880F991F880F991F522F52955F70582BDC
:101CB000822F99278F709070F4E0880F991FFA9502
:101CC000E1F7232F26952695282B832F99278370BC
:101CD0009070E6E0880F991FEA95E1F7682B415074
:101CE0004F3FC9F0EA2FFF27E059FB4F5083AF5F0A
:101CF00041504F3F81F0EA2FFF27E059FB4F2083EF
:101D0000AF5F41504F3F39F0EA2FFF27E059FB4FBB
:101D10006083AF5FA5CF83E794E090930802809340
:101D20000702A350A09306020895A2E0B0E0EBE9F9
:101D3000FEE00C940F7980910C02882309F4C7C34C
:101D40000E942B0E80917104823609F081C280912D
:101D5000720499278137910509F4C0C08237910533
:101D6000C4F48D36910509F482C08E36910544F491
:101D70008B34910531F18636910509F454C168C25E
:101D80008E36910509F45BC08037910509F49FC038
:101D90005FC28537910509F4E2C18637910544F4A5
:101DA0008337910509F4DCC08437910539F150C2BD
:101DB0008737910509F410C28937910509F46AC182
:101DC00047C2E0910702F0910802808191819093CF
:101DD0003403809333032091310330913203821B0B
:101DE000930B845E9D4F68E671E00E94B078845B3F
:101DF00090409093300380932F032AC28091090270
:101E0000A0910702B0910802853140F080E1EBE437
:101E1000F4E00D9001928A95E1F70DC08D919D91AE
:101E20000D90BC91A02D80934B0490934C04A093F3
:101E30004D04B0934E0480EF809304024BC0809118
:101E400007018823E1F38DE490E09F938F938AE765
:101E500096E09F938F9381E08F938F938EE48F937F
:101E60000E946F0D8DB79EB707968DBFF1C1A091EF
:101E70000702B09108021C91113081F48DE4EAE769
:101E8000F6E00D9001928A95E1F70E94172F1983D1
:101E9000809147048F7E8093470401C0198280910E
:101EA00007018823E1F381E090E09F938F93CE01B7
:101EB00001969F938F9381E08F938F938DE48F93FF
:101EC0000E946F0DADB7BEB71796ADBFC1C181E01F
:101ED00080930F028FEF80930501BAC1E091070252
:101EE000F091080280818F3F39F40E947C2FE091AD
:101EF0000702F09108028083E0910702F091080246
:101F00008081882311F481E003C0863010F085E0E1
:101F10008083E0910702F091080280810E946F2E79
:101F2000E0910702F0910802808189838091070186
:101F30008823E1F380E790E09F938F9389E096E018
:101F40009F938F9381E090E09F938F93CE010196B2
:101F50009F938F9382E08F9381E08F9381E571C18E
:101F60002091070230910802D9018C91815085306F
:101F700008F040C0F90181818435E1F52F5F3F4FC2
:101F800080E7E9E0F6E0D9010D9001928A95E1F74A
:101F9000F90182910E94B32E809148069927AA27C1
:101FA000BB27BC01CD0124EC39E040E050E00E94A9
:101FB0007178DC01CB018093B7019093B801A093B5
:101FC000B901B093BA01809149069927AA27BB2786
:101FD000BC01CD010E947178DC01CB018093B3017B
:101FE0009093B401A093B501B093B6010E947C2FE9
:101FF000898301C01982809107018823E1F381E080
:1020000090E09F938F93CE0101969F938F9381E0F1
:102010008F938F9383E58F930E946F0D8DB79EB73B
:1020200007968DBF26C0E0910702F0910802E0817B
:102030008E2F8150853018F48E2F0E946F2E0E94B3
:102040007C2F8983809107018823E1F381E090E070
:102050009F938F93CE0101969F938F9381E08F93EF
:102060008F9386E48F930E946F0DADB7BEB717961E
:10207000ADBF80911803882329F46EE670E0898152
:102080000E947B3880E00E945E07809130060E94AB
:10209000FF75DEC0E0910702F09108028081992768
:1020A00087FD909590934C0780934B0781819927EA
:1020B00087FD909590934E0780934D0782819927D5
:1020C00087FD90959093500780934F0783819927C0
:1020D00087FD9095909352078093510784819927AB
:1020E00087FD909590935407809353078581992796
:1020F00087FD909590935607809355078681992781
:1021000087FD90959093580780935707878199276B
:1021100087FD909590935A0780935907808599275A
:1021200087FD909590935C0780935B078185992745
:1021300087FD909590935E0780935D078285992730
:1021400087FD90959093600780935F07838599271B
:1021500087FD9095909362078093610779C0E09125
:102160000702F091080280810E944E348A838823FE
:1021700019F481E0898301C01982809107018823C5
:10218000E1F388E090E09F938F9388EC96E09F9333
:102190008F9321E030E03F932F938091070290913D
:1021A00008029F938F933F932F93CE0102969F93A4
:1021B0008F933F932F93CE01820F931F9F938F9303
:1021C00084E08F9381E08F9385E58F930E946F0D5C
:1021D000EDB7FEB773963BC0809106028930C0F11F
:1021E00020910702309108022F5F3F4F88E0A8EC52
:1021F000B6E0F90101900D928A95E1F7D9018E912F
:102200000E94A4338A83882319F481E0898301C062
:102210001982809107018823E1F321E030E03F93A8
:102220002F93CE0102969F938F933F932F93CE01CE
:10223000820F931F9F938F9382E08F9381E08F9300
:1022400087E58F930E946F0DEDB7FEB73B96EDBF0C
:102250008091720499278436910509F4CDC08536A2
:102260009105ACF48136910509F481C0823691055F
:102270002CF48B34910509F45DC021C1823691059F
:1022800009F482C08336910509F491C018C18C36D7
:10229000910509F4FFC08D3691054CF48736910500
:1022A00009F40AC18836910509F4C4C008C184370D
:1022B000910529F08637910509F4FAC000C1809193
:1022C0000902A0910702B0910802803140F080E13C
:1022D000EBE4F4E00D9001928A95E1F70DC08D9149
:1022E0009D910D90BC91A02D80934B0490934C0434
:1022F000A0934D04B0934E04809107018823E1F32D
:102300001F92809104018F9384E58F930E946F0D3B
:102310008AEF809304028FEF8093050180EA9FE0AB
:102320000E948E169093FD018093FC010F900F90F8
:102330000F90C5C0E0910702F09108028081918161
:10234000909334038093330320913103309132030F
:10235000821B930B845E9D4F68E671E00E94B0780B
:10236000845B90409093300380932F03A8C0E0914A
:102370000702F0910802808180930601803298F074
:102380008FE1809306010FC0A0910702B09108026F
:102390008BE0E3E6F4E00D9001928A95E1F78091FD
:1023A0006C048093F4058FEF8093050188C08091C1
:1023B000000290910102892B89F4E0910702F091CB
:1023C0000802E081EE2351F08AE0E89FC001112469
:1023D0000E948E1690933E0480933D04E091070284
:1023E000F091080290818AE0989FC0011124909397
:1023F00001028093000215C08FEF80930501E091E8
:102400000702F091080290818AE0989FC001112490
:102410009093030280930202892B19F081E080934C
:10242000110280EA9FE00E948E169093FD01809336
:10243000FC0145C08FEF80930501E0910702F09108
:102440000802908197FD08C082E080930E021092EE
:10245000FF011092FE011AC0909580916A02892BAB
:1024600080936A0291818AE0989FC0011124909321
:10247000FF018093FE0184E080930E0280EA9FE0DA
:102480000E948E169093FD018093FC0181E0809361
:10249000120215C08FEF80930501E0910702F091C1
:1024A0000802808180936B0281E08093130207C051
:1024B00081E08093100203C081E0809314021092A7
:1024C0000C02109208021092070210920602E3E03A
:1024D000CE5F0C942B79982F8091C00085FFFCCFA4
:1024E0009093C60008950F931F9388E18093C100D5
:1024F0008091C00082608093C0008091C10080689C
:102500008093C1008091C10080648093C10000E08D
:1025100010E00093C5008AE290E08093C4008091AF
:102520000202909103020E948E16909340048093C1
:102530003F048CED90E00E948E1690936F04809380
:102540006E041092410480E58093420483E08093FE
:1025500045048BE0809343041092440410930802D6
:1025600000930702109206021F910F910895A0E1B7
:10257000B0E0EDEBF2E10C940C7980910701882337
:1025800009F4C1C28091FC019091FD010E9497164F
:10259000882361F01092FF011092FE011092030255
:1025A0001092020210920102109200028091FE012C
:1025B0009091FF01892B41F08091100590911105B8
:1025C0000E949716882329F480911202882309F427
:1025D00060C080910701882309F45BC080910E02DE
:1025E00002E211E08430A8F00E94692080E590E0CA
:1025F0009F938F931F930F9381E08F938F9388E422
:102600008F930E946F0D2DB73EB7295F3F4F2DBFAF
:1026100034C010926C0282E194E09F938F938EE518
:1026200090E29F938F93E0912D04F0912E040995F1
:1026300084E190E09F938F931F930F9381E090E04C
:102640009F938F938EE092E09F938F9382E08F937E
:1026500081E08F9388E48F930E946F0D80910E022A
:10266000982F8F5F80930E022DB73EB7215F3F4FAB
:102670002DBF943010F010920E028091FE019091C7
:10268000FF010E948E169093110580931005109201
:10269000120280911302882351F18091070188234F
:1026A00031F10E94692080E590E09F938F9382E250
:1026B00091E09F938F9321E030E03F932F9381E24D
:1026C00091E09F938F933F932F938BE692E09F939C
:1026D0008F9383E08F9381E08F938CE48F930E949C
:1026E0006F0D109213028DB79EB70F968DBF80911C
:1026F00010028823D1F0809107018823B1F08AE08D
:1027000090E09F938F9381E494E09F938F9381E077
:102710008F938F9386E58F930E946F0D1092100216
:102720002DB73EB7295F3F4F2DBF809114028823FC
:10273000D9F0809107018823B9F08BE090E09F9356
:102740008F9383E694E09F938F9381E08F938091A2
:1027500004018F9387E48F930E946F0D10921402EF
:102760008DB79EB707968DBF80916E0490916F04D0
:102770000E949716882309F461C08091070188237D
:1027800009F45CC0809125069927880F991F880F4E
:10279000991F7C010027F7FC0095102F809175038D
:1027A00090917603A0917703B0917803BC01CD019D
:1027B000A80197010E94E57830935C0420935B04A4
:1027C00080916D0390916E03A0916F03B09170039F
:1027D000BC01CD01A80197010E94E57830935E0409
:1027E00020935D048091020380935F048091010334
:1027F0008093600488E090E09F938F938BE594E052
:102800009F938F9381E08F9383E08F938BE68F93D9
:102810000E946F0D809161042DB73EB7295F3F4F35
:102820002DBF853018F086E08093610483E690E048
:102830000E948E1690936F0480936E048091020222
:1028400090910302892B41F080913F0490914004C4
:102850000E949716882321F480911102882339F170
:1028600080910701882319F10E94713782E490E07A
:102870009F938F9382EB95E09F938F9381E08F934B
:102880008F9384E48F930E946F0D109211028DB785
:102890009EB707968DBF8091020290910302009728
:1028A00031F00E948E169093400480933F048091F3
:1028B000000290910102892B09F4B8C080913D0477
:1028C00090913E040E949716882309F4AFC080912E
:1028D0000701882309F4AAC0809125069927880F4B
:1028E000991F880F991F7C010027F7FC0095102F76
:1028F0008091750390917603A0917703B09178034E
:10290000BC01CD01A80197010E94E5783093300405
:1029100020932F0480916D0390916E03A0916F031B
:10292000B0917003BC01CD01A80197010E94E57828
:1029300030933204209331042091F7073091F80747
:102940004091F9075091FA07DA01C90163E0880F55
:10295000991FAA1FBB1F6A95D1F7820F931FA41F4F
:10296000B51F820F931FA41FB51F209197013091AF
:1029700098014091990150919A01BC01CD010E94AA
:10298000E578309334042093330480913D03909193
:102990003E03A0913F03B091400339E0B595A79560
:1029A000979587953A95D1F78093350480913903AF
:1029B00090913A03A0913B03B0913C0329E0B59577
:1029C000A795979587952A95D1F78093360480919E
:1029D000450390914603A0914703B091480309E055
:1029E000B595A795979587950A95D1F78093370464
:1029F0008EE090E09F938F938FE294E09F938F936C
:102A000081E08F938F9383E48F930E946F0D809169
:102A10000002909101020E948E1690933E048093D2
:102A20003D042DB73EB7295F3F4F2DBF8091060172
:102A30008F3F71F1992714E0880F991F1A95E1F7DC
:102A40008E5E9D4F40E150E0BC01CE0101960E9498
:102A50009F7780E190E09F938F93CE0101969F93A3
:102A60008F9381E090E09F938F9386E091E09F9316
:102A70008F9382E08F9381E08F9381E48F930E9404
:102A80006F0D8FEF809306018DB79EB70B968DBFAC
:102A90008091F4058823D1F0809107018823B1F05B
:102AA00081E090E09F938F9384EF95E09F938F93C5
:102AB00081E08F938F9382E48F930E946F0D109229
:102AC000F4052DB73EB7295F3F4F2DBF80910F0210
:102AD0008823C9F0809107018823A9F084E390E05E
:102AE0009F938F9381E397E09F938F9381E08F93E0
:102AF0008F9380E58F930E946F0D10920F028DB718
:102B00009EB707968DBFE6E0C05F0C9428791F92B0
:102B10000F920FB60F9211242F933F935F936F93F1
:102B20007F938F939F93AF93BF93EF93FF9320E097
:102B300080912202882329F0809122028150809383
:102B4000220280911004882319F081508093100490
:102B500080912E02815080932E028F3F09F057C042
:102B600089E080932E02809128029091290201969B
:102B7000909329028093280280910C018F5F8170CD
:102B800080930C01882319F481E08093270286B199
:102B90008091230290912402892B21F180912302BC
:102BA000909124020B9750F080912302909124027F
:102BB0000A97909324028093230204C01092240267
:102BC0001092230280912302909124022091080107
:102BD0003091090182239323892B11F021E008C051
:102BE00020E006C08FEF9FEF9093090180930801CA
:102BF00080910201222331F08A3011F45A9A07C0E1
:102C0000479A05C08A3011F45A9801C047988091BC
:102C10002F02882309F472C02091EA01222309F0CF
:102C20006DC08091160683FF69C086B19927FC01AB
:102C3000E071F07084FF14C080912502909126020B
:102C4000019690932602809325028091250290910F
:102C50002602895E934008F451C020932F024EC093
:102C60008091250290912602892B09F443C080911E
:102C70002502909126028A569140E0F58091250226
:102C80009091260269E270E00E949C788091250272
:102C900090912602860F971F90932602809325021B
:102CA00080912502909126020B9750F08091250289
:102CB000909126020A97909334038093330304C0C3
:102CC000F0933403E0933303809133039091340302
:102CD0002091310330913203821B930B845E9D4F10
:102CE00068E671E00E94B078845B90409093300376
:102CF00080932F031092260210922502FF91EF91EC
:102D0000BF91AF919F918F917F916F915F913F9113
:102D10002F910F900FBE0F901F90189520912802B1
:102D200030912902280F391FC90101960895209179
:102D3000280230912902821B930B892F99278695AF
:102D4000807490700895CF93DF930E948E16EC01EB
:102D5000CE010E9497168823D9F3DF91CF91089571
:102D6000CF93DF930E948E16EC0109C08091110170
:102D7000882329F0909311018FEC80937A00CE0183
:102D80000E949716982F882389F3DF91CF91089599
:102D90004FB78091FB02282F33272F773070C9015E
:102DA000880F991F880F991F820F931F90932D02F0
:102DB00080932C02F8945F983E9A469A8091B000D6
:102DC0008F708093B0008091B00083608093B000DA
:102DD0008091B1008B738093B1008091B1008B60C2
:102DE0008093B1001092B2008FEF8093B300809176
:102DF000B00080688093B000809170008A7F8093DB
:102E00007000809170008260809370004FBF0895C1
:102E10008AE090E00E948E169093370280933602EB
:102E200082E085BD83EA84BD17BC84EB88BD86E063
:102E300086BD80916E00816080936E0008951F9220
:102E40000F920FB60F9211242F933F934F935F93DE
:102E50006F937F938F939F93AF93BF93CF93DF93A2
:102E6000EF93FF9380910201843108F017C18091A4
:102E7000FB0287FD13C180913002882309F0ABC3A8
:102E80008091B00086FFECC08091B0008F7B809372
:102E9000B00089EA93E090933202809331028091EE
:102EA0000D0190910E019C01220F331F280F391F35
:102EB0008091A3019927880F991F880F991F280FC8
:102EC000391F37FF02C02D5F3F4FC9019595879588
:102ED0009595879590930E0180930D019093200214
:102EE00080931F0280916B066091370620917503D5
:102EF00030917603409177035091780380FF2CC086
:102F0000772788279927EA01D90157FF04C0A158DC
:102F1000BF4FCF4FDF4FE7E0D595C795B795A79542
:102F2000EA95D1F79D01AE010E9471789B01AC0139
:102F300097FF04C0215C3F4F4F4F5F4F66E05595B0
:102F40004795379527956A95D1F780911F02909103
:102F50002002820F931F2BC0772788279927EA0129
:102F6000D90157FF04C0A158BF4FCF4FDF4F27E013
:102F7000D595C795B795A7952A95D1F79D01AE012F
:102F80000E9471789B01AC0197FF04C0215C3F4F08
:102F90004F4F5F4FF6E05595479537952795FA9532
:102FA000D1F780911F0290912002821B930B909386
:102FB000200280931F0280913806282F3327220F8A
:102FC000331F220F331F80911F029091200282171E
:102FD00093077CF080913906282F3327220F331F67
:102FE000220F331F80911F0290912002281739076A
:102FF00024F43093200220931F022091310230915B
:10300000320280911F0290912002280F391F205018
:103010003240309332022093310280911F0290910E
:10302000200297FD039695958795959587959093A2
:10303000200280931F0245E02D3D340718F08CEDEF
:1030400095E005C02757314030F487E791E0909331
:10305000320280933102809131029091320284C217
:103060008091B00080648093B00080913E06282F4C
:1030700033278DED96E0289FA001299F500D389FA2
:10308000500D1124CA012091330230913402821B69
:10309000930B90933202809331029AC28091300256
:1030A000882309F098C28091B00086FF62C28091A7
:1030B000B0008F7B8093B000E0913502EE23F1F4F5
:1030C00080913E06282F33278DED96E0289FA001A2
:1030D000299F500D389F500D1124CA0120913302B1
:1030E00030913402821B930B909332028093310211
:1030F0001092340210923302469A6AC249EA53E0AF
:1031000050933202409331028E2F992783309105DC
:1031100009F4A4C1843091053CF48130910561F03B
:10312000029709F4D2C0E9C18430910509F4D8C1ED
:10313000059709F4D8C1E1C180910D0190910E016C
:103140009C01220F331F280F391F8091A30199275B
:10315000880F991F880F991F280F391F37FF02C04A
:103160002D5F3F4FC90195958795959587959093CC
:103170000E0180930D019093200280931F02809195
:103180006B0660913706209175033091760340916C
:1031900077035091780380FF2CC0772788279927E1
:1031A000EA01D90157FF04C0A158BF4FCF4FDF4FED
:1031B00027E0D595C795B795A7952A95D1F79D0195
:1031C000AE010E9471789B01AC0197FF04C0215CA5
:1031D0003F4F4F4F5F4FF6E05595479537952795F1
:1031E000FA95D1F780911F0290912002820F931FD0
:1031F00027C077278827992757FF04C021583F4FBA
:103200004F4F5F4FE7E05595479537952795EA95DE
:10321000D1F70E9471789B01AC0197FF04C0215C3B
:103220003F4F4F4F5F4F66E0559547953795279530
:103230006A95D1F780911F0290912002821B930B17
:103240009093200280931F0280913806282F332705
:10325000220F331F220F331F80911F0290912002F3
:10326000821793077CF080913906282F3327220F8D
:10327000331F220F331F80911F02909120022817C5
:10328000390724F43093200220931F0280913102E9
:103290009091320220911F0230912002820F931FE1
:1032A00080509240909332028093310280911F02AD
:1032B0009091200297FD0396959587959595879512
:1032C0009093200280931F022BC180910F01909157
:1032D00010019C01220F331F280F391F8091A2017A
:1032E0009927880F991F880F991F280F391F37FFBB
:1032F00002C02D5F3F4FC90195958795959587959C
:103300009093100180930F0190931E0280931D02F1
:1033100080916B0660913B06A0916D03B0916E03A6
:10332000C0916F03D091700381FF2AC0772788274F
:1033300099279D01AE01D7FF04C021583F4F4F4F41
:103340005F4FE7E05595479537952795EA95D1F773
:103350000E9471789B01AC0197FF04C0215C3F4F34
:103360004F4F5F4FC6E05595479537952795CA95BE
:10337000D1F780911D0290911E02820F931F29C0E8
:103380007727882799279D01AE01D7FF04C02158D0
:103390003F4F4F4F5F4FB7E055954795379527956E
:1033A000BA95D1F70E9471789B01AC0197FF04C0D8
:1033B000215C3F4F4F4F5F4FA6E05595479537959E
:1033C0002795AA95D1F780911D0290911E02821B2C
:1033D000930B90931E0280931D0280913C06282F30
:1033E0003327220F331F220F331F80911D0290912C
:1033F0001E02821793077CF080913D06282F332709
:10340000220F331F220F331F80911D0290911E0245
:103410002817390724F430931E0220931D0280914F
:1034200031029091320220911D0230911E02820FD2
:10343000931F80509240909332028093310280918A
:103440001D0290911E0297FD03969595879595957F
:10345000879590931E0280931D0262C08091100692
:10346000E82FFF27EE0FFF1FEF5CF84F808191815F
:10347000805E9F4F94F1808191818197ACF480911F
:103480002C0290912D02C29778F020912A0230915F
:103490002B0280912C0290912D022817390749F4B4
:1034A00010922B0210922A02509332024093310262
:1034B00037C080912A0290912B02019690932B02A3
:1034C00080932A0220912A0230912B0280910A01D6
:1034D00090910B012817390719F587E791E01CC077
:1034E00080919F0702C08091CD079927880F991F6F
:1034F000880F991F87559E4F0FC0FF27EE0FFF1FA4
:10350000EF5CF84F20813181220F331F809131020F
:1035100090913202820F931F909332028093310276
:10352000809131029091320245E08D3D940718F070
:103530008CED95E005C08757914030F487E791E026
:103540009093320280933102209131023091320205
:103550002C5B304030933202209331028091330251
:1035600090913402820F931F909334028093330220
:103570002FC08091B00080648093B0008CEB90E00D
:103580009093320280933102809133029091340201
:1035900084549F4F90933402809333028091210290
:1035A000882321F080912103853B20F48091210222
:1035B000823011F4469801C0469A809135028F5F9F
:1035C0008093350290913E06981710F410923502C0
:1035D00081E080933002209131023091320281E00B
:1035E0002F37380730F08FEF8093B3002F5F3040D4
:1035F0000FC02F3F3105C9F0C0F0A9014F5F504007
:103600004F37510550F480E88093B3002058304084
:10361000309332022093310212C08FEF8093B300B7
:1036200050933202409331020AC08091310280935C
:10363000B300109232021092310210923002FF91C8
:10364000EF91DF91CF91BF91AF919F918F917F913A
:103650006F915F914F913F912F910F900FBE0F90FF
:103660001F90189510927C008FEC80937A0008953B
:10367000CF93DF9383E090E00E945A2EC82FDD277E
:10368000C531D10508F02A97C7BD10923C0284E6E7
:1036900090E00E94B0168091150190911601805221
:1036A000934010F4C0E0D0E0CA3FD105F8F4C7BDA4
:1036B00082E390E00E94B01687E294E09F938F939C
:1036C0008BE692E19F938F93E0912D04F0912E046D
:1036D000099580911501909116010F900F900F9010
:1036E0000F908052934010F02196DECF6C2F83E034
:1036F00090E00E94602EC09305068091160680FF20
:1037000009C08C2F8A508B3E28F08091460480643B
:1037100080934604C7BD8CE291E00E94B016DF9111
:10372000CF910895EF92FF921F93CF9310E080ED19
:1037300097E00E948E167C01CCE8133019F4CB3050
:1037400008F0C9E010E080914C0290914D028C5F2E
:10375000934024F48091140181500AC080914C025E
:1037600090914D028750944034F0809114018F5F06
:103770008093140101C011E080914A0290914B02A4
:103780008C5F934024F48091130181500AC0809192
:103790004A0290914B028750944034F0809113017B
:1037A0008F5F8093130101C01F5F80914802909149
:1037B00049028C5F934024F48091120181500AC029
:1037C000809148029091490287509440C4F08091C2
:1037D00012018F5F8093120113C089E294E09F93DE
:1037E0008F938BE692E19F938F93E0912D04F0915C
:1037F0002E0409950F900F900F900F905FC01F5FE0
:1038000082E180937602809171028E7F80937102B3
:1038100085EA8093BC00809114018A3040F4809145
:1038200046048160809346048AE08093140180916D
:103830001401863F40F080914604816080934604E5
:1038400085EF80931401809113018A3040F48091B8
:1038500046048260809346048AE08093130180913D
:103860001301863F40F080914604826080934604B5
:1038700085EF80931301809112018A3040F480918A
:1038800046048460809346048AE08093120180910C
:103890001201863F40F08091460484608093460484
:1038A00085EF8093120180917602882339F0C70159
:1038B0000E949716882309F090CFF5CF109211013E
:1038C0008FEC80937A00809111018823E1F3CA3054
:1038D00020F48AE090E00E94B016C15009F02DCF8C
:1038E00086E490E00E94B016CF911F91FF90EF9078
:1038F00008951F920F920FB60F921124AF92BF92AC
:10390000CF92DF92EF92FF920F931F932F933F93EB
:103910004F935F936F937F938F939F93AF93BF93D7
:10392000EF93FF9380915502282F33274427552783
:103930008F5F80935502F9012231310508F08CC365
:10394000E25CFF4F0C943779809178009091790078
:1039500046C080917800909179002CC180917800C8
:1039600090917900909358028093570257C18091AB
:103970007E0390917F032091780030917900821B23
:10398000930B9093F6058093F5058091F505909142
:10399000F60590936202809361025EC18091780087
:1039A000909179002091800330918103821B930BC9
:1039B0009093040680930306809103069091040679
:1039C000909364028093630249C380915B0290915B
:1039D0005C022091780030917900820F931F9093C0
:1039E0005C0280935B0281E03AC38091590290911E
:1039F0005A022091780030917900820F931F9093A2
:103A00005A028093590284E02AC380911F01909149
:103A100020019C01220F331F280F391F809178004D
:103A20009091790063E070E00E949C78260F371F28
:103A300036952795369527953093200120931F01C1
:103A400085E00DC3809178009091790040917A03D0
:103A500050917B03841B950B909343028093420209
:103A60008091420290914302029704F122E04E3E7F
:103A7000520784F4209156022B5F20935602255062
:103A80008091EE029091EF02845F914018F4215FE3
:103A90002093560280915602853684F14F5F5F4F26
:103AA00050937B0340937A03845626C08091420250
:103AB000909143028F5F9F4F0CF532E047325307DE
:103AC000ECF0209156022550209356022B5F8091F6
:103AD000EE029091EF02845F914018F42F502093F2
:103AE0005602809156028C394CF44150504050930C
:103AF0007B0340937A038C598093560281E0809334
:103B0000410280917800909179009093FC05809318
:103B1000FB0580914202909143029C01442737FDAE
:103B20004095542F8091350390913603A09137032F
:103B3000B0913803820F931FA41FB51F80933503E4
:103B400090933603A0933703B09338032091350345
:103B500030913603409137035091380357FF04C02A
:103B600021503C4F4F4F5F4F0AE055954795379591
:103B700027950A95D1F78091350390913603A0914E
:103B80003703B0913803821B930BA40BB50B8093C2
:103B9000350390933603A0933703B09338032EC1B7
:103BA0008091590290915A022091780030917900C9
:103BB000820F931F90935A028093590210925402DD
:103BC00050C2809102018A3071F480917800909106
:103BD00079002091570230915802820F931F01966D
:103BE0009695879517C0409157025091580284319D
:103BF00058F02091780030917900240F351F8FEF15
:103C000097E0821B930B06C0809178009091790019
:103C1000840F951F909349028093480286E01FC24B
:103C200080917E0390917F032091780030917900FC
:103C3000821B930B9093F6058093F5058091F50513
:103C40009091F6052091610230916202820F931FDC
:103C5000909347028093460287E001C280917800EA
:103C6000909179002091800330918103821B930B06
:103C700090930406809303068091030690910406B6
:103C80002091630230916402820F931F909345024A
:103C900080934402E3C120915B0230915C028091E9
:103CA000780090917900280F391F30935C0220939F
:103CB0005B02809102018A3019F4220F331F04C085
:103CC000220F331F220F331F30935C0220935B02BD
:103CD00020915B0230915C02C90137FD0796A3E099
:103CE00095958795AA95E1F790934D0280934C02A4
:103CF00080915D0290915E02820F931F97FD019665
:103D00009595879590935E0280935D0220918A033A
:103D100030918B03821B930B90931E0180931D01A6
:103D2000209152023091530280911D0190911E0109
:103D3000280F391F37FF02C02F5F3F4F359527955A
:103D400030935302209352024ECE2091590230916B
:103D50005A028091780090917900280F391F309392
:103D60005A0220935902809102018A3019F4220FDD
:103D7000331F04C0220F331F220F331F30935A0208
:103D8000209359022091590230915A02C90137FDFE
:103D9000079663E0959587956A95E1F790934B02B6
:103DA00080934A0280915F0290916002820F931F7C
:103DB00097FD0196959587959093600280935F0299
:103DC0002091880330918903821B930B90931C01EF
:103DD00080931B01209150023091510280911B0170
:103DE00090911C01280F391F37FF02C02F5F3F4FF2
:103DF00035952795309351022093500283E02FC1CF
:103E00001092550281E080931101809138029091C7
:103E1000390201969093390280933802809178009C
:103E2000909179009093160180931501809115016E
:103E300090911601AA27BB27A0906502B090660258
:103E4000C0906702D0906802A80EB91ECA1EDB1E81
:103E5000A0926502B0926602C0926702D092680298
:103E6000809169028F5F80936902823108F4F6C005
:103E70008091170190911801A0911901B0911A0138
:103E80007C018D0123E0EE0CFF1C001F111F2A9501
:103E9000D1F7E81AF90A0A0B1B0BEA0CFB1C0C1DE4
:103EA0001D1D80913C02992787FD9095A92FB92F60
:103EB000BC01CD0126EC34E240E050E00E94717874
:103EC000DC01CB01E81AF90A0A0B1B0BD801C70168
:103ED0000496A11DB11DB7FF05C0D801C7010B96FF
:103EE000A11DB11D13E0B595A795979587951A95D6
:103EF000D1F78093170190931801A0931901B09303
:103F00001A018091FD059091FE057C010027F7FCC8
:103F10000095102F8091170190911801A09119011F
:103F2000B0911A01E81AF90A0A0B1B0BE09213036D
:103F3000F0921403009315031093160320913D0291
:103F400030913E0240913F025091400257FF04C021
:103F5000215F3F4F4F4F5F4FF4E0559547953795A1
:103F60002795FA95D1F780913D0290913E02A0915C
:103F70003F02B0914002821B930BA40BB50B8093C0
:103F80003D0290933E02A0933F02B0934002809185
:103F90003D0290913E02A0913F02B09140028E0DF1
:103FA0009F1DA01FB11F80933D0290933E02A093DE
:103FB0003F02B093400280913A0290913B02AC01E3
:103FC000E5E0440F551FEA95E1F7481B590B809136
:103FD0003D0290913E02A0913F02B0914002B7FF96
:103FE00003C00F96A11DB11D74E0B595A7959795D7
:103FF00087957A95D1F72091130330911403281BEC
:10400000390B63E0220F331F6A95E1F7240F351F48
:1040100037FF02C0215E3F4F45E0359527954A9511
:10402000E1F730933B0220933A02D601C501D7FE57
:1040300003C00196A11DB11DB595A79597958795CC
:104040008093650290936602A0936702B093680222
:1040500089E08093690202C01092550282E0809349
:1040600054028091540280937C00809155028823F1
:1040700019F08FEC80937A00FF91EF91BF91AF918F
:104080009F918F917F916F915F914F913F912F9170
:104090001F910F91FF90EF90DF90CF90BF90AF9066
:1040A0000F900FBE0F901F90189590E2E2E2F1E0A2
:1040B0008FE49193815087FFFCCF089590916C021B
:1040C000E2E2F1E0E90FF11D80839F5F90936C02C3
:1040D0000895EF92FF920F931F93CF93DF93209158
:1040E0006A0220FF0AC080916B02882311F0815080
:1040F00002C08091210180936B0221FF0CC090913E
:104100006B0280912101981719F410926B0203C081
:104110009F5F90936B02822F992780FF04C081FFDD
:1041200002C010926B020E94552080916B02282FD2
:104130003327CEE5EC2EC0E2FC2EC0912D04D091A9
:104140002E048A3098F481E180936C023F932F9380
:1041500080E694E09F938F93FF92EF92FE01099582
:104160002DB73EB72A5F3F4F2DBF11C080E180932E
:104170006C023F932F9385E694E09F938F93FF9279
:10418000EF92FE0109958DB79EB706968DBF2091DF
:104190006B02822F9927AA27BB27FC01429710F0B8
:1041A0000C94162BE05BFF4FBEE5EB2EB0E2FB2E2E
:1041B000C0912D04D0912E040C94377910926C028A
:1041C0008AE694E09F938F930EE510E2FF92EF92C0
:1041D000FE01099584E180936C020F900F900F907F
:1041E0000F9084E690E09F938F9380E590E09F93FB
:1041F0008F931F921F92809102016AE00E94907833
:10420000892F99279F938F93809102010E94907824
:1042100099279F938F938AE794E09F938F93FF92C0
:10422000EF92E0912D04F0912E04099588E280939D
:104230006C022DB73EB7225F3F4F2DBF8BE796E054
:104240009F938F930E947C2F99279F938F9388E948
:1042500094E09F938F93FF92EF92E0912D04F09161
:104260002E0409958DB79EB708968DBF9091460490
:10427000992351F08CE380936C02892F99279F93A7
:104280008F9386EA94E085C690917202992371F02B
:104290008CE380936C02892F99279F938F938DEBEA
:1042A00094E09F938F931F930F9391C08091470445
:1042B00084FF07C08CE380936C0282ED94E00C9441
:1042C000A82A8091930190919401069710F00C9484
:1042D0001F2B8CE380936C028FED94E00C94A82A42
:1042E00080911606AEE5EA2EA0E2FA2EC0912D04CA
:1042F000D0912E0480FF74C010926C028091130341
:1043000090911403A0911503B0911603BC01CD0147
:1043100025E030E040E050E00E94E5783F932F93A5
:104320008CEE94E09F938F93FF92EF92FE0109959C
:1043300084E180936C022DB73EB72A5F3F4F2DBFBB
:1043400080910F0390911003A0911103B09112037B
:10435000BC01CD0125E030E040E050E00E94E5786E
:104360003F932F9389EF94E09F938F93FF92EF9267
:10437000E0912D04F0912E04099588E280936C025F
:104380008DB79EB706968DBF80911501909116014D
:104390009F938F9386E095E09F938F93FF92EF9288
:1043A000E0912D04F0912E0409958CE380936C022A
:1043B0002DB73EB72A5F3F4F2DBF87B599279F93F3
:1043C0008F9383E195E09F938F93FF92EF92E0911B
:1043D0002D04F0912E0409958DB79EB706962FC730
:1043E00010926C0280E295E09F938F93FF92EF9280
:1043F000FE01099584E180936C020F900F900F905D
:104400000F908FE295E09F938F93FF92EF92E09150
:104410002D04F0912E04099588E280936C020F9090
:104420000F900F900F9088E395E09F938F93FF92EA
:10443000EF92E0912D04F0912E0409958CE3809386
:104440006C020F900F900F900F9087E495E09F9370
:104450008F93FF92EF920C94AC2A10926C0280E53D
:1044600095E09F938F930EE510E2FF92EF92FE018D
:10447000099584E180936C020F900F900F900F903C
:104480008091750390917603A0917703B0917803A2
:10449000B7FF04C081509C4FAF4FBF4FFAE0B595B6
:1044A000A79597958795FA95D1F7BF93AF939F936B
:1044B0008F938DE595E09F938F931F930F93E091DA
:1044C0002D04F0912E04099588E280936C022DB79B
:1044D0003EB7285F3F4F2DBF80916D0390916E03D3
:1044E000A0916F03B0917003B7FF04C081509C4F3F
:1044F000AF4FBF4FEAE0B595A79597958795EA9599
:10450000D1F7BF93AF939F938F938CE695E09F93E2
:104510008F931F930F93E0912D04F0912E04099532
:104520008CE380936C028DB79EB708968DBF809107
:104530003303909134039F938F938BE795E09F9380
:104540008F931F930F93E0912D04F0912E04099502
:104550002DB73EB72A5F3F4F0DC710926C02809176
:104560003507909136079F938F93809133079091F1
:1045700034079F938F938AE895E09F938F93FF92E0
:10458000EF92FE01099584E180936C028DB79EB78E
:1045900008968DBF8091390790913A079F938F932A
:1045A00080913707909138079F938F938AE995E020
:1045B0009F938F93FF92EF92E0912D04F0912E0440
:1045C000099588E280936C022DB73EB7285F3F4F74
:1045D0002DBF80913D0790913E079F938F938091CF
:1045E0003B0790913C079F938F938AEA95E09F93B6
:1045F0008F93FF92EF92E0912D04F0912E04099594
:104600008CE380936C028DB79EB708968DBF809126
:104610004107909142079F938F9380913F0790911C
:1046200040079F938F938AEB95E0A2C010926C0293
:1046300080910B06E82FFF27EE0FFF1FEF5CF84F6E
:10464000808191819F938F9380910A06E82FFF27A5
:10465000EE0FFF1FEF5CF84F808191819F938F9346
:104660008AEC95E09F938F93FF92EF92FE0109955C
:1046700084E180936C028DB79EB708968DBF8091C0
:104680000D06E82FFF27EE0FFF1FEF5CF84F80812C
:1046900091819F938F9380910C06E82FFF27EE0F57
:1046A000FF1FEF5CF84F8081918188589F4F9F9347
:1046B0008F938AED95E09F938F93FF92EF92E09115
:1046C0002D04F0912E04099588E280936C022DB799
:1046D0003EB7285F3F4F2DBF80910F06E82FFF2781
:1046E000EE0FFF1FEF5CF84F8081918182599F4F41
:1046F0009F938F9380910E06E82FFF27EE0FFF1FE9
:10470000EF5CF84F8081918182599F4F9F938F93E7
:104710008AEE95E09F938F93FF92EF92E0912D04A4
:10472000F0912E0409958CE380936C028DB79EB7AF
:1047300008968DBF80911106E82FFF27EE0FFF1F0F
:10474000EF5CF84F8081918182599F4F9F938F93A7
:1047500080911006E82FFF27EE0FFF1FEF5CF84F48
:104760008081918182599F4F9F938F938AEF95E02B
:104770009F938F93FF92EF92E0912D04F0912E047E
:1047800009952DB73EB7285F3F4FF4C510926C02D4
:104790008AE096E09F938F930EE510E2FF92EF92EE
:1047A000FE010995809102010F900F900F900F90DC
:1047B0008A3009F0A1C084E180936C0280918A0361
:1047C00090918B039C0197FF02C0295F3F4F287F88
:1047D000821B930B9F938F9380918A0390918B03FD
:1047E00097FD079673E0959587957A95E1F79F93E6
:1047F0008F9320918A0330918B0337FF02C0295F8A
:104800003F4F63E0359527956A95E1F780914C021B
:1048100090914D02821B930B9F938F9388E196E0BA
:104820009F938F931F930F93E0912D04F0912E048B
:10483000099588E280936C028DB79EB70A968DBF6A
:1048400080918803909189039C0197FF02C0295FA2
:104850003F4F287F821B930B9F938F9380918803F8
:104860009091890397FD079653E0959587955A9502
:10487000E1F79F938F93209188033091890337FF4D
:1048800002C0295F3F4F43E0359527954A95E1F7F0
:1048900080914A0290914B02821B930B9F938F93BE
:1048A00089E296E09F938F931F930F93E0912D04DD
:1048B000F0912E0409958CE380936C022DB73EB7DE
:1048C000265F3F4F2DBF80918603909187039F9372
:1048D0008F938091860390918703209148023091B5
:1048E0004902821B930B9F938F938AE396E09F93D9
:1048F0008F931F930F93A3C38B3019F0843108F467
:10490000ADC084E180936C0280918A0390918B0307
:104910009C0197FF02C0215F3F4F207F821B930BBA
:1049200097FD0196959587959F938F9380918A0324
:1049300090918B0397FD0F9624E0959587952A9586
:10494000E1F79F938F9320918A0330918B0337FF78
:1049500002C0295F3F4F83E0359527958A95E1F79F
:1049600080914C0290914D02821B930B9F938F93E9
:1049700088E496E09F938F931F930F93E0912D040B
:10498000F0912E04099588E280936C022DB73EB712
:10499000265F3F4F2DBF80918803909189039C0132
:1049A00097FF02C0215F3F4F207F821B930B97FD33
:1049B0000196959587959F938F9380918803909109
:1049C000890397FD0F96B4E095958795BA95E1F721
:1049D0009F938F93209188033091890337FF02C002
:1049E000295F3F4FA3E035952795AA95E1F7809180
:1049F0004A0290914B02821B930B9F938F938AE5FF
:104A000096E09F938F931F930F93E0912D04F09165
:104A10002E0409958CE380936C028DB79EB70A969D
:104A20008DBF809186039091870397FD01969595A0
:104A300087959F938F938091860390918703209110
:104A4000480230914902821B930B9F938F938CE60F
:104A500096E09F938F931F930F938ECE8D3009F026
:104A6000EEC584E180936C028091140199279F9395
:104A70008F9380918A0390918B0397FD0F96E4E0CA
:104A800095958795EA95E1F79F938F9320918A03F7
:104A900030918B0337FF02C0295F3F4F73E035959C
:104AA00027957A95E1F780914C0290914D02821BF7
:104AB000930B9F938F938BE796E09F938F931F9316
:104AC0000F93E0912D04F0912E04099588E28093D4
:104AD0006C028DB79EB70A968DBF809113019927FE
:104AE0009F938F93809188039091890397FD0F96F0
:104AF00064E0959587956A95E1F79F938F93209150
:104B000088033091890337FF02C0295F3F4F53E08C
:104B1000359527955A95E1F780914A0290914B027D
:104B2000821B930B9F938F938FE896E09F938F93B5
:104B30001F930F93E0912D04F0912E0409958CE3BF
:104B400080936C022DB73EB7265F3F4F2DBF8091FB
:104B5000120199279F938F938091860390918703E9
:104B600097FD0196959587959F938F9380918603E6
:104B7000909187032091480230914902821B930B48
:104B80009F938F9383EA96E09F938F931F930F9346
:104B9000E0912D04F0912E0409958DB79EB70A96E9
:104BA0004EC310926C0287EB96E09F938F93FF9217
:104BB000EF92FE01099584E180936C020F900F90B3
:104BC0000F900F9080918003909181039F938F931A
:104BD00080914402909145029F938F9384EC96E0DC
:104BE0009F938F93FF92EF92E0912D04F0912E040A
:104BF000099588E280936C022DB73EB7285F3F4F3E
:104C00002DBF80917E0390917F039F938F9380911E
:104C10004602909147029F938F9383ED96E09F9376
:104C20008F93FF92EF92E0912D04F0912E0409955D
:104C30008CE380936C028DB79EB708968DBF8091F0
:104C40007A0390917B039F938F938091420290917E
:104C500043029F938F9382EE96E08ACD10926C026E
:104C600080911F01909120016AE070E00E94B0786D
:104C70009F938F9380911F01909120016AE070E0D3
:104C80000E94B0787F936F9381EF96E09F938F930C
:104C9000FF92EF92FE01099584E180936C028DB73B
:104CA0009EB708968DBF80916E0890916F086AE05C
:104CB00070E00E949C789F938F9380916E089091F2
:104CC0006F086AE070E00E949C787F936F9385E0A4
:104CD00097E09F938F93FF92EF92E0912D04F091D4
:104CE0002E04099588E280936C022DB73EB7285FA9
:104CF0003F4F2DBF80917008909171089F938F93C3
:104D000089E197E09F938F93FF92EF92E0912D04BA
:104D1000F0912E0409958CE380936C028DB79EB7B9
:104D200006968DBF80917208909173089F938F9320
:104D300089E297E02EC110926C028BE397E09F937B
:104D40008F93FF92EF92FE01099584E180936C02AC
:104D50000F900F900F900F90809131079091320734
:104D60009F938F9384E497E09F938F93FF92EF92AA
:104D7000E0912D04F0912E04099588E280936C0255
:104D80008DB79EB706968DBF8091210399279F937B
:104D90008F9384E597E09F938F93FF92EF92E0913A
:104DA0002D04F0912E0409958CE380936C022DB7AD
:104DB0003EB72A5F3F4F2DBF80913007992701975B
:104DC0009F938F9384E697E0FECA10926C0284E76B
:104DD00097E09F938F93FF92EF92FE01099584E1F4
:104DE00080936C020F900F900F900F9080912F0383
:104DF000909130039F938F938CE797E09F938F93CD
:104E0000FF92EF92E0912D04F0912E04099588E233
:104E100080936C022DB73EB72A5F3F4F2DBF809124
:104E20003303909134039F938F938AE897E09F9385
:104E30008F93FF92EF92E0912D04F0912E0409954B
:104E40008CE380936C028DB79EB706968DBF8091E0
:104E50003103909132039F938F9388E997E099C033
:104E600010926C028091220399279F938F9386EA78
:104E700097E09F938F93FF92EF92FE01099584E153
:104E800080936C028DB79EB706968DBF80912303E9
:104E900099279F938F9382EB97E09F938F93FF9235
:104EA000EF92E0912D04F0912E04099588E2809311
:104EB0006C022DB73EB72A5F3F4F2DBF8091240370
:104EC00099279F938F938EEB97E09F938F93FF92F9
:104ED000EF92E0912D04F0912E0409958CE38093DC
:104EE0006C028DB79EB706968DBF809125039927DA
:104EF0009F938F938AEC97E04CC010926C02809144
:104F0000260399279F938F9386ED97E09F938F9326
:104F1000FF92EF92FE01099584E180936C028DB7B8
:104F20009EB706968DBF8091270399279F938F93F5
:104F300082EE97E09F938F93FF92EF92E0912D0482
:104F4000F0912E04099588E280936C022DB73EB74C
:104F50002A5F3F4F2DBF8091280399279F938F93FE
:104F60008EEE97E09F938F93FF92EF92E0912D0446
:104F7000F0912E0409958CE380936C028DB79EB757
:104F800006968DBF8091290399279F938F938AEF6F
:104F900097E09F938F93FF92EF92D5CA10926C0285
:104FA00086E098E09F938F93FF92EF92FE01099520
:104FB00084E180936C020F900F900F900F9080917E
:104FC000A30199279F938F938EE098E09F938F93EF
:104FD000FF92EF92E0912D04F0912E04099588E262
:104FE00080936C028DB79EB706968DBF80911F028D
:104FF000909120029F938F938CE198E09F938F93E1
:10500000FF92EF92E0912D04F0912E0409958CE32C
:1050100080936C022DB73EB72A5F3F4F2DBF809122
:10502000390699279F938F938091380699279F93EC
:105030008F938AE298E09F938F93FF92EF92E09193
:105040002D04F0912E0409958DB79EB70896F7C0F0
:1050500010926C0288E398E09F938F93FF92EF92F7
:10506000FE01099584E180936C020F900F900F90E0
:105070000F9080916704992787FD90959F938F9358
:1050800080916604992787FD90959F938F9388E47C
:1050900098E09F938F93FF92EF92E0912D04F0910F
:1050A0002E04099588E280936C022DB73EB7285FE5
:1050B0003F4F2DBF80916804992787FD90959F935E
:1050C0008F938091690499279F938F9388E598E047
:1050D0009F938F93FF92EF92E0912D04F0912E0415
:1050E00009958CE380936C028DB79EB708968DBFAF
:1050F00080916D0499279F938F9380916A049927DB
:1051000087FD90959F938F9388E698E031CB10921E
:105110006C0288E798E09F938F93FF92EF92FE01D5
:10512000099584E180936C020F900F900F900F907F
:105130008091EB0699278F7790709F938F93809142
:10514000E30699278F7790709F938F938091DB066A
:1051500099278F7790709F938F938091D30699278B
:105160008F7790709F938F9388E898E09F938F93A9
:10517000FF92EF92E0912D04F0912E04099588E2C0
:1051800080936C028DB79EB70C968DBF80910B07F4
:1051900099278F7790709F938F938091030799271A
:1051A0008F7790709F938F938091FB0699278F77CD
:1051B00090709F938F938091F30699278F779070CB
:1051C0009F938F9389E998E09F938F93FF92EF923B
:1051D000E0912D04F0912E0409958CE380936C02EC
:1051E0002DB73EB7245F3F4F2DBF80912B079927E6
:1051F0008F7790709F938F938091230799278F7754
:1052000090709F938F9380911B0799278F77907051
:105210009F938F938091130799278F7790709F9317
:105220008F938AEA98E09F938F93FF92EF92E09199
:105230002D04F0912E0409958DB79EB70C968DBF65
:10524000FEC110926C028BEB98E09F938F93FF92BC
:10525000EF92FE01099584E180936C020F900F900C
:105260000F900F908091EF06992787FD90959F935F
:105270008F938091E706992787FD90959F938F9351
:105280008091DF06992787FD90959F938F9380915A
:10529000D706992787FD90959F938F938AEC98E086
:1052A0009F938F93FF92EF92E0912D04F0912E0443
:1052B000099588E280936C022DB73EB7245F3F4F7B
:1052C0002DBF80910F07992787FD90959F938F930E
:1052D00080910707992787FD90959F938F938091E1
:1052E000FF06992787FD90959F938F938091F706EE
:1052F000992787FD90959F938F938BED98E09F93CF
:105300008F93FF92EF92E0912D04F0912E04099576
:105310008CE380936C028DB79EB70C968DBF809105
:105320002F07992787FD90959F938F93809127074B
:10533000992787FD90959F938F9380911F079927B9
:1053400087FD90959F938F9380911707992787FDED
:1053500090959F938F938CEE98E09F938F93FF92FD
:10536000EF92E0912D04F0912E0409952DB73EB7F0
:10537000245F3F4F2DBF63C110926C028DEF98E008
:105380009F938F930EE510E2FF92EF92FE01099535
:1053900084E180936C020F900F900F900F9080919A
:1053A000EB06881F8827881F97E0899FC00111247A
:1053B0008D969F938F938091E306881F8827881F7F
:1053C00096E0899FC00111248D969F938F938091C1
:1053D000DB06881F8827881F95E0899FC00111245C
:1053E0008D969F938F938091D306881F8827881F5F
:1053F0009927880F991F880F991F8D969F938F93D8
:105400008CE099E09F938F93FF92EF92E0912D04AF
:10541000F0912E04099588E280936C028DB79EB7B7
:105420000C968DBF80910B07881F8827881F9BE0F3
:10543000899FC00111248D969F938F9380910307BC
:10544000881F8827881F9AE0899FC00111248D96A4
:105450009F938F938091FB06881F8827881F99E070
:10546000899FC00111248D969F938F938091F3069D
:10547000881F8827881F992723E0880F991F2A955E
:10548000E1F78D969F938F9380E299E09F938F939E
:10549000FF92EF92E0912D04F0912E0409958CE398
:1054A00080936C022DB73EB7245F3F4F2DBF809194
:1054B0001307881F8827881F9CE0899FC00111243B
:1054C0008D969F938F9384E399E09F938F93FF92A0
:1054D000EF92E0912D04F0912E04099580911B0725
:1054E0002DB73EB72A5F3F4F2DBF87FF12C080E424
:1054F00080936C0285E499E09F938F93FF92EF92E3
:10550000E0912D04F0912E0409950F900F900F90CB
:105510000F908091230787FF12C084E480936C0270
:1055200088E499E09F938F931F930F93E0912D044C
:10553000F0912E0409950F900F900F900F9080918D
:105540002B0787FF7CC088E480936C028BE499E092
:105550009F938F931F930F93E0912D04F0912E044E
:1055600009950F900F900F900F9069C010926C02E8
:105570008EE499E09F938F93FF92EF92FE0109953D
:1055800084E180936C020F900F900F900F908091A8
:10559000F7019091F8019F938F938CE599E09F9389
:1055A0008F93FF92EF92E0912D04F0912E040995D4
:1055B00088E280936C028DB79EB706968DBF80916E
:1055C000F9019091FA019F938F9389E699E09F9357
:1055D0008F93FF92EF92E0912D04F0912E040995A4
:1055E00089E480936C022DB73EB72A5F3F4F2DBFF1
:1055F00086E799E09F938F93FF92EF92E0912D04BD
:10560000F0912E04099580916A020F900F900F90EF
:105610000F9083FF14C01092FA011092F90160E01C
:1056200070E08EE090E00E946A2E09C08091210116
:10563000281719F421502093210110926B02109227
:105640006A02E6E0CDB7DEB70C9428794AEA20E09A
:1056500030E02617370740F4FC018191480F2F5F97
:105660003F4F26173707C8F3842F99270895AC01B9
:105670009AEA20E030E02617370750F4DA01A20F4B
:10568000B31F0E943D79802D980F2F5F3F4FF3CFBE
:10569000892F9927089581E080930C0682E08093FA
:1056A0000B0683E080930A0684E080930D0685E074
:1056B00080930E0686E080930F0687E080931006A5
:1056C00088E08093110689E0809312068AE0809337
:1056D00013068BE0809314068CE0809315060895E2
:1056E0001F93CF93DF9384E5809309068091020195
:1056F000843150F08AE08093290610924B068BE1AA
:10570000809325068EE40AC083E08093290680E218
:1057100080934B068EE18093250685E580934806AD
:10572000809349068AE68093160683E080936C0690
:10573000AEE1A09317068FEF80931906EFE0E09398
:105740001A06A093180610921C06F8E0F0931D06A6
:1057500080E480931E0610921F0684E180931B064E
:105760008EE080932006B0E1B09321061CE01093F8
:105770002206F093230686EE8093240680E8809329
:10578000260650E55093270686E980932806509315
:105790002A0680932B0676E070932C0681E2809394
:1057A0002D068DE280932E069AE590932F0680E2D7
:1057B000809331061092320610923306109234060E
:1057C0001092350610924D0610924E0610924F061A
:1057D0001092500634E63093360648E2409337067E
:1057E00061E060936B061092380627EF209339062C
:1057F00070933E068DE780933F068093400680932A
:10580000410630933A0640933B0610923C062093A3
:105810003D0682E3809342069093430680934406BC
:1058200010926A0690934506509346066093470689
:10583000B0934A0630934C068FE58093510683EF70
:10584000809353068AEA8093550680935606E09328
:105850005206E09354068EEF809357063093580615
:105860009093590690935A0690935B068BE480932D
:105870005C0680935D0680935E0610925F067093CF
:105880006006F093610690936206A09363063093DE
:1058900064063093650682E0809366066093300666
:1058A0001092680610926906ADE6B6E0E2E7F1E014
:1058B000ED01019009921A95E1F760E770E0CD01E2
:1058C000845690400E94262B80937906DF91CF91D9
:1058D0001F910895CF93DF9384E58093090680910B
:1058E0000201843150F08AE08093290610924B0621
:1058F0008BE1809325068EE40AC083E0809329061D
:1059000080E280934B068EE18093250685E58093A7
:105910004806809349068AE68093160683E08093C2
:105920006C067EE1709317068FEF809319069FE057
:1059300090931A067093180610921C0668E0609304
:105940001D0680E480931E0610921F0690931B068E
:105950008AE08093200680E18093210656E05093F0
:1059600022066093230686EE8093240680E88093C7
:1059700026062AE52093270688E7809328062093A9
:105980002A0680932B0650932C0681E280932D06E5
:105990008DE280932E0620932F06E0E2E0933106FD
:1059A0001092320610923306109234061092350689
:1059B00010924D0610924E0610924F06109250060D
:1059C00044E64093360638E230933706F1E0F09330
:1059D0006B061092380697EF9093390650933E0667
:1059E0008DE780933F068093400680934106409365
:1059F0003A0630933B0610923C0690933D0682E3B4
:105A000080934206209343068093440610926A06D0
:105A10002093450680E5809346068CE380934706F5
:105A2000E0934A069BE490934C068FE580935106E1
:105A300083EF809353068AEA809355068093560637
:105A400084E180935206809354068EEF809357062C
:105A5000409358062093590620935A0620935B06DC
:105A600090935C0690935D0690935E0610925F069D
:105A700050936006609361062093620670936306FC
:105A8000409364064093650682E080936606F09337
:105A900030061092680610926906ADE6B6E08CE01A
:105AA000E9E7F1E0ED01019009928A95E1F760E7FD
:105AB00070E0CD01845690400E94262B8093790699
:105AC000DF91CF910895CF93DF9384E5809309060A
:105AD00080910201843150F08AE08093290610926F
:105AE0004B068BE1809325068EE40AC083E0809309
:105AF000290680E280934B068EE18093250685E59A
:105B000080934806809349068AE68093160683E0D0
:105B100080936C066EE1609317068FEF80931906F1
:105B20009FE090931A066093180610921C0678E086
:105B300070931D0680E480931E0610921F069093BA
:105B40001B067093200690E19093210656E0509337
:105B500022067093230686EE8093240680E88093C5
:105B6000260634E63093270688E78093280630938C
:105B70002A0680932B0650932C0681E280932D06F3
:105B80008DE280932E062AE520932F06909331060E
:105B90001092320610923306109234061092350697
:105BA00010924D0610924E0610924F06109250061B
:105BB0003093360648E240933706E1E0E0936B0607
:105BC0001092380697EF9093390650933E068DE772
:105BD00080933F06809340068093410630933A06B7
:105BE00040933B0610923C0690933D0682E38093DF
:105BF0004206209343068093440610926A0620933F
:105C0000450680E58093460696E49093470680E239
:105C100080934A0690934C068FE58093510683EF5C
:105C2000809353068AEA80935506809356066093C4
:105C30005206609354068EEF8093570630935806B1
:105C40002093590620935A0620935B068BE4809399
:105C50005C0680935D0680935E0610925F0650930B
:105C6000600670936106209362066093630630932A
:105C700064063093650682E080936606E093300602
:105C80001092680610926906ADE6B6E08CE0E1E895
:105C9000F1E0ED01019009928A95E1F760E770E08B
:105CA000CD01845690400E94262B80937906DF9187
:105CB000CF910895DC010E943D79802D99270895A8
:105CC000DC01062E0E944F790895DC010E944A797A
:105CD000CF010895DC010B010E945B790895FF92CA
:105CE0000F931F93CF93DF93982F8150853008F047
:105CF00093E081E7F82E9F9D80011124E8012D9704
:105D000060E770E0CE010E94372B982FD801AD5983
:105D1000BF4F0E943D79802D891731F4DE010E942A
:105D20003D79802D843519F080E090E00AC0E9E0EB
:105D3000F6E0DE011F2C0E9445790E94046881E094
:105D400090E0E5E0CDB7DEB70C942979863010F00D
:105D500085E003C0882309F481E0A2E0B0E0082ECA
:105D60000E944F7908951F93CF93DF93182FC9E0B6
:105D7000D6E080910906843591F5163010F015E0D3
:105D800002C0112361F160E770E089E096E00E94B3
:105D9000262B8093790681E7189FD00111241D9747
:105DA000FE01182E0E946079EAE0F6E0A0E5B0E07E
:105DB0002CE030E0122E0E946079B9018AE096E072
:105DC0000E94262BACE5B0E0082E0E944F79812F6F
:105DD0000E94A62E0E94046881E090E002C080E04C
:105DE00090E0DF91CF911F9108956DE470E088EE0F
:105DF00093E00E94372BA5E3B4E00E943D79902DFB
:105E0000981739F4A8EEB3E00E943D79802D8130D7
:105E100019F080E090E00895EAE7F6E0A8EEB3E03C
:105E20008EE4182E0E94457981E090E00895CF938A
:105E3000DF93CAE7D6E080917A06813089F46DE479
:105E400070E0CE010E94262B8093C706A8EEB3E037
:105E50008EE4FE01182E0E94607981E090E002C07D
:105E600080E090E0DF91CF910895CF93DF9381E0C0
:105E700080937A06EAE7F6E08FE0158616861786A5
:105E8000108A8150349687FFF8CF80E4809387068C
:105E9000809388061092890680938A0680938B06E9
:105EA00090EC90938C0610928D0680938E068093D2
:105EB0008F0610929006909391069093920680938D
:105EC0009306109294068093950690939606ABE7FE
:105ED000B6E087E0EBE8F1E0ED01019009928A95E8
:105EE000E1F76DE470E0CD0101970E94262B8093CD
:105EF000C706DF91CF910895A2E0B0E00E943D79FE
:105F0000802D863030F083E0A2E0B0E0082E0E94C1
:105F10004F7999270895DF92EF92FF920F931F9385
:105F2000CF93FF24DF2CEF2C81E090E00E945A2ECB
:105F3000843539F031E0E32E64E581E090E00E94A1
:105F4000602E6CE070E080E590E00E94372BC82F57
:105F5000ACE5B0E00E943D79802D8C1711F421E072
:105F6000D22EC1E001E010E0EE2029F48C2F0E9437
:105F70006F2E8823B1F591E0F92E1F930F938EE7D2
:105F800099E09F938F938BE692E19F938F93E0919B
:105F90002D04F0912E0409958DB79EB706968DBFFE
:105FA0000230110549F0033011054CF401301105A0
:105FB00031F40E94702B05C00E946A2C02C00E941E
:105FC000632DDD2049F0EAE0F6E0A0E5B0E08CE0EA
:105FD000182E0E94457902C00E944B2B8C2F0E94E4
:105FE000B32ECF5F0F5F1F4FC63008F4BDCFFF2029
:105FF00019F083E00E94A62E0E947C2FC82F0E94D9
:106000006F2E8C2F99279F938F9384EA99E09F930B
:106010008F930BE612E11F930F93E0912D04F09103
:106020002E0409958DB79EB706968DBFEE2021F4FC
:106030000E94F52E882399F48DEB99E09F938F931E
:106040001F930F93E0912D04F0912E0409950E9467
:10605000352F0E94172F0F900F900F900F901092D6
:10606000080690E0E7E8F6E0CFE080813496181665
:106070000CF49F5FC150C7FFF8CF90930806892F9B
:1060800099279F938F938BE796E09F938F938EED45
:1060900099E09F938F931F930F93E0912D04F091BC
:1060A0002E0409958DB79EB708968DBF8FEF99E0A6
:1060B0009F938F931F930F93E0912D04F0912E04E3
:1060C00009950F900F900F900F90CF911F910F9106
:1060D000FF90EF90DF9008959FB7F8943998389A21
:1060E00088B1836088B98091B9008C7F8093B900B2
:1060F0008AE28093B8001092760210927402109295
:106100007302E0EDF6E08BE01082118212821382BE
:1061100014821582168217828150389687FFF4CF39
:106120009FBF08951092760284E98093BC0010927C
:1061300074021092730280E88093BC001092BD003C
:106140001092BA001092BB001092B9001092B800E1
:106150000E946C301092BB0085E88093BC00809157
:10616000710282608093710208951F920F920FB6A0
:106170000F9211242F933F934F935F938F939F938D
:10618000EF93FF9380917602282F332744275527DA
:106190008F5F80937602F9012731310508F0B3C291
:1061A000EE59FF4F0C943779809174028C3090F443
:1061B000809174028F5F8093740280917402E82F43
:1061C000FF27EE0FFF1FEE0FFF1FE658F94F8585E3
:1061D000181654F7809174028C3070F0109270028F
:1061E00010926F021092740285E080937602809183
:1061F0007302880F8D5A04C080917402880F8E5AE2
:106200008093BB0085E874C280917402E82FFF2759
:1062100083E0EE0FFF1F8A95E1F7E053F94F81818C
:106220008093BB0085E88093BC0080917402E82FC6
:10623000FF27EE0FFF1FEE0FFF1FEE0FFF1FE053B4
:10624000F94F808180FF91C080917402E82FFF2771
:10625000EE0FFF1FEE0FFF1FEE0FFF1FE053F94F72
:106260008281882329F080910806873008F45FC274
:1062700080916F0290917002892B09F058C2809131
:106280006D0290916E02892B09F051C26EC080910F
:10629000740221E030E002C0220F331F8A95E2F73A
:1062A00080916D0290916E0228233923232B79F07F
:1062B00080917402E82FFF27EE0FFF1FEE0FFF1FE4
:1062C000EE0FFF1FE053F94F80E184830DC08091F2
:1062D0007402E82FFF27EE0FFF1FEE0FFF1FEE0FD8
:1062E000FF1FE053F94F148280917402E82FFF27BB
:1062F00053E0EE0FFF1F5A95E1F7E053F94F848109
:10630000282F332743E0220F331F4A95E1F780916E
:106310007402E82FFF2793E0EE0FFF1F9A95E1F735
:10632000E053F94F82818770822B8093BB0085E810
:106330008093BC002091740281E090E002C0880F3D
:10634000991F2A95E2F720916F0230917002822303
:106350009323892B51F088EC96E090937A028093F6
:10636000790288E080937B02E2C184E080C1E09101
:106370007902F0917A0281918093BB0085E8809345
:10638000BC00F0937A02E093790280917B02815005
:1063900080937B02882309F4CAC183E068C180919D
:1063A000B900803351F580917702882329F48091D8
:1063B00074028F5F8093770280917402E82FFF2729
:1063C00083E0EE0FFF1F8A95E1F7E053F94F8381D9
:1063D00099278F7790708F3791057CF480917402A4
:1063E000E82FFF27EE0FFF1FEE0FFF1FEE0FFF1F1F
:1063F000E053F94F83818F5F83831092760284E9A3
:106400008093BC008AE090E0909394018093930184
:10641000809174028F5F809374021092760262C141
:106420008091B9008034A9F180917302E82FFF2791
:10643000EE0FFF1FEE0FFF1FEE0FFF1FE053F94F90
:1064400083818F778383809173028F5F8093730240
:10645000809173028C30A0F01092730210926E0241
:1064600010926D02809178028F5F809378028C3059
:1064700038F010927802809171028D7F80937102C2
:10648000809171028160809371021092760284E99A
:1064900071C080917302E82FFF27EE0FFF1FEE0FF0
:1064A000FF1FEE0FFF1FE053F94F83818068838346
:1064B00080917302E82FFF27EE0FFF1FEE0FFF1FE3
:1064C000EE0FFF1FE053F94F808180FF2FC08091B6
:1064D0007302E82FFF2753E0EE0FFF1F5A95E1F7F5
:1064E000E053F94F84819927009751F04097D9F5EF
:1064F00088EC96E090937A028093790288E031C02C
:1065000080917302992743E0880F991F4A95E1F71C
:106510008B52994F90937A028093790290917302F3
:10652000809178029817E1F483E01BC08091730298
:10653000992733E0880F991F3A95E1F78B52994FCD
:1065400090937A02809379028091710281FD06C056
:106550009091730280917802981711F482E001C043
:1065600081E080937B0280917B02813011F485E889
:1065700001C085EC8093BC00809177028093720209
:1065800010927702D4C0E0917902F0917A02809162
:10659000BB0080838091790290917A02019690935A
:1065A0007A028093790280917B02815080937B02F2
:1065B000823010F085EC58C0813011F485E854C069
:1065C0008091710281FF2DC08091ED0280FD1DC080
:1065D00080917302E82FFF2723E0EE0FFF1F2A951B
:1065E000E1F7E053F94F86818A3F79F48091730295
:1065F000E82FFF2793E0EE0FFF1F9A95E1F7E05396
:10660000F94F8081816080830CC080917302E82FF4
:10661000FF2783E0EE0FFF1F8A95E1F7E053F94F64
:106620001082809173028F5F809373028091730256
:106630008C30A0F01092730210926E0210926D02D4
:10664000809178028F5F809378028C3038F01092BE
:106650007802809171028D7F809371021092760290
:1066600084E98093BC0049C08093BC0086E080939D
:1066700076025DC088E9C4CD80917502880F805F85
:10668000BFCD8091750299278130910561F08230EC
:1066900091051CF4892B21F04AC0029739F047C0BC
:1066A00080911401ADCD80911301AACD809112018A
:1066B000A7CD80E8A5CD1092760284E98093BC0036
:1066C0008AE090E090939401809393018091750209
:1066D000823088F4809175028F5F8093750282E129
:1066E00080937602809171028E7F8093710285EA99
:1066F0008093BC001CC01092750280917102816071
:106700008093710214C01092760284E98093BC00D9
:10671000809171028160809371028AE090E0909391
:106720009401809393011092740210927302FF916E
:10673000EF919F918F915F914F913F912F910F908A
:106740000FBE0F901F9018951F93CF93DF93182FB4
:1067500080911803882321F480910402882319F082
:1067600081E090E097C01D3008F092C01123B1F095
:10677000E12FFF2723E0EE0FFF1F2A95E1F7E053FB
:10678000F94F35978081359688230CF081C0389772
:10679000808180FD03C083E090E07CC08091C806CA
:1067A000823019F084E090E075C067E070E088EC1A
:1067B00096E00E94262B9091CF06891719F085E06C
:1067C00090E068C080ED97E00E948E16EC01809109
:1067D000710280FD05C0CE010E9497168823B9F38F
:1067E000112319F48FEF90E00BC0212F3327215094
:1067F000304081E090E002C0880F991F2A95E2F7AF
:106800009093700280936F02A1E0B0E0E0EDF6E0BB
:1068100040E050E06BE0CD01042E02C0880F991FCC
:106820000A94E2F720916F02309170028223932341
:10683000892B11F01182128261504F5F5F4F3896A1
:1068400067FFE9CF10927402109276028091710274
:106850008E7F8093710285EA8093BC0080917102E3
:1068600080FD05C0CE010E9497168823B9F3809160
:106870006F0290917002892B29F0CE010E94971629
:10688000882311F380916F0290917002009711F0AC
:1068900082E090E0DF91CF911F9108950F931F93B5
:1068A000CF93DF93982F80911803882321F4809150
:1068B0000402882319F081E090E092C09D30A0F49A
:1068C000992319F486E090E08BC0C92FDD27FE01E3
:1068D00033E0EE0FFF1F3A95E1F7E053F94F35979C
:1068E0008081359687FD03C082E090E079C03897BB
:1068F000808180FD03C083E090E072C080ED97E06E
:106900000E948E168C018091710280FD05C0C80125
:106910000E9497168823B9F3219721E030E0C9013E
:1069200002C0880F991FCA95E2F790936E02809378
:106930006D02D901E0EDF6E040E050E06BE0CD0102
:10694000042E02C0880F991F0A94E2F720916D026D
:1069500030916E0282239323892B11F011821282CF
:1069600061504F5F5F4F389667FFE9CF1092730217
:106970001092C8061092CF06109276028091710292
:106980008E7F8093710285EA8093BC0080917102B2
:1069900080FD05C0C8010E9497168823B9F3809135
:1069A0006D0290916E02892B29F0C8010E94971602
:1069B000882311F38091C806823019F084E090E0BA
:1069C0000FC067E070E088EC96E00E94262B909163
:1069D000CF06891719F085E090E002C080E090E0D2
:1069E000DF91CF911F910F91089589E1A5E6B7E05E
:1069F000E1E3F7E011821082329611961C921E920A
:106A00001296815087FFF6CF10928703109286036B
:106A1000109289031092880310928B0310928A03BC
:106A200008951F920F920FB60F9211240F931F9388
:106A30002F933F934F935F936F937F938F939F9386
:106A4000AF93BF93CF93DF93EF93FF9380916C0647
:106A500082FDCFC0409186005091870080917D02D9
:106A600090917E02481B590B80918600909187007F
:106A700090937E0280937D02CA018D549440A09130
:106A80007F02B0918002835F9A4178F480917F0207
:106A900080933007149714F01092950181E090E0F4
:106AA0009093800280937F0207C2AD30B1050CF055
:106AB00003C2CA018B5F9040845B914008F074C0B0
:106AC000425D5140FD01EA0FFB1FEF5CF84F8081F2
:106AD0009181FA01E81BF90BCF01F7FF03C09095F4
:106AE00081959F4F06975CF480912103883C20F4A8
:106AF00080912103865F01C088EC80932103FD0112
:106B0000EA0FFB1FEF5CF84F808191819C01220FFF
:106B1000331F280F391F240F351F37FF02C02D5F89
:106B20003F4FE901D595C795D595C795CA010196FF
:106B30008C179D0714F4219706C041505040C4178C
:106B4000D5070CF4219680912103833CE0F08D0160
:106B50000A0F1B1FF801EF5CF84F808191819E01A5
:106B6000281B390BC90163E070E00E94B078CB01AB
:106B7000880F991F860F971F0B59184FD801119630
:106B80009C938E9307C0AA0FBB1FAB59B84F1196A9
:106B90001C921E92E0917F02F0918002EE0FFF1F87
:106BA000EF5CF84FD183C08320917F023091800247
:106BB0002F5F3F4F3093800220937F02809102012C
:106BC000843108F079C12530310511F45D9A01C096
:106BD0005D9880917F02909180028630910511F43A
:106BE0005C9A01C05C98079711F45B9A65C15B9849
:106BF00063C14091860050918700809181029091FD
:106C00008202481B590B80918600909187009093D7
:106C1000820280938102CA018D5494406091EB02FC
:106C2000835F9A4108F07AC060937C0280917C0275
:106C3000843008F453C09091300780917C029817FB
:106C400009F04CC05091EC025B3008F43FC0109248
:106C500095011092EB0240E05F31C0F0E42FFF2776
:106C6000EE0FFF1F9F0129543D4FDF01AF5CB84F6E
:106C70008D919C91D9018D939C93DF01AB59B84FB5
:106C80008D919C91EF52FD4F91838083E42FFF27DC
:106C9000EE0FFF1F9F012F5C384FDF01AD57BD4F37
:106CA0008D919C91D90111969C938E93DF01A356EF
:106CB000BD4F8D919C91EB59F84F91838083842F28
:106CC0008F5F482F8D3040F28093EB028091EC0271
:106CD0008F3FB9F08F5F8093EC0213C08091EC027C
:106CE000853620F08AE08093EC0202C01092EC021C
:106CF000809102018A3011F0843110F0289A01C08D
:106D0000289881E08093EB0280911803882309F092
:106D1000D3C080917C0280933007CEC06D3008F0E4
:106D2000A3C0CA018B5F9040845B914008F07EC095
:106D3000425D5140E62FFF27EE0FFF1FED57FD4F3D
:106D400080819181FA01E81BF90BCF0105960B9721
:106D5000B0F48091EC028A3120F080912103865FAB
:106D600005C08B3028F0809121038E5F8093210332
:106D700080912103893C18F088EC80932103E62F51
:106D8000FF27EE0FFF1FED57FD4F808191819C0182
:106D9000220F331F280F391F240F351F37FF02C062
:106DA0002D5F3F4FE901D595C795D595C795CA0188
:106DB00001968C179D0714F4219706C0415050404E
:106DC000C417D5070CF42196809121038E3BD8F08F
:106DD000E62FFF27EE0FFF1FDF01AD57BD4F8D914F
:106DE0009C919E01281B390BC90163E070E00E9451
:106DF000B078CB01880F991F860F971FE356FD4F80
:106E00009183808308C0E62FFF27EE0FFF1FE35614
:106E1000FD4F118210828091EB02E82FFF27EE0FC9
:106E2000FF1FED57FD4FD183C08309C08091020140
:106E30008A3011F0843110F0289A01C0289880918E
:106E40000201843188F48091EB02853011F45D9A5F
:106E500005C05D98863011F45C9A05C05C98873057
:106E600011F45B9A01C05B988091EB02843120F4AD
:106E70008F5F8093EB0220C08431F1F48091020196
:106E80008A3011F0843110F0289A01C028988EE1E0
:106E90008093EB022CE0C5E6D7E0A7EBB2E0E1E39C
:106EA000F7E08D919D9191838083329619821882AB
:106EB0002296215027FFF5CFFF91EF91DF91CF91DF
:106EC000BF91AF919F918F917F916F915F914F9102
:106ED0003F912F911F910F910F900FBE0F901F9018
:106EE0001895EF92FF920F931F9380912506992793
:106EF000880F991F880F991F7C010027F7FC0095C8
:106F0000102F8091750390917603A0917703B09133
:106F10007803BC01CD01A80197010E94E578309368
:106F2000B5052093B40580916D0390916E03A091F7
:106F30006F03B0917003BC01CD01A80197010E94BD
:106F4000E5783093B7052093B6058091EB079091D3
:106F5000EC0797FD03969595879595958795909362
:106F6000B9058093B8058091FB079091FC0797FDC8
:106F7000039695958795959587959093BB058093F6
:106F8000BA05809186039091870320914802309141
:106F90004902821B930B9093BD058093BC058091A1
:106FA000130390911403A0911503B0911603BC0133
:106FB000CD0125E030E040E050E00E94E5783093DC
:106FC000BF052093BE0580914202909143029093A9
:106FD000C1058093C0058091330390913403909351
:106FE000C5058093C40580911F0190912001909365
:106FF000C7058093C6058091210399279093C90501
:107000008093C8058091F7079091F807A091F90740
:10701000B091FA0720919701309198014091990120
:1070200050919A01BC01CD010E94E5783093CB05C7
:107030002093CA058091D10699279093CD0580931E
:10704000CC058091D90699279093CF058093CE05E2
:107050008091E10699279093D1058093D005809186
:10706000E90699279093D3058093D20580911F025A
:10707000909120029093DD058093DC0580916E084D
:1070800090916F089093E1058093E00580917208DC
:10709000909173089093E3058093E20580917408C2
:1070A00099279093EF058093EE058091FE039091D0
:1070B000FF039093F1058093F0058091FC0390917C
:1070C000FD039093F3058093F20580914604882395
:1070D00021F480914704882321F08091B3058160D9
:1070E00003C08091B3058E7F8093B3051F910F91EC
:1070F000FF90EF9008951F93CF93DF93182FEB012C
:10710000809118038823A1F411501F3F89F0D09378
:107110002402C09323028091230290912402892BA0
:10712000D1F7CE018C0F9D1F0E94A316115078F746
:10713000DF91CF911F910895CF93DF93809102014A
:107140008D3011F40E94921B10927A0080914C02B3
:1071500090914D029093B2078093B10780914A02BB
:1071600090914B029093A3078093A20780914802CD
:10717000909149029093F1078093F0072091440287
:1071800030914502C901880F991F880F991F820FFE
:10719000931F820F931F9093EC078093EB0720912E
:1071A000460230914702C901880F991F880F991F25
:1071B000820F931F820F931F9093FC078093FB070E
:1071C0008FEC80937A00A2E2B3E0CEE0D6E097E0C5
:1071D0008991E82FFF27EE0FFF1FEF5CF84F01901A
:1071E000F081E02DE259FF4F1E161F061CF0E0E073
:1071F000F0E005C0EF3FF10514F0EFEFF0E08C9107
:10720000282F3327E217F30714F4815004C02E17F8
:107210003F0714F48F5F8C939150119697FFD8CF4E
:10722000809148069927AA27BB27BC01CD0124ECF1
:1072300039E040E050E00E947178DC01CB0180939E
:10724000B7019093B801A093B901B093BA018091AE
:1072500049069927AA27BB27BC01CD010E94717856
:10726000DC01CB018093B3019093B401A093B501ED
:10727000B093B601DF91CF910895A0E0B0E0E3E4D0
:10728000F9E30C940679882EC0E0D0E07E016E010F
:1072900010924604469AD0938103C0938003D09302
:1072A0007F03C0937E03D0937B03C0937A03D09374
:1072B0008B03C0938A03D0938903C0938803D09330
:1072C0008703C09386031092A00110929F01109231
:1072D0003C020E949C3884E690E00E94B0160E9416
:1072E0009C388091160680FF10C080911501909106
:1072F0001601875B934038F4809115019091160137
:107300008E5E924010F40E94381B0FE18AE090E0FC
:107310000E94B0168091480290914902C80FD91F6F
:1073200080914C0290914D02E80EF91E80914A0224
:1073300090914B02C80ED91E015007FFE7CF97016D
:10734000205F3F4F369527953695279530938B03D1
:1073500020938A03C60140969695879596958795C2
:1073600090938903809388036096F5E0D695C7953E
:10737000FA95E1F7D0938703C09386039093850332
:10738000809384033093830320938203882009F43D
:1073900041C08091EB079091EC0797FF03C0909557
:1073A00081959F4F6CE070E00E94B0789B017093D4
:1073B0008103609380038091FB079091FC0797FF06
:1073C00003C0909581959F4F6CE070E00E94B0786B
:1073D00070937F0360937E038091FB059091FC0581
:1073E00090937B0380937A03B90184E090E00E943C
:1073F0006A2E60917E0370917F0386E090E00E9488
:107400006A2E60917A0370917B0388E090E00E947D
:107410006A2E65C084E090E00E94652E90938103FF
:107420008093800386E090E00E94652E90937F0316
:1074300080937E0388E090E00E94652E9C019093EB
:107440007B0380937A038091800390918103815024
:10745000984050F480917E0390917F038150984032
:1074600018F421503440D8F180E29AE09F938F9332
:107470008BE692E19F938F93E0912D04F0912E047F
:1074800009958091EB079091EC0797FF03C09095C9
:1074900081959F4F6CE070E00E94B07870938103FB
:1074A000609380038091FB079091FC0797FF03C0D6
:1074B000909581959F4F6CE070E00E94B07870933A
:1074C0007F0360937E038091FB059091FC05909370
:1074D0007B0380937A030F900F900F900F90109280
:1074E000B2071092B1071092A3071092A207109250
:1074F000F1071092F00784E690E00E94B0168091A8
:107500004402909145029C01220F331F220F331F2A
:10751000280F391F280F391F3093EC072093EB07F2
:1075200080914602909147028C01000F111F000FBD
:10753000111F080F191F080F191F1093FC07009344
:10754000FB0780912506C82EDD24EE24FF24442766
:1075500037FD4095542FC701B6010E9471784B0149
:107560005C01609375037093760380937703909327
:1075700078039801442737FD4095542FC701B60181
:107580000E947178DC01CB0180936D0390936E03B0
:10759000A0936F03B09370038092510390925203B3
:1075A000A0925303B09254038093490390934A03EB
:1075B000A0934B03B0934C031092450310924603E3
:1075C000109247031092480380911701909118017F
:1075D000A0911901B0911A019093FE058093FD05C9
:1075E00010923B0210923A02109235031092360329
:1075F0001092370310923803809133039091340333
:1076000090933203809331030E949B6382E390E066
:107610009093240280932302809148069927AA27F9
:10762000BB27BC01CD0124EC39E040E050E00E94D2
:107630007178DC01CB018856954CAF4FBF4F8093DA
:10764000B7019093B801A093B901B093BA018091AA
:1076500049069927AA27BB27BC01CD010E94717852
:10766000DC01CB018856954CAF4FBF4F8093B301DF
:107670009093B401A093B501B093B60110929C0110
:1076800010929B018091330390913403AA2797FDB8
:10769000A095BA2F209197013091980140919901BE
:1076A00050919A01BC01CD010E947178DC01CB019F
:1076B0008093F7079093F807A093F907B093FA0720
:1076C00010922C0310922B0381E0809301010E9401
:1076D00004688091ED0284608093ED028FEF8093C7
:1076E000690810926A0880E280936B08C2E2D3E0D6
:1076F000AEE0B6E007E08D91E82FFF27EE0FFF1F09
:10770000EF5CF84F8081918182598993015007FF86
:10771000F2CF84E68093210380912102882311F027
:10772000469A579A80918A0390918B03805699408C
:10773000815C9B4228F080914604816080934604DE
:10774000809188039091890380569940815C9B4287
:1077500028F08091460482608093460480918603DD
:10776000909187038C5291408957954028F08091E1
:107770004604846080934604809180039091810345
:107780008C529140835C914028F08091460488603F
:107790008093460480917E0390917F038C529140A8
:1077A000835C914028F08091460480618093460478
:1077B00080917A0390917B03805092408355914051
:1077C00028F080914604806280934604ECE0CDB7B7
:1077D000DEB70C942279A3E1B0E0E1EFFBE30C9477
:1077E000007980918603909187032091480230911F
:1077F0004902821B930B9093F1078093F0078091CD
:1078000052029091530297FD07969C0153E03595E3
:1078100027955A95E1F73093B2072093B1078091ED
:1078200050029091510297FD079643E095958795F8
:107830004A95E1F79093A3078093A2073093BD0781
:107840002093BC079093B5078093B4078091EB0712
:107850009091EC07AC01440F551F480F591F209120
:10786000440230914502C901880F991F880F991F62
:10787000820F931F820F931F480F591F57FF02C09B
:107880004D5F5F4F55954795559547955093EC073C
:107890004093EB078091FB079091FC07AC01440FEC
:1078A000551F480F591F2091460230914702C901C8
:1078B000880F991F880F991F820F931F820F931FA4
:1078C000480F591F57FF02C04D5F5F4F55954795B1
:1078D000559547955093FC074093FB072091440230
:1078E00030914502C901880F991F880F991F820F97
:1078F000931F820F931F9C01442737FD4095542FFF
:107900008091650390916603A0916703B09168032D
:10791000820F931FA41FB51F809365039093660386
:10792000A0936703B0936803209146023091470209
:10793000C901880F991F880F991F820F931F820F0B
:10794000931F9C01442737FD4095542F809161037C
:1079500090916203A0916303B0916403820F931F1F
:10796000A41FB51F8093610390936203A0936303E8
:10797000B09364038091C6079091C7072091440299
:1079800030914502820F931F9093C7078093C607DB
:107990008091F3079091F4072091460230914702BD
:1079A000820F931F9093F4078093F30780917C03D9
:1079B00090917D03019690937D0380937C03809149
:1079C000FB059091FC0520917A0330917B03821B8B
:1079D000930B9C01442737FD4095542F80915D0304
:1079E00090915E03A0915F03B0916003820F931F9B
:1079F000A41FB51F80935D0390935E03A0935F0364
:107A0000B09360038FEC80937A0010921101209163
:107A10004D0330914E0340914F03509150032987FD
:107A20003A874B875C8729543B46414050402CF0B5
:107A300028E43BE641E050E00DC089859A85AB859E
:107A4000BC85885B9449AE4FBF4F4CF428EB34E9BA
:107A50004EEF5FEF2D833E834F83588708C08985A3
:107A60009A85AB85BC858D839E83AF83B887209133
:107A700055033091560340915703509158032D8779
:107A80003E874F87588B29543B46414050402CF04D
:107A900028E43BE641E050E00DC08D859E85AF8532
:107AA000B889885B9449AE4FBF4F4CF428EB34E95A
:107AB0004EEF5FEF29833A834B835C8308C08D854B
:107AC0009E85AF85B88989839A83AB83BC83A09157
:107AD000F007B091F107BB8BAA8BFD01CF01AA275C
:107AE00097FDA095BA2FA0904503B0904603C09093
:107AF0004703D0904803A80EB91ECA1EDB1EA092F1
:107B00004503B0924603C0924703D0924803E090E9
:107B1000F707F090F8070091F9071091FA07E80EBF
:107B2000F91E0A1F1B1FE092F707F092F807009357
:107B3000F9071093FA07F0910803F98BFF2309F076
:107B400098C180910703882309F093C1809116069C
:107B500086FF8FC18091A2079091A307AA2797FD66
:107B6000A095BA2FBC01CD0129813A814B815C815E
:107B70000E9471789B01AC0197FF04C02150384FDF
:107B80004F4F5F4F6BE055954795379527956A9511
:107B9000D1F780919F01682E772488249924CA0107
:107BA000B901A40193010E947178DC01CB0180939B
:107BB000960390939703A0939803B0939903B7FF0C
:107BC00004C08150904FAF4FBF4F1C012D013CE0CE
:107BD00055944794379427943A95D1F72092960379
:107BE0003092970340929803509299038091B10785
:107BF0009091B207AA2797FDA095BA2FBC01CD019D
:107C00002D813E814F8158850E94717897FF04C075
:107C10006150784F8F4F9F4F2BE0959587957795C3
:107C200067952A95D1F7A40193010E947178DC0130
:107C3000CB0180939A0390939B03A0939C03B093F2
:107C40009D03B7FF04C08150904FAF4FBF4F9C01C1
:107C5000AD018CE055954795379527958A95D1F7D5
:107C600020939A0330939B0340939C0350939D036E
:107C7000809196039091970390939A078093990728
:107C800080919A0390919B0390939E0780939D0708
:107C9000221933094409550920939A0330939B0311
:107CA00040939C0350939D03E20EF31E041F151F87
:107CB000E092F707F092F8070093F9071093FA079C
:107CC00080919E018823B1F457FF04C02F5F3F4F7E
:107CD0004F4F5F4F5595479537952795A21AB30A91
:107CE000C40AD50AA0924503B0924603C092470346
:107CF000D09248032A893B8979010027F7FC009537
:107D0000102F80919A0390919B03A0919C03B091B6
:107D10009D03E80EF91E0A1F1B1FC801B701298128
:107D20003A814B815C810E9471789B01AC0197FF85
:107D300004C02150384F4F4F5F4FBBE055954795DA
:107D400037952795BA95D1F78091A001A82EBB242D
:107D5000CC24DD24CA01B901A60195010E947178E5
:107D6000DC01CB0180938E0390938F03A09390034B
:107D7000B0939103B7FF04C08150904FAF4FBF4FF6
:107D80003C014D01ACE09594879477946794AA9553
:107D9000D1F760928E0370928F038092900390923D
:107DA0009103C801B7012D813E814F8158850E9402
:107DB000717897FF04C06150784F8F4F9F4FFBE061
:107DC0009595879577956795FA95D1F7A6019501D1
:107DD0000E947178DC01CB0180939203909393030E
:107DE000A0939403B0939503B7FF04C08150904FC4
:107DF000AF4FBF4FAC01BD01ECE07595679557954E
:107E00004795EA95D1F7409392035093930360937B
:107E10009403709395032A893B8937FF03C03095FB
:107E200021953F4F21343105E4F1D401C30197FE80
:107E300007C0B095A095909581959F4FAF4FBF4FCC
:107E400081389105A105B10584F4DB01CA0177FFF2
:107E500007C0B095A095909581959F4FAF4FBF4FAC
:107E600081389105A105B105E4F081E080932D03EF
:107E700018C010929E0710929D0710929A071092B8
:107E80009907109292031092930310929403109208
:107E9000950310928E0310928F031092900310920C
:107EA00091038091920390919303A0919403B091D8
:107EB0009503BC01CD0124E630E040E050E00E9493
:107EC000E578E0908E03F0908F03E21AF30AF092C7
:107ED000B007E092AF0780918E0390918F03A0913D
:107EE0009003B0919103BC01CD0124E630E040E065
:107EF00050E00E94E578DA01C901209192033091A7
:107F000093038C01021B130B1093A5070093A40786
:107F10008091970190919801A0919901B0919A0157
:107F2000BC01CD0128E631E040E050E00E947178CC
:107F30002091F7073091F8074091F9075091FA071F
:107F4000261737074807590764F0261B370B480BDD
:107F5000590B2093F7073093F8074093F907509394
:107F6000FA072091F7073091F8074091F9075091EF
:107F7000FA0757FF0CC0260F371F481F591F2093C1
:107F8000F7073093F8074093F9075093FA07609189
:107F9000A2077091A3076E0D7F1D9B01442737FD3B
:107FA0004095542F8091490390914A03A0914B032F
:107FB000B0914C03820F931FA41FB51F80934903F8
:107FC00090934A03A0934B03B0934C0380910D030D
:107FD00090910E03681B790BCB01AA2797FDA09502
:107FE000BA2F29853A854B855C85820F931FA41F84
:107FF000B51F80934D0390934E03A0934F03B0930E
:108000005003C090B301D090B401E090B501F0905E
:10801000B601C816D906EA06FB06C4F488EA91E65A
:10802000A0E0B0E08C199D09AE09BF0980934D0313
:1080300090934E03A0934F03B09350038093490352
:1080400090934A03A0934B03B0934C03222733270A
:10805000A9012C193D094E095F0980914D039091AA
:108060004E03A0914F03B091500382179307A407CA
:10807000B507B4F4D701C601885A9146A040B04074
:1080800080934D0390934E03A0934F03B0935003FE
:108090008093490390934A03A0934B03B0934C03FE
:1080A0006091B1077091B207600F711F9B01442767
:1080B00037FD4095542F8091510390915203A09128
:1080C0005303B0915403820F931FA41FB51F8093D5
:1080D000510390935203A0935303B09354038091A0
:1080E0000B0390910C03681B790BCB01AA2797FD1A
:1080F000A095BA2F2D853E854F855889820F931FF5
:10810000A41FB51F8093550390935603A093570364
:10811000B0935803E090B701F090B8010091B90115
:108120001091BA01E816F9060A071B07C4F488EA99
:1081300091E6A0E0B0E08E199F09A00BB10B8093EF
:10814000550390935603A0935703B093580380931D
:10815000510390935203A0935303B09354032227E7
:108160003327A9012E193F09400B510B809155036C
:1081700090915603A0915703B0915803821793072B
:10818000A407B507B4F4D801C701885A9146A040A6
:10819000B0408093550390935603A0935703B09338
:1081A00058038093510390935203A0935303B093C9
:1081B00054038091450390914603A0914703B091E9
:1081C00048038093590390935A03A0935B03B093A1
:1081D0005C038091550390915603A0915703B09191
:1081E00058038093750390937603A0937703B0931D
:1081F000780380914D0390914E03A0914F03B0916D
:10820000500380936D0390936E03A0936F03B0931C
:1082100070038091510390915203A0915303B09148
:1082200054038093710390937203A0937303B093EC
:1082300074038091490390914A03A0914B03B0913C
:108240004C038093690390936A03A0936B03B093EC
:108250006C0380911D0190911E0197FD079633E0FC
:10826000959587953A95E1F79093B2078093B1077A
:1082700080911B0190911C0197FD079623E0959535
:1082800087952A95E1F79093A3078093A2078091A1
:108290004C0290914D020F9734F488E19CEF90933B
:1082A000B2078093B10780914C0290914D020797DD
:1082B00034F480E398EF9093B2078093B107209154
:1082C00002012A30A9F480914C0290914D02835F03
:1082D000934034F088EE93E09093B2078093B10717
:1082E00080914C0290914D028A5F9340DCF014C063
:1082F00080914C0290914D02815D974034F088EE60
:1083000093E09093B2078093B10780914C029091D3
:108310004D02805E974034F080ED97E09093B20775
:108320008093B10780914A0290914B020F9734F4E9
:1083300088E19CEF9093A3078093A20780914A0263
:1083400090914B02079734F480E398EF9093A30742
:108350008093A2072A30A9F480914A0290914B029F
:10836000835F934034F088EE93E09093A30780936B
:10837000A20780914A0290914B028A5F9340DCF001
:1083800014C080914A0290914B02815D974034F075
:1083900088EE93E09093A3078093A20780914A020E
:1083A00090914B02805E974034F080ED97E090937F
:1083B000A3078093A207E091AA01EE2309F4B7C0B6
:1083C00040911D0150911E0180919E0390919F0349
:1083D000481B590B5093A5034093A40320911D0102
:1083E00030911E01280F391F37FF02C02F5F3F4F0A
:1083F0003595279530939F0320939E03413851056F
:108400001CF080E890E005C040585F4F34F480E8ED
:108410009FEF9093A5038093A4038E2F9927A0919B
:10842000A403B091A503A89FA001A99F500DB89FD8
:10843000500D112457FF02C0415F5F4F14E0559566
:1084400047951A95E1F78091B1079091B207840F93
:10845000951F9093B2078093B10760911B017091B3
:108460001C018091A0039091A103681B790B70936C
:10847000A3036093A20340911B0150911C01480F7C
:10848000591F57FF02C04F5F5F4F55954795509357
:10849000A1034093A003613871051CF080E890E0CF
:1084A00005C060587F4F34F480E89FEF9093A3039A
:1084B0008093A2032E2F33278091A2039091A303D0
:1084C000829FB001839F700D929F700D1124AB01AC
:1084D00077FF02C0415F5F4FE4E055954795EA950D
:1084E000E1F78091A2079091A307840F951F9093C5
:1084F000A3078093A207A29FC001A39F900DB29FE4
:10850000900D11249C0180911D0190911E01820FFC
:10851000931F90931E0180931D0180911B019091E8
:108520001C01860F971F90931C0180931B010091E3
:10853000B4071091B5078091990790919A0710168A
:1085400011065CF59C0197FF04C022273327281BE6
:10855000390BC901AA2797FDA095BA2F20919E013A
:10856000332744275527BC01CD010E9471789B0118
:10857000AC0197FF04C0215C3F4F4F4F5F4F76E047
:1085800055954795379527957A95D1F78091AF07FF
:108590009091B007820F931F27C097FF03C090955B
:1085A00081959F4FAA2797FDA095BA2F20919E01F4
:1085B000332744275527BC01CD010E9471789B01C8
:1085C000AC0197FF04C0215C3F4F4F4F5F4F66E007
:1085D00055954795379527956A95D1F78091AF07BF
:1085E0009091B007821B930B9093B0078093AF07D5
:1085F000E090BC07F090BD0780919D0790919E0789
:108600001E141F045CF59C0197FF04C0222733272A
:10861000281B390BC901AA2797FDA095BA2F2091D5
:108620009E01332744275527BC01CD010E94717854
:108630009B01AC0197FF04C0215C3F4F4F4F5F4F40
:1086400096E055954795379527959A95D1F780915E
:10865000A4079091A507820F931F27C097FF03C01F
:10866000909581959F4FAA2797FDA095BA2F2091AD
:108670009E01332744275527BC01CD010E94717804
:108680009B01AC0197FF04C0215C3F4F4F4F5F4FF0
:1086900086E055954795379527958A95D1F780912E
:1086A000A4079091A507821B930B9093A507809335
:1086B000A4078091160687FF44C09989992309F081
:1086C00040C0809107038823E1F5A1E0EA16A1E00C
:1086D000FA064CF08091B1079091B2078E0D9F1D64
:1086E000805091400DC0B0E0EB16BFEFFB0664F484
:1086F0008091B1079091B2078E0D9F1D80509F4FC2
:108700009093B2078093B107E1E001301E074CF06F
:108710008091A2079091A307800F911F80509140F4
:108720000CC0FFEF00301F0764F48091A207909106
:10873000A307800F911F80509F4F9093A3078093B2
:10874000A207A2E2B3E06EE076E057E0FB01819180
:10875000BF01E82FFF27EE0FFF1FEF5CF84F0190DE
:10876000F081E02DE259FF4FEF3FF10521F01CF0C1
:10877000EFEFF0E004C0F7FF02C0E0E0F0E04C9162
:10878000242F3327E217F307B1F0CF01821B930B9D
:1087900097FD079613E0959587951A95E1F7242F95
:1087A000280F2C93822F9927E817F90714F42150EA
:1087B00001C02F5F2C935150119657FFC7CFE2E1B4
:1087C000CD5E0C941C7980911803882301F580916B
:1087D000ED028C7F8093ED02ABE4B4E0E0EDF6E0D7
:1087E0009BE080910402882309F48C938D9181830E
:1087F00012829150389697FFF4CF8091040288231B
:1088000059F08091040281508093040205C0809148
:10881000ED0281608093ED02109274021092760254
:10882000809171028E7F8093710285EA8093BC00F3
:10883000089580911806883F38F0EFEFF0E0E81BCC
:10884000F109EE5DFC4F80818093B0018091B00111
:10885000882329F0843618F084E68093B001809153
:108860001A06883F38F0EFEFF0E0E81BF109EE5D03
:10887000FC4F80818093AE018091AE01882329F066
:10888000843618F084E68093AE0180912706883FF5
:1088900038F0EFEFF0E0E81BF109EE5DFC4F80816E
:1088A0008093A9018091A9018B3010F48AE002C065
:1088B0008F3F11F48093A90180915206883F38F0D0
:1088C000EFEFF0E0E81BF109EE5DFC4F8081809353
:1088D000C8078091C807823010F481E002C08F3F42
:1088E00011F48093C80780915406883F38F0EFEF69
:1088F000F0E0E81BF109EE5DFC4F80818093EE070C
:108900008091EE07823010F481E002C08F3F11F4B5
:108910008093EE0780913F06883F38F0EFEFF0E05C
:10892000E81BF109EE5DFC4F80818093C5078091C3
:108930004006883F38F0EFEFF0E0E81BF109EE5D0C
:10894000FC4F808180939F0780914106883F38F0DB
:10895000EFEFF0E0E81BF109EE5DFC4F80818093C2
:10896000CD0790911906983F18F49093AF0109C074
:10897000EFEFF0E0E91BF109EE5DFC4F80818093A1
:10898000AF01983F18F49093AF0109C0EFEFF0E00A
:10899000E91BF109EE5DFC4F80818093AF0180916E
:1089A0001C06883F38F0EFEFF0E0E81BF109EE5DC0
:1089B000FC4F80818093AD0180911E06883F38F086
:1089C000EFEFF0E0E81BF109EE5DFC4F8081809352
:1089D000AB0180912606883F38F0EFEFF0E0E81B0E
:1089E000F109EE5DFC4F80818093AC0180912806F7
:1089F000883F38F0EFEFF0E0E81BF109EE5DFC4F47
:108A000080818093A80180912906883F38F0EFEF9C
:108A1000F0E0E81BF109EE5DFC4F80818093AA0134
:108A200080912A06883F38F0EFEFF0E0E81BF1096B
:108A3000EE5DFC4F80818093A70180912B06883FDB
:108A400038F0EFEFF0E0E81BF109EE5DFC4F8081BC
:108A50008093A60180913106883F38F0EFEFF0E077
:108A6000E81BF109EE5DFC4F80818093A4018091A9
:108A70003206883F38F0EFEFF0E0E81BF109EE5DD9
:108A8000FC4F80818093020380913306883F38F049
:108A9000EFEFF0E0E81BF109EE5DFC4F8081809381
:108AA000010380913406883F38F0EFEFF0E0E81BD7
:108AB000F109EE5DFC4F80818093000380913506C3
:108AC000883F38F0EFEFF0E0E81BF109EE5DFC4F76
:108AD00080818093FF0280914D06883F38F0EFEF50
:108AE000F0E0E81BF109EE5DFC4F80818093FE020F
:108AF00080914E06883F38F0EFEFF0E0E81BF10977
:108B0000EE5DFC4F80818093FD0280914F06883F8F
:108B100038F0EFEFF0E0E81BF109EE5DFC4F8081EB
:108B20008093FC0280915006883F38F0EFEFF0E030
:108B3000E81BF109EE5DFC4F80818093FB02809180
:108B40003606883F38F0EFEFF0E0E81BF109EE5D04
:108B5000FC4F80818093A30180913A06883F38F0D2
:108B6000EFEFF0E0E81BF109EE5DFC4F80818093B0
:108B7000A20180914206883F38F0EFEFF0E0E81B59
:108B8000F109EE5DFC4F80818093A1018091450643
:108B9000883F38F0EFEFF0E0E81BF109EE5DFC4FA5
:108BA00080818093A00180914606883F38F0EFEFE6
:108BB000F0E0E81BF109EE5DFC4F808180939F019E
:108BC00080914706883F38F0EFEFF0E0E81BF109AD
:108BD000EE5DFC4F808180939E0180914C06883F22
:108BE00038F0EFEFF0E0E81BF109EE5DFC4F80811B
:108BF00080939D0180916706883F38F0EFEFF0E0A9
:108C0000E81BF109EE5DFC4F80818093FE078091A7
:108C1000A401282F33272F5F3F4F8CE398E2B9013F
:108C20000E94B0787093B2016093B10180912406E4
:108C30008093EF07809123068093B6079091690691
:108C4000933320F181E08093FA02983F58F0EFEFE0
:108C5000F0E0E91BF109EE5DFC4F8081823310F4F6
:108C60001092FA0280913C0890913D0897FF08C04D
:108C70008091FA02882321F080914604806803C025
:108C8000809146048F778093460402C01092FA02C6
:108C900080913C0890913D0897FF1DC0809118037A
:108CA0008823C9F08091FA028823A9F080910801F5
:108CB000909109018F5F9F4F71F488E99AE3909337
:108CC00024028093230280E094EA90930901809328
:108CD00008011092FA028091FA02882339F08091FB
:108CE000A001823D18F4825E8093A0010895A5E35F
:108CF000B0E0EDE7F6E40C9400790E94EB3B309194
:108D000002013C3010F4299A01C02998E09019031F
:108D1000F0901A03F9A2E8A28091B60799270A9663
:108D2000E816F90614F499A388A3809121038436E8
:108D300008F05CC08091BA039091BB03009731F0BA
:108D400001979093BB038093BA0307C01092180356
:108D50008091ED028F7E8093ED023A3011F0343134
:108D600010F0289A01C028988091EE029091EF02AD
:108D7000895E9340C0F180912E06282F332739A3B6
:108D800028A38091ED0280618093ED0280910A0614
:108D9000A82FBB27AA0FBB1FFD01EB59F84F11826B
:108DA000108280910B06282F3327220F331FC90111
:108DB0008B59984FFC0111821082AF5CB84F11960D
:108DC0001C921E922F5C384FD90111961C921E9254
:108DD00080910D06E82FFF27EE0FFF1FEF5CF84F85
:108DE00011821082AAC210921803A7C28091210397
:108DF0008D3808F4A2C28091ED028F7E8093ED023F
:108E000090912F0682E3989FC00111249093BB0399
:108E10008093BA03E8A1F9A1B9978CF08091180367
:108E2000882369F08091EE029091EF02FFEF8F3F6F
:108E30009F0729F001969093EF028093EE028091B4
:108E4000EE029091EF028F3F910509F038F51092F4
:108E50003D0310923E0310923F0310924003109284
:108E6000390310923A0310923B0310923C03109284
:108E7000A6031092A7031092A8031092A9031092C0
:108E800045031092460310924703109248038A3F0D
:108E9000910549F481E08093C00305C08091ED0203
:108EA00082608093ED0280910C06E82FFF27EE0F81
:108EB000FF1FEF5CF84F80819181813591050CF4A3
:108EC00041C120911803222309F03CC180910D0675
:108ED000E82FFF27EE0FFF1FEF5CF84F8081918195
:108EE0008C3491050CF406C18091BC038F5F809394
:108EF000BC03893C08F426C13C3010F4299801C019
:108F0000299A109218031092BC031092EF0210924B
:108F1000EE0230910A06E32FFF27EE0FFF1FEF5CF2
:108F2000F84F8081918187349105B4F480910B06CC
:108F3000E82FFF27EE0FFF1FEF5CF84F8081918134
:108F40000190F081E02DF7FF03C0F095E195FF4F10
:108F5000E734F1050CF478C041E020910B06A22F14
:108F6000BB27AA0FBB1FAF5CB84F8D919C91119787
:108F70008734910544F0E32FFF27EE0FFF1FEF5CCE
:108F8000F84F808191818D919C918734910574F087
:108F900080910A06E82FFF27EE0FFF1FEF5CF84FC6
:108FA00080819181873491050CF042E0E22FFF2708
:108FB000EE0FFF1FEF5CF84F8081918186349105A1
:108FC00074F480910A06E82FFF27EE0FFF1FEF5C75
:108FD000F84F80819181873491050CF043E0E22FB6
:108FE000FF27EE0FFF1FEF5CF84F808191818A5BB6
:108FF0009F4F74F480910A06E82FFF27EE0FFF1FA2
:10900000EF5CF84F80819181873491050CF044E04A
:10901000E22FFF27EE0FFF1FEF5CF84F8081918159
:109020008A5B9F4F74F480910A06E82FFF27EE0FAA
:10903000FF1FEF5CF84F80819181863491050CF41D
:1090400045E0842F0E94A62E80910B06E82FFF2773
:10905000EE0FFF1FEF5CF84F808191810190F0814E
:10906000E02DF7FF03C0F095E195FF4F7E97BCF42C
:1090700080910A06E82FFF27EE0FFF1FEF5CF84FE5
:10908000808191818A5B9F4F54F481E080936104D9
:1090900088EE93E0909324028093230253C00E94B1
:1090A0007C2F0E946F2E80E00E945E078091300628
:1090B0000E94FF758091160680FF10C080911501F7
:1090C00090911601875B934038F48091150190913F
:1090D00016018E5E924010F40E94381B10922102FD
:1090E00080E00E943D3981E08093BF03809321029C
:1090F000579A1FC080819181855B9F4F0CF58091AD
:10910000BC038F5F8093BC03893CE0F03C3010F4DB
:10911000299801C0299A109218031092BC0310924A
:10912000EF021092EE0281E00E943D3981E08093CF
:10913000BF030E947C2F68E770E00E947B3802C06A
:109140002093BC0380910C06E82FFF27EE0FFF1F32
:10915000EF5CF84F808191818B5A9F4F0CF0EDC0EE
:1091600020911803E0910D06222309F0CAC0FF27C1
:10917000EE0FFF1FEF5CF84F80819181855B9F4F61
:109180000CF0BCC08091BD038F5F8093BD03893C10
:1091900008F4D3C02093BD0380914604882309F0CE
:1091A000A6C08091BF03882309F4A1C081E090E0AC
:1091B0009093EF028093EE0281E080931803109267
:1091C000A6031092A7031092A8031092A90310926D
:1091D00045031092460310924703109248031092E1
:1091E0004103109242031092430310924403809172
:1091F0002506E82EFF24002711278091EB07909188
:10920000EC079C01442737FD4095542FC801B70156
:109210000E947178DC01CB01809355039093560333
:10922000A0935703B09358038091FB079091FC07DC
:109230009C01442737FD4095542FC801B7010E9477
:109240007178DC01CB0180934D0390934E03A09382
:109250004F03B09350038091750390917603A091D2
:109260007703B09178038093510390935203A093B6
:109270005303B093540380916D0390916E03A091BA
:109280006F03B09170038093490390934A03A093B6
:109290004B03B0934C0310923D0310923E03109287
:1092A0003F03109240031092390310923A03109238
:1092B0003B0310923C038091ED0288608093ED02A5
:1092C000909168068FE0989F90011124809133035C
:1092D00090913403820F931F68E671E00E94B0788A
:1092E00097FD0196959587958093790326C08CED1F
:1092F00095E090932402809323021FC02093BD0326
:109300001CC0FF27EE0FFF1FEF5CF84F808191819B
:109310008C34910584F08091BE038F5F8093BE03EF
:10932000893C58F0109218031092BE031092EF027D
:109330001092EE0202C01092BE03809195018150FE
:1093400080939501809195018F3F21F08091ED02EE
:1093500084FF82C30E9419448091C9039091CA037B
:109360009C01220F331F280F391FA0900A06AA2D37
:10937000BB27AA0FBB1FFD01EF5CF84F90902006A2
:10938000492D552780819181849FF001859FF00DA3
:10939000949FF00D11242E0F3F1F37FF02C02D5F49
:1093A0003F4FB9017595679575956795AB59B84F5E
:1093B00080912106082F11278D919C91809F70012B
:1093C000819FF00C909FF00C11246E0D7F1D709307
:1093D000CA036093C9038091CB039091CC039C0195
:1093E000220F331F280F391FB0900B06AB2DBB2760
:1093F000AA0FBB1FFD01EF5CF84F80819181849F14
:10940000F001859FF00D949FF00D11242E0F3F1F4A
:1094100037FF02C02D5F3F4FA901559547955595E0
:109420004795AB59B84F8D919C91809F7001819F5A
:10943000F00C909FF00C11244E0D5F1D5093CC0347
:109440004093CB039E012F5F3F4F8FE1E2ECF1E0B1
:10945000D90101900D928A95E1F78091FA02882353
:1094600009F448C0CB0177FD0396DC01B595A795BB
:10947000B595A795CA0157FD0396FC01F595E795AB
:10948000F595E7958091EB01682F772767FD70953B
:109490006A9F90016B9F300D7A9F300D112480914F
:1094A0000204482F552747FD50954E9FC0014F9FFE
:1094B000900D5E9F900D1124280F391F37FF02C0B9
:1094C000295F3F4F03E0359527950A95E1F73093E3
:1094D000200320931F036E9F90016F9F300D7E9F8E
:1094E000300D11244A9FC0014B9F900D5A9F900D43
:1094F000112444C080916806082F1127DE01A00FB7
:10950000B11FFD0197819093EB01020F131FD8014A
:109510008C9180930204A92FBB27A7FDB095A69F2D
:109520009001A79F300DB69F300D1124E82FFF2723
:10953000E7FDF095E49FC001E59F900DF49F900D2D
:109540001124280F391F37FF02C0295F3F4F13E056
:10955000359527951A95E1F73093200320931F0343
:10956000A49F9001A59F300DB49F300D1124E69F5C
:10957000C001E79F900DF69F900D1124281B390B19
:1095800037FF02C0295F3F4FF3E035952795FA95E5
:10959000E1F730931E0320931D0380910D06E82F01
:1095A000FF27EE0FFF1FEF5CF84F808191819095B0
:1095B00081959F4F90931C0380931B0383309105EB
:1095C00014F0029705C0BFEF8E3F9B0734F402965C
:1095D00090931C0380931B0304C010921C031092F1
:1095E0001B038091FE039091FF032091FA033091B9
:1095F000FB03820F931FC0901F03D0902003C81A53
:10960000D90AD0922003C0921F038091FC0390914D
:10961000FD032091F8033091F903820F931F00910D
:109620001D0310911E03081B190B10931E030093BA
:109630001D0380910C06E82FFF27EE0FFF1FEF5C44
:10964000F84FE080F180E8E7F0E0EE0EFF1EF092C8
:109650001A03E09219038091A9019927AA2797FD7F
:10966000A095BA2FBC01CD010E941978DC01CB0175
:1096700020E030E040E251E4BC01CD010E94BA7725
:10968000DC01CB01BC01CD010E94FC77DC01CB01E8
:109690008093F5078091A8018093CE078091A70160
:1096A0009927AA2797FDA095BA2FBC01CD010E944A
:1096B0001978DC01CB0120E030E040E251E4BC014C
:1096C000CD010E94BA77DC01CB01BC01CD010E9423
:1096D000FC77DC01CB018093A9078091A6018093E0
:1096E000BE0780916D0480FF59C08091FE078138CC
:1096F00008F454C080916604992787FD9095292D20
:109700003327829FA001839F500D929F500D1124FB
:10971000C40ED51ED0922003C0921F03809167040F
:10972000992787FD9095829FB001839F700D929F2E
:10973000700D1124060F171F10931E0300931D03B5
:1097400080916804282F332727FD309580911B03D3
:1097500090911C03820F931F90931C0380931B0313
:1097600080916A04282F332727FD309580911B06AE
:109770009927289FD001299FB00D389FB00D112443
:10978000B0939C01A0939B018091690499278E1549
:109790009F0524F490931A03809319038091190371
:1097A00090911A0397FF04C010921A0310921903A4
:1097B0008091160682FF02C01092CE0740911F03CF
:1097C00050912003CA0157FD03969C0135952795BA
:1097D0003595279537FF03C0309521953F4F8091F0
:1097E000F2029091F30282179307B4F4CA0157FF73
:1097F00003C0909581959F4F97FD0396959587950A
:10980000959587959093F3028093F20285369105A2
:1098100044F084E690E001C001979093F3028093B6
:10982000F20240911D0350911E03CA0157FD039699
:109830009C01359527953595279537FF03C03095C1
:1098400021953F4F8091F0029091F102821793078A
:10985000B4F4CA0157FF03C0909581959F4F97FDBF
:10986000039695958795959587959093F1028093AA
:10987000F0028536910544F084E690E001C001973E
:109880009093F1028093F0028091ED0284FF08C072
:109890001092F3021092F2021092F1021092F00272
:1098A000EB2DFF27EE0FFF1FEF5CF84F40914306B3
:1098B000242F3327808191812817390744F4809120
:1098C0006A0682FF04C081E08093060313C0EB2D7B
:1098D000FF27EE0FFF1FEF5CF84F842F9927209191
:1098E0004406821B9109208131812817390714F41D
:1098F0001092060340910B06E42FFF27EE0FFF1F87
:10990000EF5CF84F50914306852F99272227332784
:10991000281B390B808191818217930744F4809131
:109920006A0683FF04C081E08093050316C080911E
:109930000503882391F0E42FFF27EE0FFF1FEF5C54
:10994000F84F809144069927851B91092081318128
:109950008217930714F410920503EA2DFF27EE0FE8
:10996000FF1FEF5CF84F40914306242F332780817F
:1099700091812817390744F480916A0680FF04C05A
:1099800081E08093030317C080910303882399F03B
:10999000EA2DFF27EE0FFF1FEF5CF84F842F99276A
:1099A00020914406821B91092081318128173907B3
:1099B00014F41092030340910A06E42FFF27EE0FE0
:1099C000FF1FEF5CF84F50914306852F9927222700
:1099D0003327281B390B808191818217930744F428
:1099E00080916A0681FF04C081E08093040316C061
:1099F00080910403882391F0E42FFF27EE0FFF1FCF
:109A0000EF5CF84F809144069927851B91092081CE
:109A100031818217930714F4109204038091060396
:109A2000882319F480910503811181E08093070355
:109A300080910303882321F480910403882351F04B
:109A400081E080930803109207031092060310929E
:109A5000050302C08093080380910703882321F443
:109A600080910803882369F0809142069927E8A134
:109A7000F9A18E179F0714F499A388A381E080931E
:109A80002D038091ED0284FF1AC010921C031092E6
:109A90001B031092200310921F0310921E031092BA
:109AA0001D039AE59093F50788E78093CE0790937E
:109AB000A9078093BE0710920703109208038091B4
:109AC000C1079091C207A091C307B091C40720912C
:109AD0007503309176034091770350917803820F9C
:109AE000931FA41FB51F8093C1079093C207A09333
:109AF000C307B093C4078091C9079091CA07A0918A
:109B0000CB07B091CC0720906D0330906E0340904E
:109B10006F0350907003820D931DA41DB51D80939B
:109B2000C9079093CA07A093CB07B093CC07809145
:109B3000B8079091B907A091BA07B091BB07E09020
:109B40007103F09072030091730310917403EAA201
:109B5000FBA20CA31DA38E0D9F1DA01FB11F809300
:109B6000B8079093B907A093BA07B093BB07809149
:109B7000AA079091AB07A091AC07B091AD07E09018
:109B80006903F0906A0300916B0310916C03EEA2DD
:109B9000FFA208A719A78E0D9F1DA01FB11F8093BC
:109BA000AA079093AB07A093AC07B093AD07F090D2
:109BB0000803FAA6FF2029F480910703882309F4FB
:109BC00060C01092650310926603109267031092B2
:109BD0006803109261031092620310926303109263
:109BE00064031092C1071092C2071092C30710922B
:109BF000C4071092C9071092CA071092CB0710929F
:109C0000CC071092B8071092B9071092BA071092B9
:109C1000BB071092AA071092AB071092AC071092E4
:109C2000AD078091550390915603A0915703B091D1
:109C300058038093510390935203A0935303B0931E
:109C4000540380914D0390914E03A0914F03B09126
:109C500050038093490390934A03A0934B03B0931E
:109C60004C03109239021092380210920C03109299
:109C70000B0310920E0310920D030AA5002309F0A6
:109C8000F2C180910703882309F0EDC18091FB05A3
:109C90009091FC05815092402CF480911803882308
:109CA00009F4E1C190906908A09025066091EB0746
:109CB0007091EC077BAB6AAB8091FB079091FC073E
:109CC0009DAB8CAB9FEF991609F4D9C0BB24CC2473
:109CD000DD24CA01B901A60195010E94E578790148
:109CE0008A01EAA9FBA9CF01AA2797FDA095BA2F5F
:109CF000E81AF90A0A0B1B0BC201B101A601950172
:109D00000E94E57859016A012CA93DA9C901AA2739
:109D100097FDA095BA2FA81AB90ACA0ADB0A292CFE
:109D2000332427FC3094432C532CC801B701A201E3
:109D300091010E94717897FF04C061507E4F8F4F50
:109D40009F4F3B014C0109E0959487947794679469
:109D50000A95D1F7C601B501A20191010E9471785F
:109D600097FF04C061507E4F8F4F9F4F5B016C0186
:109D700019E0D594C794B794A7941A95D1F7809118
:109D8000F2029091F302813491053CF48091F0024B
:109D90009091F10281349105D4F0D401C30197FE72
:109DA00003C00196A11DB11D3C014D0195948794FE
:109DB00077946794D601C501D7FE03C00196A11D13
:109DC000B11D5C016D01D594C794B794A79480919F
:109DD0000D06E82FFF27EE0FFF1FEF5CF84F808185
:109DE00091810190F081E02DF7FF03C0F095E1959E
:109DF000FF4F7A97A4F0C401B30123E030E040E0C4
:109E000050E00E94E57839014A01C601B50123E01E
:109E100030E040E050E00E94E57859016A0180910D
:109E20006B08282F332727FD3095432F532F2615F6
:109E300037054805590514F439014A01992787FD6A
:109E40009095909581959F4FAA2797FDA095BA2F41
:109E5000681679068A069B0614F43C014D012A1502
:109E60003B054C055D0514F459016A01A816B906B5
:109E7000CA06DB060CF0CFC05C016D01CCC0EA2C39
:109E8000FF2400271127CA01B901A80197010E94E8
:109E9000E57839014A014AA95BA9CA01AA2797FDB9
:109EA000A095BA2F681A790A8A0A9B0AC201B101E1
:109EB000A80197010E94E57859016A016CA97DA962
:109EC000CB01AA2797FDA095BA2FA81AB90ACA0AEA
:109ED000DB0AD401C30197FE03C00F96A11DB11D7B
:109EE0003C014D01F4E09594879477946794FA953A
:109EF000D1F7D601C501D7FE03C00F96A11DB11D34
:109F00005C016D01E4E0D594C794B794A794EA95F9
:109F1000D1F78091F2029091F302813491053CF4E3
:109F20008091F0029091F10281349105A4F0C40176
:109F3000B30123E030E040E050E00E94E5783901D1
:109F40004A01C601B50123E030E040E050E00E9444
:109F5000E57859016A0180910D06E82FFF27EE0F81
:109F6000FF1FEF5CF84F808191810190F081E02D1F
:109F7000F7FF03C0F095E195FF4F7A97A4F0C40175
:109F8000B30123E030E040E050E00E94E578390181
:109F90004A01C601B50123E030E040E050E00E94F4
:109FA000E57859016A0171E2671671048104910430
:109FB0002CF070E2672E712C812C912C80EE6816AB
:109FC0008FEF78068FEF88068FEF980644F460EEE7
:109FD000662E6FEF762E6FEF862E6FEF962E91E244
:109FE000A916B104C104D1042CF050E2A52EB12C65
:109FF000C12CD12CA0EEAA16AFEFBA06AFEFCA065D
:10A00000AFEFDA0644F440EEA42E4FEFB42E4FEF3C
:10A01000C42E4FEFD42E8091550390915603A091FA
:10A020005703B091580386199709A809B909809375
:10A03000550390935603A0935703B0935803809110
:10A040004D0390914E03A0914F03B09150038A1994
:10A050009B09AC09BD0980934D0390934E03A093D7
:10A060004F03B093500380913802909139028F3F93
:10A07000910509F008F4C4C5BAA5BB2309F04EC583
:10A0800080910703882309F049C580912D03882317
:10A0900009F044C5E0914B06EBA7EE2309F43EC559
:10A0A0008091C1079091C207A091C307B091C407E6
:10A0B000B7FF04C081509F4FAF4FBF4FE92EFA2E1C
:10A0C0000B2F112707FD1A95E092C107F092C207E6
:10A0D0000093C3071093C4078091C9079091CA07E2
:10A0E000A091CB07B091CC07B7FF04C081509F4F20
:10A0F000AF4FBF4F892F9A2FAB2FBB27A7FDBA9524
:10A100008CA79DA7AEA7BFA78093C9079093CA0746
:10A11000A093CB07B093CC0780912506A82EBB2433
:10A12000CC24DD24209165033091660340916703C0
:10A1300050916803C601B5010E94717897FF04C071
:10A1400061507F4F8F4F9F4F672E782E892E992415
:10A1500087FC9A946092650370926603809267030D
:10A1600090926803209161033091620340916303F0
:10A1700050916403C601B5010E94717897FF04C035
:10A1800061507F4F8F4F9F4F272E382E492E5524D9
:10A1900047FC5A9420926103309262034092630319
:10A1A0005092640380915D0390915E03A0915F03E0
:10A1B000B0916003B7FF04C081509F4FAF4FBF4FB6
:10A1C000892F9A2FAB2FBB27A7FDBA9580935D03EC
:10A1D00090935E03A0935F03B0936003D801C7011F
:10A1E00086199709A809B9098093B2039093B3031C
:10A1F000A093B403B093B50320914A06E22EFF2446
:10A2000000271127BC01CD01A80197010E94E57824
:10A2100059016A012093C1033093C2034093C303E1
:10A220005093C4038CA59DA5AEA5BFA58219930923
:10A23000A409B5098093B6039093B703A093B8031C
:10A24000B093B903BC01CD01A80197010E94E57844
:10A250002093C5033093C6034093C7035093C803AC
:10A26000D601C501D7FE04C081509F4FAF4FBF4FED
:10A27000892F9A2FAB2FBB27A7FDBA9590930C037C
:10A2800080930B0357FF04C021503F4F4F4F5F4F48
:10A29000BB2757FDBA95A52F942F832F90930E03BC
:10A2A00080930D038091F2029091F3028134910525
:10A2B000DCF48091F0029091F10281349105A4F4D4
:10A2C00080910D06E82FFF27EE0FFF1FEF5CF84F80
:10A2D000808191810190F081E02DF7FF03C0F0951E
:10A2E000E195FF4F7A97E4F0809169088F3FC1F4C0
:10A2F00080910B0390910C0397FD0196959587959E
:10A3000090930C0380930B0380910D0390910E03A7
:10A3100097FD01969595879590930E0380930D0375
:10A320008091B8079091B907A091BA07B091BB0787
:10A33000B7FF04C081509F4FAF4FBF4F892F9A2F57
:10A34000AB2FBB27A7FDBA958093B8079093B907A9
:10A35000A093BA07B093BB078091AA079091AB076F
:10A36000A091AC07B091AD07B7FF04C081509F4FDB
:10A37000AF4FBF4F892F9A2FAB2FBB27A7FDBA95A1
:10A380008093AA079093AB07A093AC07B093AD0757
:10A390008091750390917603A0917703B091780333
:10A3A0002AA13BA14CA15DA1281B390B4A0B5B0BD9
:10A3B0002093AA033093AB034093AC035093AD03B7
:10A3C00080916D0390916E03A0916F03B091700323
:10A3D000EEA0FFA008A519A5E81AF90A0A0B1B0BA5
:10A3E000E092AE03F092AF030093B0031093B10379
:10A3F0002093B2033093B3034093B4035093B50357
:10A40000E092B603F092B7030093B8031093B90338
:10A410008091510390915203A0915303B091540342
:10A42000821B930BA40BB50B8093510390935203A3
:10A43000A0935303B09354038091490390914A032E
:10A44000A0914B03B0914C038E199F09A00BB10B47
:10A450008093490390934A03A0934B03B0934C031A
:10A46000FBA5FF23E1F020912B0330912C03213831
:10A4700031054CF08091860390918703019690936B
:10A4800087038093860320583F4F4CF480918603C6
:10A49000909187030197909387038093860310928E
:10A4A0002C0310922B0381E090E09093CE038093D5
:10A4B000CD03A090B203B090B303C090B403D0908A
:10A4C000B503D601C501D7FE07C088279927DC014F
:10A4D0008A199B09AC09BD0981509240A040B04047
:10A4E00034F084E090E09093CE038093CD0380918C
:10A4F000D3039091D403A091D503B091D6032091BA
:10A50000C1073091C2074091C3075091C407821B15
:10A51000930BA40BB50B815E914BAF4FBF4F8F5385
:10A520009C49A040B04028F080916A0889310CF421
:10A53000FFC031E0A31630E1B30630E0C30630E0DF
:10A54000D3060CF473C08091CF03882309F46AC04A
:10A55000D601C501D7FE07C088279927DC018A19D3
:10A560009B09AC09BD099C01AD01B7FF04C0215096
:10A570003E4F4F4F5F4F09E05595479537952795CB
:10A580000A95D1F78091CD039091CE03820F931F4E
:10A590009093CE038093CD03D601C501D7FE03C0AF
:10A5A0000796A11DB11D13E0B595A79597958795C1
:10A5B0001A95D1F78093C1039093C203A093C3036C
:10A5C000B093C40389589341A040B04064F088E838
:10A5D00093E1A0E0B0E08093C1039093C203A09305
:10A5E000C303B093C4032091C1033091C2034091CF
:10A5F000C3035091C40357FF04C021503F4F4F4F36
:10A600005F4F232F342F452F552747FD5A958091B3
:10A610000B0390910C03820F931F90930C03809374
:10A620000B0306C081E08093CF0302C01092CF03DA
:10A6300050E0A51650EFB5065FEFC5065FEFD506F3
:10A640000CF073C08091D003882309F46AC0D6014E
:10A65000C501D7FE07C088279927DC018A199B0905
:10A66000AC09BD099C01AD01B7FF04C021503E4FAC
:10A670004F4F5F4FF9E05595479537952795FA95D8
:10A68000D1F78091CD039091CE03820F931F9093C9
:10A69000CE038093CD03D601C501D7FE03C0079634
:10A6A000A11DB11DE3E0B595A79597958795EA950E
:10A6B000D1F78093C1039093C203A093C303B093D7
:10A6C000C40388579C4EAF4FBF4F64F488E79CEE9D
:10A6D000AFEFBFEF8093C1039093C203A093C30376
:10A6E000B093C4032091C1033091C2034091C303CE
:10A6F0005091C40357FF04C021503F4F4F4F5F4F4D
:10A70000232F342F452F552747FD5A9580910B0352
:10A7100090910C03820F931F90930C0380930B0373
:10A7200011C081E08093D0030DC01092D0030AC005
:10A730001092CE031092CD0388EE93E09093BC016B
:10A740008093BB017BA5272F33278091CD03909168
:10A75000CE032817390724F43093CE032093CD037A
:10A76000E0916A08EE2379F02E2F332727FD3095EC
:10A770008091CD039091CE032817390724F43093AC
:10A78000CE032093CD034091B2035091B303609167
:10A79000B4037091B503413851056105710574F03A
:10A7A00080918A0390918B032091CD033091CE0349
:10A7B000820F931F90938B0380938A0340585F4FBF
:10A7C0006F4F7F4F74F480918A0390918B03209197
:10A7D000CD033091CE03821B930B90938B03809318
:10A7E0008A0381E090E09093CE038093CD03A09004
:10A7F000B603B090B703C090B803D090B903D601A8
:10A80000C501D7FE07C088279927DC018A199B0953
:10A81000AC09BD0981509240A040B04034F084E0C2
:10A8200090E09093CE038093CD038091D7039091D5
:10A83000D803A091D903B091DA032091C9073091D0
:10A84000CA074091CB075091CC07821B930BA40BF6
:10A85000B50B815E914BAF4FBF4F8F539C49A040CA
:10A86000B04018F0E9310CF4FFC011E0A11610E17E
:10A87000B10610E0C10610E0D1060CF473C080915F
:10A88000D103882309F46AC0D601C501D7FE07C0E9
:10A8900088279927DC018A199B09AC09BD099C010D
:10A8A000AD01B7FF04C021503E4F4F4F5F4F69E0ED
:10A8B00055954795379527956A95D1F78091CD03A2
:10A8C0009091CE03820F931F9093CE038093CD037C
:10A8D000D601C501D7FE03C00796A11DB11D23E017
:10A8E000B595A795979587952A95D1F78093C50338
:10A8F0009093C603A093C703B093C80389589341AC
:10A90000A040B04064F088E893E1A0E0B0E080931C
:10A91000C5039093C603A093C703B093C8032091C7
:10A92000C5033091C6034091C7035091C80357FF38
:10A9300004C021503F4F4F4F5F4F232F342F452FDF
:10A94000552747FD5A9580910D0390910E03820F74
:10A95000931F90930E0380930D0306C081E08093B4
:10A96000D10302C01092D10330E0A31630EFB3063A
:10A970003FEFC3063FEFD3060CF073C08091D203C4
:10A98000882309F46AC0D601C501D7FE07C088270D
:10A990009927DC018A199B09AC09BD099C01AD010D
:10A9A000B7FF04C021503E4F4F4F5F4F09E0559510
:10A9B0004795379527950A95D1F78091CD039091CA
:10A9C000CE03820F931F9093CE038093CD03D601C5
:10A9D000C501D7FE03C00796A11DB11D13E0B595B3
:10A9E000A795979587951A95D1F78093C50390936E
:10A9F000C603A093C703B093C80388579C4EAF4FBC
:10AA0000BF4F64F488E79CEEAFEFBFEF8093C503C0
:10AA10009093C603A093C703B093C8032091C503C6
:10AA20003091C6034091C7035091C80357FF04C03B
:10AA300021503F4F4F4F5F4F232F342F452F552726
:10AA400047FD5A9580910D0390910E03820F931F3D
:10AA500090930E0380930D0311C081E08093D20385
:10AA60000DC01092D2030AC01092CE031092CD03F3
:10AA700088EE93E09093BC018093BB015BA5252FEA
:10AA800033278091CD039091CE032817390724F402
:10AA90003093CE032093CD0380916A08882379F008
:10AAA000282F332727FD30958091CD039091CE0339
:10AAB0002817390724F43093CE032093CD03409117
:10AAC000B6035091B7036091B8037091B903413850
:10AAD00051056105710574F0809188039091890397
:10AAE0002091CD033091CE03820F931F9093890361
:10AAF0008093880340585F4F6F4F7F4FCCF4809115
:10AB00008803909189032091CD033091CE03821B5D
:10AB1000930B90938903809388030AC010920E03CD
:10AB200010920D0310920C0310920B0310922D0340
:10AB30008091CE07882341F410920E0310920D03EA
:10AB400010920C0310920B038091C1079091C207E1
:10AB5000A091C307B091C4078093D3039093D4030B
:10AB6000A093D503B093D6038091C9079091CA07EB
:10AB7000A091CB07B091CC078093D7039093D803D3
:10AB8000A093D903B093DA03109265031092660381
:10AB9000109267031092680310926103109262038F
:10ABA000109263031092640310925D0310925E038F
:10ABB00010925F03109260031092C1071092C207B7
:10ABC0001092C3071092C4071092C9071092CA07C7
:10ABD0001092CB071092CC071092B8071092B907C9
:10ABE0001092BA071092BB071092AA071092AB07F7
:10ABF0001092AC071092AD071092390210923802F1
:10AC000000911B0310911C03C80117FF04C0882783
:10AC10009927801B910B40976CF088EE93E09093FE
:10AC2000BC018093BB018091160684FD03C081E0C6
:10AC30008093C003F0902206AF2CBB24CC24DD24EB
:10AC4000B801882777FD8095982F980117FF04C0D9
:10AC500022273327201B310B442737FD4095542FE3
:10AC60000E9471789B01AC01C601B5010E94717808
:10AC700097FF04C061507E4F8F4F9F4FF9E095952D
:10AC8000879577956795FA95D1F79B018F2D992731
:10AC9000809FD001819FB00D909FB00D1124CD01F8
:10ACA000B7FD03969595879595958795280F391F3C
:10ACB000442737FD4095542F2093A6033093A703D4
:10ACC0004093A8035093A9038091450390914603B4
:10ACD000A0914703B0914803821B930BA40BB50BC3
:10ACE0008093450390934603A0934703B093480392
:10ACF0008155934CA040B04064F080E593ECA0E017
:10AD0000B0E08093450390934603A0934703B0932C
:10AD100048038091450390914603A0914703B09169
:10AD20004803805B9C43AF4FBF4F64F480EB9CE3D0
:10AD3000AFEFBFEF8093450390934603A093470383
:10AD4000B0934803A0903303B0903403A114B1042E
:10AD500009F478C18091160683FF74C18091750350
:10AD600090917603A0917703B0917803B7FF04C068
:10AD700081509E4FAF4FBF4F79E0B595A7959795FE
:10AD800087957A95D1F76C0197FF04C0D094C19450
:10AD9000D108D39480916D0390916E03A0916F03BD
:10ADA000B0917003B7FF04C081509E4FAF4FBF4FAB
:10ADB00069E0B595A795979587956A95D1F7BC01F8
:10ADC00097FF03C0709561957F4FC616D7060CF4A8
:10ADD0006B01B601D7FE02C0695F7F4F2B0153E0C4
:10ADE000559447945A95E1F742E0E42EF12C4E0C2D
:10ADF0005F1C0CE112E0A00EB11E75010027F7FCEC
:10AE00000095102F24EE3DEFA20EB31E8091F707A0
:10AE10009091F807A091F907B091FA076090970117
:10AE2000709098018090990190909A01BC01CD0199
:10AE3000A40193010E94E578E21AF30A040B150BB2
:10AE4000C801B70128E631E040E050E00E94E57813
:10AE5000DC01CB013CE4E32E3FEFF32EE80EF91EBC
:10AE60000091BB011091BC010115110589F539E173
:10AE7000C316D1046CF580912B0390912C038E0D99
:10AE80009F1D90932C0380932B038091C0038823F4
:10AE9000F9F0C501AA2797FDA095BA2FBC01CD01F5
:10AEA000A40193010E947178DC01CB018093F70724
:10AEB0009093F807A093F907B093FA07BC01CD016E
:10AEC0000E94E57830933203209331031092C0033F
:10AED000C70124E0880F991F2A95E1F7B2010E946B
:10AEE000B078CB01AA2797FDA095BA2F2091F7073C
:10AEF0003091F8074091F9075091FA07280F391F50
:10AF00004A1F5B1F2093F7073093F8074093F90718
:10AF10005093FA07F090AC016F2D7727C69EC001C1
:10AF2000C79E900DD69E900D112497FD4F966C01F3
:10AF300095E0D594C7949A95E1F76C197D096B015A
:10AF400077FD7AC00115110509F06FC00091F2027A
:10AF50001091F3028091F0029091F102080F191FF5
:10AF600017FF02C0095F1F4F83E0159507958A956B
:10AF7000E1F7005C1F4FCA01B901A40193010E94CF
:10AF8000E578DA01C9012091310330913203442779
:10AF900037FD4095542F821B930BA40BB50B845E99
:10AFA0009D4FAF4FBF4FBC01CD0128E631E040E0DF
:10AFB00050E00E94E578DC01CB01845B90408C9DE1
:10AFC000A0018D9D500D9C9D500D1124CA01B8010A
:10AFD0000E94B07883E0F89E60011124C616D7065F
:10AFE00014F4B60108C0882799278C199D096817A1
:10AFF00079070CF4BC019B01442737FD4095542F81
:10B000008091450390914603A0914703B091480376
:10B01000820F931FA41FB51F80934503909346038F
:10B02000A0934703B09348030DC001501040109304
:10B03000BC010093BB0106C084EF91E09093BC017A
:10B040008093BB0180912D03882381F010923903F6
:10B0500010923A0310923B0310923C0310923D036E
:10B0600010923E0310923F03109240037090080329
:10B070007720F1F48091CE07282F332744275527D6
:10B080008091750390917603A0917703B091780336
:10B09000BC01CD010E947178DC01CB01BC01CD0166
:10B0A00028EF3AE240E050E00E94E578290102C032
:10B0B00044245524909007039920F1F48091CE0701
:10B0C000282F33274427552780916D0390916E03D5
:10B0D000A0916F03B0917003BC01CD010E94717803
:10B0E000DC01CB01BC01CD0128EF3AE240E050E0A9
:10B0F0000E94E578190102C0222433248091A4071C
:10B100009091A507893C91051CF088EC90E005C062
:10B1100088539F4F34F488E39FEF9093A507809363
:10B12000A4078091AF079091B007893C91051CF06E
:10B1300088EC90E005C088539F4F34F488E39FEF7C
:10B140009093B0078093AF078091B1079091B207B9
:10B15000AA2797FDA095BA2F2091F507A22EBB2410
:10B16000CC24DD24BC01CD01A60195010E9471789B
:10B170009B01AC018091A4079091A507AA2797FD98
:10B18000A095BA2F17E0880F991FAA1FBB1F1A9509
:10B19000D1F7280F391F4A1F5B1F57FF04C0215CDE
:10B1A0003F4F4F4F5F4FA6E05595479537952795F1
:10B1B000AA95D1F77201E20EF31EF092B207E09267
:10B1C000B1078091A2079091A307AA2797FDA095A8
:10B1D000BA2FBC01CD01A60195010E9471789B0197
:10B1E000AC018091AF079091B007AA2797FDA09579
:10B1F000BA2FF7E0880F991FAA1FBB1FFA95D1F746
:10B20000280F391F4A1F5B1F57FF04C0215C3F4FA7
:10B210004F4F5F4FE6E05595479537952795EA954F
:10B22000D1F78101020F131F1093A3070093A20708
:10B230008091F0079091F107880F991FAA2797FD39
:10B24000A095BA2F2091A907332744275527BC0181
:10B25000CD010E9471785B016C0197FF08C08FE3FC
:10B2600090E0A0E0B0E0A80EB91ECA1EDB1E76E09A
:10B27000D594C794B794A7947A95D1F78091BE07D7
:10B28000282F3327442755278091590390915A033B
:10B29000A0915B03B0915C03BC01CD010E94717869
:10B2A000DC01CB01BC01CD0120EF35E540E050E0F1
:10B2B0000E94E578B501620F731F7093F1076093E8
:10B2C000F00791E0E91690E1F90634F080E090E1B2
:10B2D0009093B2078093B1078091B1079091B20724
:10B2E0008050904F34F480E090EF9093B2078093B9
:10B2F000B1070150104134F080E090E19093A30732
:10B300008093A2078091A2079091A3078050904F4D
:10B3100034F480E090EF9093A3078093A2076150EC
:10B32000704134F080E090E19093F1078093F00752
:10B330008091F0079091F1078050904F34F480E0B5
:10B3400090EF9093F1078093F00780910001482FD0
:10B35000552780911F01909120014817590794F4B7
:10B3600020911F013091200168A179A1649FC00143
:10B37000659F900D749F900D1124B9010E949C78D7
:10B3800079A368A388A199A1880F991F880F991F95
:10B3900099A388A34091160640FF92C6992009F010
:10B3A0008FC6772009F08CC6CC24DD24460180911D
:10B3B000090390910A039093DF058093DE052091A5
:10B3C0008C0330918D032115310509F03FC0809128
:10B3D0001501909116018959934058F087B5853F22
:10B3E00020F480913C02815011C081E08093E603FB
:10B3F0004EC080911501909116018436910508F593
:10B4000087B58B30D0F080913C028F5F80933C02F7
:10B410009AE089029001112480910506821B87BD64
:10B420008CE291E090932402809323028EE591E0D8
:10B4300090938D0380938C032AC081E08093E50371
:10B4400026C07092E5037092E60321C08091130339
:10B4500090911403A0911503B091160354E0880F46
:10B46000991FAA1FBB1F5A95D1F780933D02909355
:10B470003E02A0933F02B0934002D0923B02C092A2
:10B480003A022150304030938D0320938C03209159
:10B49000AF0141FF24C02233D8F48091C101815013
:10B4A0008093C1018F3FD9F510922E038091130331
:10B4B00090911403A0911503B091160380930F038C
:10B4C00090931003A0931103B093120381E004C082
:10B4D00081E080932E0388EC8093C10120C080918D
:10B4E0009B0190919C01820F911D20911B06332797
:10B4F000829FF001839FF00D929FF00D1124CF01E8
:10B50000AA2797FDA095BA2F80930F03909310035D
:10B51000A0931103B093120381E080932E038091D6
:10B52000750390917603A0917703B0917803E09032
:10B530009701F09098010091990110919A01BC0136
:10B54000CD01A80197010E94E57859016A01809117
:10B550006D0390916E03A0916F03B0917003BC01D5
:10B56000CD01A80197010E94E578B901C5010E94AB
:10B57000B76F3C01CC971CF04CE3642E712CC301D7
:10B580000E94B26B3C0180E28093960180912E0371
:10B59000882309F421C48091ED0299279C01207130
:10B5A000307084FD19C460916C0660FD04C0809108
:10B5B000160681FD07C008A119A13093DC03209372
:10B5C000DB0397C18091ED0281FF69C14091BD010C
:10B5D0005091BE01CA010F962091190330911A03B0
:10B5E00082179307ACF58091E503882389F5809154
:10B5F000E70381FF13C08D7F8093E70380911303DE
:10B6000090911403A0911503B091160380930F033A
:10B6100090931003A0931103B09312038091E7035A
:10B6200081608093E703241B350B2F50304037FF98
:10B6300003C0309521953F4F8091DB039091DC034F
:10B64000820F931F9093DC038093DB038BE26EC029
:10B65000CA010F9728173907ACF58091E6038823B4
:10B6600089F58091E70380FF13C08E7F8093E70305
:10B670008091130390911403A0911503B0911603C8
:10B6800080930F0390931003A0931103B0931203C0
:10B690008091E70382608093E703241B350B215FD1
:10B6A0003F4F37FF03C0309521953F4F8091DB031B
:10B6B0009091DC03821B930B9093DC038093DB035C
:10B6C0008DE234C02091E703822F99278370907018
:10B6D000892B59F12C7F2093E7031092DC03109201
:10B6E000DB03209113033091140340911503509113
:10B6F000160320930F0330931003409311035093CC
:10B70000120361FF06C084EF91E0909324028093BE
:10B71000230280911703882341F423333105410527
:10B7200051051CF081E0809317038DE3809396010F
:10B730002091DB033091DC03C90137FF04C0882767
:10B740009927821B930B815092400CF491C08091F9
:10B750001B069927289FA001299F500D389F500D47
:10B760001124CA0160E075E00E94B078CB01AA27DD
:10B7700097FDA095BA2F20910F03309110034091AF
:10B78000110350911203280F391F4A1F5B1F20938A
:10B790000F03309310034093110350931203109240
:10B7A000DC031092DB03A0901303B0901403C0904D
:10B7B0001503D0901603D601C50180509440A040D7
:10B7C000B04082179307A407B5075CF4D601C50102
:10B7D00080509C4FAF4FBF4F281739074A075B0770
:10B7E00044F080930F0390931003A0931103B09340
:10B7F000120380916C0681FF06C08BE490E0909369
:10B8000024028093230280911F06882389F54091AA
:10B81000090350910A0357FF02C04D5F5F4F5595D2
:10B8200047955595479580911F0190912001209152
:10B8300000013327489FB001499F700D589F700D3C
:10B840001124CB01B9010E94B0787093BE016093BE
:10B85000BD01663471051CF486E490E005C06739CB
:10B86000710534F086E990E09093BE018093BD01AC
:10B8700080918C0390918D03892BB9F180911303F2
:10B8800090911403A0911503B091160380930F03B8
:10B8900090931003A0931103B093120326C08091DC
:10B8A000130390911403A0911503B09116038059CE
:10B8B0009140A040B04080930F0390931003A09359
:10B8C0001103B093120380911F06882311F099276A
:10B8D00002C088E790E09093BE018093BD0188A1EB
:10B8E00099A190930A038093090300910903109191
:10B8F0000A03A0901303B0901403C0901503D090D6
:10B90000160320910F0330911003409111035091C1
:10B9100012032A153B054C055D0524F080916C0649
:10B9200080FD9CC280918C0390918D03892B39F00E
:10B930000091090310910A03CC24DD24C9C0D6016B
:10B94000C501821B930BA40BB50B8093AA039093A4
:10B95000AB03A093AC03B093AD038230E0E89E0745
:10B96000EFEFAE07EFEFBE072CF481E090E8AFEF0A
:10B97000BFEF09C08F5F9F47A040B04064F08FEFDA
:10B980009FE7A0E0B0E08093AA039093AB03A0935D
:10B99000AC03B093AD03C090AA03D090AB038091E9
:10B9A000AE01282F3327442755278091AA03909171
:10B9B000AB03A091AC03B091AD03BC01CD010E94DB
:10B9C000717897FF04C0615E7F4F8F4F9F4F25E0D6
:10B9D00095958795779567952A95D1F76093AA03F2
:10B9E0007093AB038093AC039093AD0365302EEF5F
:10B9F00072072FEF82072FEF92072CF484E09EEF5F
:10BA0000AFEFBFEF09C0605074408040904064F0D9
:10BA100080E094E0A0E0B0E08093AA039093AB03B1
:10BA2000A093AC03B093AD038090AA039090AB03B6
:10BA300020913A0230913B0237FF02C0295F3F4F0D
:10BA400083E0359527958A95E1F74FEF2238340743
:10BA50001CF421E83FEF05C02038310514F020E840
:10BA600030E0C901AA2797FDA095BA2F2091B00117
:10BA7000332744275527BC01CD010E94717897FFD9
:10BA800004C06D5F7F4F8F4F9F4FB2E095958795B4
:10BA900077956795BA95D1F79B015FEF6130750790
:10BAA0001CF420E03FEF06C06F3F710519F014F061
:10BAB00020E031E08091E703882341F0C90137FDA0
:10BAC00003969C013595279535952795820E931EF3
:10BAD0002091AD01222309F454C060913503709187
:10BAE0003603809137039091380397FF04C0615863
:10BAF0007F4F8F4F9F4FF7E0959587957795679587
:10BB0000FA95D1F73327442755270E94717897FF7C
:10BB100004C0615E7F4F8F4F9F4FE5E095958795FD
:10BB200077956795EA95D1F76093AA037093AB0375
:10BB30008093AC039093AD036138AFEF7A07AFEF1A
:10BB40008A07AFEF9A072CF480E89FEFAFEFBFEFC3
:10BB50000AC06F3F71058105910569F064F080E0CE
:10BB600091E0A0E0B0E08093AA039093AB03A09390
:10BB7000AC03B093AD038091AA039091AB03880E00
:10BB8000991E8091AB01282F332780916D0899274A
:10BB900087FD9095289FF001299FF00D389FF00DAB
:10BBA00011249F01F7FF02C021583F4F220F232F7E
:10BBB000221F330BFFEF21383F071CF420E83FEF33
:10BBC00006C02F3F310519F014F020E031E0820E5D
:10BBD000931EC401AA2797FDA095BA2FE0900903F0
:10BBE000F0900A039701442737FD4095542FBC017C
:10BBF000CD010E94717897FF04C061507E4F8F4F36
:10BC00009F4F59E095958795779567955A95D1F708
:10BC1000061B170B8091DB039091DC03892B09F045
:10BC200060C01E141F040CF05CC09601D7FE03C058
:10BC3000309521953F4F2D33310540F48091DF033E
:10BC40009091E0038017910774F526C02C53304083
:10BC500045E0369527954A95E1F72031310510F0FA
:10BC60002FE030E04091DF035091E0031C141D04ED
:10BC7000E4F480E190E0821B930B489F9001499F80
:10BC8000300D589F300D112494E0369527959A95E4
:10BC9000E1F72017310720F58091BF019091C00195
:10BCA00008171907F4F08C011CC0205F3F4F8091EA
:10BCB000BF019091C001829FB001839F700D929F40
:10BCC000700D11249B0184E0369527958A95E1F744
:10BCD0004017510714F08A0104C00217130708F037
:10BCE0008901C801AA2797FDA095BA2F1DE0880FEA
:10BCF000991FAA1FBB1F1A95D1F79301442737FD3F
:10BD00004095542FBC01CD010E94E5782093AE03ED
:10BD10003093AF034093B0035093B1030091AE034F
:10BD20001091AF038091DD039091DE039C01220FFF
:10BD3000331F280F391F200F311F37FF02C02D5F1F
:10BD40003F4FA90155954795559547955093DE036B
:10BD50004093DD0380911706282F3327220F331FCE
:10BD6000220F331F241735076CF48091EF07282F1B
:10BD70003327220F331F220F331F20553040421725
:10BD8000530724F03093DE032093DD0380916C068B
:10BD900080FF0DC08091DD039091DE03A8A1B9A1C1
:10BDA0008A179B0724F0B093DE03A093DD0328A13C
:10BDB00039A12E193F0937FF02C02D5F3F4F35953E
:10BDC000279535952795E091DD03F091DE03E20F8D
:10BDD000F31FF9A3E8A342C080911F06882301F551
:10BDE0006091090370910A0377FF02C06D5F7F4F76
:10BDF000759567957595679540911F015091200144
:10BE000080910001282F3327649FC001659F900D0A
:10BE1000749F900D1124B9010E94B078CB0101C02C
:10BE200099279093BE018093BD018091BD019091AF
:10BE3000BE01873491051CF486E490E005C0863984
:10BE4000910534F086E990E09093BE018093BD01A6
:10BE5000E8A0F9A0F092DE03E092DD038091ED020C
:10BE600099279C012270307081FF1CC18091E103F1
:10BE70009091E203A091E303B091E4030097A10540
:10BE8000B10521F0809117038130B1F408A119A107
:10BE9000C801AA2797FDA095BA2F2EE0880F991FF9
:10BEA000AA1FBB1F2A95D1F78093E1039093E20369
:10BEB000A093E303B093E40380911703813019F456
:10BEC00082E08093170328A139A1C901AA2797FD11
:10BED000A095BA2F9301442737FD4095542FBC01FC
:10BEE000CD010E947178DC01CB018093AE03909369
:10BEF000AF03A093B003B093B103B7FF04C0815068
:10BF0000904EAF4FBF4F5C016D010DE0D594C794CB
:10BF1000B794A7940A95D1F7A092AE03B092AF035D
:10BF2000C092B003D092B1036091EE027091EF0223
:10BF30003FE0603A730750F58091E1039091E2038E
:10BF4000A091E303B091E4039C01AD011AE0569582
:10BF50004795379527951A95D1F7821B930BA40B1C
:10BF6000B50BA6019501F4E0220F331F441F551FA6
:10BF7000FA95D1F7820F931FA41FB51F8093E10399
:10BF80009093E203A093E303B093E40360547F41F2
:10BF900018F58091E1039091E203A091E303B09141
:10BFA000E4039C01AD01ECE0569547953795279544
:10BFB000EA95D1F7821B930BA40BB50BA601950153
:10BFC00072E0220F331F441F551F7A95D1F7820F5D
:10BFD000931FA41FB51F29C080913A0290913B0284
:10BFE00080913A0290913B0297FF03C09095819512
:10BFF0009F4F843691050CF58091E1039091E20307
:10C00000A091E303B091E4039C01AD016EE056956D
:10C010004795379527956A95D1F7821B930BA40B0B
:10C02000B50B8A0D9B1DAC1DBD1D8093E103909344
:10C03000E203A093E303B093E4038091E1039091C2
:10C04000E203A091E303B091E4032EE0B695A79537
:10C05000979587952A95D1F790930A0380930903C2
:10C0600040911D06442399F055279C01BA010E9476
:10C07000B078C901861B970B9093E0038093DF0390
:10C08000260F371F3093C0012093BF0119C01092B3
:10C09000E0031092DF038FEF93E09093C001809351
:10C0A000BF010EC0109217031092E1031092E20339
:10C0B0001092E3031092E40330930A0320930903E0
:10C0C0005091B60758AB252F3327220F331F220F6D
:10C0D000331F285D3F4F68A179A12617370714F059
:10C0E00039A328A37091EF0779AB872F9927880F81
:10C0F000991F880F991F80559040A8A1B9A18A1750
:10C100009B0714F499A388A380917202882321F4D9
:10C11000809174088F3FA1F08091EE029091EF0220
:10C120000297C09768F4E8A1F9A11E161F0644F40F
:10C1300081E090E09093EF028093EE0239A328A370
:10C14000E8A0F9A0F092C305E092C2058091A60391
:10C150009091A703A091A803B091A90312E0880FC2
:10C16000991FAA1FBB1F1A95D1F7C090F007D09056
:10C17000F107C81AD90A8701013A11058CF0C701E5
:10C18000F7FC0196959587958C159D050CF46C012F
:10C19000909581959F4FC816D90694F46C0110C0F4
:10C1A00011E5C116D1041CF0E0E5CE2ED12C20EB18
:10C1B000C2162FEFD20624F470EBC72E7FEFD72ED6
:10C1C00049A9242F3327220F331F220F331FC90100
:10C1D00068A179A1861B970B8C159D050CF46C0149
:10C1E00088A199A1821B930BC816D9060CF46C0187
:10C1F0008091B1079091B20760911F037091200365
:10C20000861B970B9093C0078093BF07A090CE0723
:10C2100020913D0330913E0340913F0350914003F4
:10C22000AA2041F0461A570AC201AA2797FDA095F5
:10C23000BA2F04C0AA2797FDA095BA2F280F391F3F
:10C240004A1F5B1F20933D0330933E0340933F03FF
:10C250005093400380913D0390913E03A0913F0392
:10C26000B091400381509A4FA040B04064F080E00C
:10C270009AEFA0E0B0E080933D0390933E03A0933B
:10C280003F03B093400380913D0390913E03A09102
:10C290003F03B091400380509640AF4FBF4F64F4CE
:10C2A00080E096E0AFEFBFEF80933D0390933E03B5
:10C2B000A0933F03B0934003B0902C062B2D33275F
:10C2C0008091BF079091C007289F7001299FF00CB3
:10C2D000389FF00C11249701F7FE02C0295F3F4FF1
:10C2E000790153E0F594E7945A95E1F70091B10193
:10C2F0001091B2019801442737FD4095542F809149
:10C300003D0390913E03A0913F03B0914003BC01D7
:10C31000CD010E94E578E20EF31E90909D01692DFB
:10C320007727882799279601D7FE04C0222733272D
:10C330002C193D0937FF02C02F5F3F4F35952795D8
:10C3400048A159A1240F351F442737FD4095542F8C
:10C350000E94717897FF04C0615C7F4F8F4F9F4FA1
:10C3600026E095958795779567952A95D1F79B0156
:10C370006E157F050CF47B01309521953F4FE21639
:10C38000F3060CF479018091A2079091A3076091C4
:10C390001D0370911E03861B970B9093A10780933A
:10C3A000A0072091390330913A0340913B0350910B
:10C3B0003C03AA2041F0261A370AC101AA2797FD9B
:10C3C000A095BA2F04C0AA2797FDA095BA2F280FD1
:10C3D000391F4A1F5B1F2093390330933A03409360
:10C3E0003B0350933C038091390390913A03A09111
:10C3F0003B03B0913C0381509A4FA040B04064F0A1
:10C4000080E09AEFA0E0B0E08093390390933A0384
:10C41000A0933B03B0933C038091390390913A037E
:10C42000A0913B03B0913C0380509640AF4FBF4F6B
:10C4300064F480E096E0AFEFBFEF80933903909310
:10C440003A03A0933B03B0933C032B2D33278091F9
:10C45000A0079091A107289FD001299FB00D389F78
:10C46000B00D11249D01B7FF02C0295F3F4F590154
:10C47000B3E0B594A794BA95E1F79801442737FD46
:10C480004095542F8091390390913A03A0913B033A
:10C49000B0913C03BC01CD010E94E578A20EB31E11
:10C4A000692D7727882799279601D7FE04C0222770
:10C4B00033272C193D0937FF02C02F5F3F4F3595B9
:10C4C0002795E8A1F9A12E0F3F1F442737FD40957E
:10C4D000542F0E94717897FF04C0615C7F4F8F4F8B
:10C4E0009F4FF6E09595879577956795FA95D1F7E3
:10C4F0009B016A157B050CF45B01309521953F4F3C
:10C50000A216B3060CF459012090FC02E0ED6E2E49
:10C51000E6E07E2E77E8872E76E0972E6BE0362ECB
:10C520005FEC452E57E0552ED4012C9112160CF0DD
:10C53000ECC0203419F408A119A11EC0E8A1F9A18A
:10C54000CF01AA2797FDA095BA2F332727FD309555
:10C55000432F532FBC01CD010E94717897FF04C077
:10C56000615C7F4F8F4F9F4F46E0959587957795FC
:10C5700067954A95D1F78B01F4012181203419F494
:10C580000E0D1F1D22C0203C19F40E191F091DC0DD
:10C59000C701AA2797FDA095BA2F332727FD30950D
:10C5A000432F532FBC01CD010E94717897FF04C027
:10C5B000615C7F4F8F4F9F4F36E0959587957795BC
:10C5C00067953A95D1F7060F171FF40122812034A1
:10C5D00019F40A0D1B1D22C0203C19F40A191B096D
:10C5E0001DC0C501AA2797FDA095BA2F332727FDA7
:10C5F0003095432F532FBC01CD010E94717897FFD6
:10C6000004C0615C7F4F8F4F9F4F26E095958795C3
:10C61000779567952A95D1F7060F171FF4012381A7
:10C62000203419F40C0D1D1D22C0203C19F40C19E6
:10C630001D091DC0C601AA2797FDA095BA2F332753
:10C6400027FD3095432F532FBC01CD010E947178F7
:10C6500097FF04C0615C7F4F8F4F9F4FB6E0959569
:10C66000879577956795BA95D1F7060F171FD20171
:10C670008D919C91801791075CF4BC01600F711F34
:10C6800077FF02C06F5F7F4F8B011595079511C033
:10C69000B1E0B21528F0000F111F081B190B09C0DB
:10C6A000222D3327801B910BB9010E94B078060F11
:10C6B000171FE8A98E2F9927880F991F880F991F98
:10C6C0008017910754F4F9A98F2F9927880F991F84
:10C6D000880F991F081719070CF08C01C80117FD66
:10C6E00003969595879595958795F3018183880F96
:10C6F000991F880F991F9801281B390BC901880FB2
:10C700008283D2010D931C9303C0F3011182128224
:10C710003A9402E010E0400E511E24E030E0820E18
:10C72000931E48E050E0640E751E37FEFDCEE2E138
:10C73000CB5C0C941C798091F4039091F503A0914B
:10C74000F603B091F7038093EC039093ED03A0936D
:10C75000EE03B093EF038091F0039091F103A09169
:10C76000F203B091F3038093E8039093E903A0935D
:10C77000EA03B093EB0308951092FF031092FE03B7
:10C780001092FD031092FC03089584B1806A84B96D
:10C790003D9A82E58CBD1DBC459A81E080930108DD
:10C7A0008AEA8093120883E8809313088AE08093D2
:10C7B000140810921608109215081092180810927A
:10C7C000170810926C0810923408089530910108EF
:10C7D000332309F085C00DB407FE82C084E0809346
:10C7E0002202459A2EB58091030499278130910544
:10C7F00089F0823091051CF4892B21F03EC002970C
:10C80000B9F03BC030933308209304042138A9F5D4
:10C8100081E008C0253549F480910404820F80939B
:10C82000040482E08093030428C03093030425C0ED
:10C8300080913308E82FFF27E15BF74F20838F5F5C
:10C8400080933308909104048A31A0F0291769F489
:10C850008AE1AFE4B8E0E5E3F8E00D9001928A9553
:10C86000E1F781E08093340802C0309334081092DD
:10C87000030403C0920F9093040420911108203206
:10C8800008F028C0459800000000000000000000EB
:10C890000000000000000000000000000000000098
:10C8A0000000000000000000000000000000000088
:10C8B000000000000000E0910A08F0910B08E20F70
:10C8C000F11D80818EBD809131089081890F809308
:10C8D000310803C081E0809301082F5F2093110885
:10C8E0000895EF92FF920F931F9380912506992749
:10C8F000880F991F880F991F7C010027F7FC00956E
:10C90000102F8091750390917603A0917703B091D9
:10C910007803BC01CD01A80197010E94E57830930E
:10C9200016082093150880916D0390916E03A091D5
:10C930006F03B0917003BC01CD01A80197010E9463
:10C94000E57830931808209317082091F707309165
:10C95000F8074091F9075091FA07DA01C901E3E0BD
:10C96000880F991FAA1FBB1FEA95D1F7820F931F4B
:10C97000A41FB51F820F931FA41FB51F20919701FD
:10C98000309198014091990150919A01BC01CD01DB
:10C990000E94E57830931E0820931D08809186033D
:10C9A000909187032091480230914902821B930B9A
:10C9B0009093240880932308E0917C03F0917D03F9
:10C9C0008091C6079091C707BF010E94B078CB0144
:10C9D0009B01220F331F220F331F280F391F280FEF
:10C9E000391F37FF02C02D5F3F4F3595279535958D
:10C9F000279530931A08209319088091F307909196
:10CA0000F407BF010E94B0789B01220F331F220F51
:10CA1000331F260F371F260F371F37FF02C02D5F2A
:10CA20003F4F359527953595279530931C082093D2
:10CA30001B0810927D0310927C031092C70710927E
:10CA4000C6071092F4071092F307809114089927F3
:10CA50008D30910509F466C08E3091055CF48B3001
:10CA6000910509F48EC08C3091050CF00FC10A9726
:10CA700061F0A8C18F30910509F47CC18F30910518
:10CA80000CF45CC1409799F19DC1809102038093A1
:10CA900025088091010380932608809100038093EC
:10CAA00027088091FF02809328088091FE028093DE
:10CAB00029088091FD0280932A088091FC028093CE
:10CAC0002B088091FB0280932C088091ED028093CB
:10CAD0002D088091ED02837F8093ED020E947C2FD0
:10CAE00080932E088091790380932F086BC18091E9
:10CAF0006E0890916F089093260880932508809186
:10CB00007208909173089093280880932708809169
:10CB10001F0190912001809329088091000180934A
:10CB20002A0850C1809157068093250880915806A5
:10CB300080932608809159068093270880915A0691
:10CB40008093280880915B068093290880915F0676
:10CB500080932A088091600680932B08809161065B
:10CB600080932C088091640680932D088091620642
:10CB700080932E088091630680932F08809165062C
:10CB8000DAC0F89480910C06E82FFF27EE0FFF1F04
:10CB9000EF5CF84F0190F081E02DE038F1051CF0DA
:10CBA000EFE7F0E006C02FEFE138F20714F4E1E818
:10CBB000FFEFE093250880910D06E82FFF27EE0F89
:10CBC000FF1FEF5CF84F0190F081E02DE038F10598
:10CBD0001CF0EFE7F0E006C06FEFE138F60714F461
:10CBE000E1E8FFEFE093260880910B06E82FFF278E
:10CBF000EE0FFF1FEF5CF84F0190F081E02DE03861
:10CC0000F1051CF0EFE7F0E006C08FEFE138F80720
:10CC100014F4E1E8FFEFE093270880910A06E82F7B
:10CC2000FF27EE0FFF1FEF5CF84F0190F081E02D22
:10CC3000E038F1051CF0EFE7F0E006C02FEFE13837
:10CC4000F20714F4E1E8FFEF7894E093280880916C
:10CC50002203809329088091230380932A088091DE
:10CC6000240380932B088091250380932C088091C6
:10CC7000260380932D088091270380932E088091AE
:10CC8000280380932F088091290355C08091610467
:10CC9000863018F01092610485E080932508809119
:10CCA0006606809326088091130390911403A09147
:10CCB0001503B0911603BC01CD0125E030E040E042
:10CCC00050E00E94E578309328082093270880914F
:10CCD0000F0390911003A0911103B0911203BC01B6
:10CCE000CD0125E030E040E050E00E94E57830934F
:10CCF0002A082093290880915C0680932B08809154
:10CD00005D0680932C0880915E0680932D088091AB
:10CD1000210380932E0880913107909132078093F0
:10CD20002F088091C2059091C30597FD03969595B4
:10CD30008795959587958093300844C01092250873
:10CD400080E58093260883E0809327088EE0809317
:10CD500028088091020180932908809146048093DD
:10CD60002A088091470480932B088091480480937F
:10CD70002C0828C080913E068093250880916B0680
:10CD8000809326088091A30180932708809137061D
:10CD9000809328088091380680932908809139066D
:10CDA00080932A088091A20180932B0880913B06F2
:10CDB00080932C0880913C0680932D0880913D063D
:10CDC00080932E0880913408882309F4CFC08AEF1D
:10CDD0008093EA014091360850913708CA0181508A
:10CDE0009E4F8F5F9340B0F42091380830913908FE
:10CDF000C90181509E4F8F5F934060F48091160669
:10CE000085FF08C05093FF034093FE033093FD035A
:10CE10002093FC0380913C0890913D0821E08936E5
:10CE2000920724F490933403809333038091330367
:10CE3000909134032091310330913203821B930B84
:10CE4000845E9D4F68E671E00E94B078845B9040FC
:10CE50009093300380932F03209140083091410834
:10CE600080912302909124028217930740F48091CD
:10CE70006104882321F430932402209323028091BB
:10CE8000350899278836910549F18936910524F4AA
:10CE90008736910531F072C08936910509F445C095
:10CEA0006DC0809142088093690880914308809307
:10CEB0006B088091440880936A08809145088093AC
:10CEC0006C088091460880936D0880914708809394
:10CED000EB01809148088093020450C08091420881
:10CEE00080930C088091430880930D08809144083A
:10CEF00080930E088091450880930F088091460822
:10CF0000809310088091B20590914708892B8093F7
:10CF1000B20590914808909300048091B305837006
:10CF20009C70892B8093B30529C08091420880931F
:10CF300002088091430880930308809144088093FD
:10CF400004088091450880930508809146089091D7
:10CF500047089093070880930608809148089091AD
:10CF60004908909309088093080808C01092FF03AD
:10CF70001092FE031092FD031092FC031F910F917B
:10CF8000FF90EF90089580910108882309F43BC039
:10CF9000459882E198E090930B0880930A0890915D
:10CFA0000104E92FFF27EF51FE4F9F5F909301048B
:10CFB000808180931408993010F01092010410922F
:10CFC00001080E94716481E0809311080000000054
:10CFD0000000000000000000000000000000000051
:10CFE0000000000000000000000000000000000041
:10CFF0000000000000000000000000008091120806
:10D00000809331088EBD089587B18C6087B94298AE
:10D0100043981092060480E88093ED011092050475
:10D020008093EC01089580910B04815080930B0450
:10D030008F3F09F0F4C094E090930B048091ED02CF
:10D04000807BE1F080915506882349F080910E04A1
:10D05000882311F49093060481E080930E0480915C
:10D0600056068823B9F080910F04882319F484E0D0
:10D070008093050481E080930F040CC080930E041C
:10D0800080930F048091510680930C048091530685
:10D0900080930D0480910E04882309F040C0809194
:10D0A0006A06282F332724FF07C08091180388239E
:10D0B00019F425FD4DC04EC090915206983F50F096
:10D0C0008091C8078D3D30F080910C0488230CF4CA
:10D0D0003FC040C0983F48F08091C8078A3028F48C
:10D0E00080910C048823B4F133C0809106048150F0
:10D0F000809306048F3F79F58091C8078150809313
:10D1000006048091ED01813011F480E801C086951C
:10D110008093ED018091ED0190910C0417C08091F6
:10D1200006048150809306048F3FA9F489E0809320
:10D1300006048091ED01813011F480E801C08695EC
:10D140008093ED018091ED0190915506892311F0B6
:10D15000429A01C0429880910F04882309F043C08D
:10D1600080916A06282F332724FF07C08091180377
:10D17000882319F426FD50C034C090915406983F7E
:10D1800050F08091EE078D3D30F080910D048823A2
:10D190000CF442C026C0983F48F08091EE078A30D8
:10D1A00028F480910D048823E4F036C080910504B2
:10D1B0008150809305048F3F91F58091EE07815057
:10D1C000809305048091EC01813011F480E801C066
:10D1D00086958093EC018091EC0190910D04892358
:10D1E000D9F44398089580910504815080930504F3
:10D1F0008F3FA9F489E0809305048091EC01813090
:10D2000011F480E801C086958093EC018091EC01D7
:10D2100090915606892311F0439A089543980895F2
:10D220004FB724E130E0F8948091C9008F77809364
:10D23000C9008091C9008F7B8093C9008091C9008B
:10D240008F7D8093C9005A9A52985B9A539A832F84
:10D2500099278093CD002093CC008091C8008260F4
:10D260008093C80080E18093C9008091CA008F77C5
:10D270008093CA008091CA008F7B8093CA008091FE
:10D28000CA008F7D8093CA008091CA008F7E8093F0
:10D29000CA008091CA00877F8093CA008091C9002C
:10D2A0008B7F8093C9008091CA0084608093CA00FC
:10D2B0008091CA0082608093CA008091C80087FF75
:10D2C00003C08091CE00F9CF8091C900806880931F
:10D2D000C9004FBF0895FF920F931F93CF93DF9321
:10D2E00080E197E20E948E16EC01FF248091C90034
:10D2F0008F778093C9008091C9008F7E8093C90089
:10D300005A9888E39AE09F938F930BE612E11F935C
:10D310000F93E0912D04F0912E0409950F900F903A
:10D320000F900F9002C04A996CC0CE010E949716D0
:10D330008823C9F3E0912D04F0912E04FF2009F415
:10D3400068C08EE69AE09F938F931F930F93099581
:10D35000529A0F900F900F900F90CE010E94971647
:10D360008823D9F383E690E05A9A019797FFFCCF80
:10D370008FE891E05A98019797FFFCCF89E090E001
:10D380005A9A019797FFFCCF89E090E05A9801974D
:10D3900097FFFCCF8FE891E05A9A019797FFFCCF57
:10D3A0008FE891E05A98019797FFFCCF89E090E0D1
:10D3B0005A9A019797FFFCCF89E090E05A9801971D
:10D3C00097FFFCCF8FE891E05A9A019797FFFCCF27
:10D3D0008FE891E05A98019797FFFCCF89E090E0A1
:10D3E0005A9A019797FFFCCF89E090E05A980197ED
:10D3F00097FFFCCF8FE891E05A9A019797FFFCCFF7
:10D4000013C08AE590E00E948E16EC0191E0F92E9F
:10D4100091CF84E79AE09F938F931F930F93099581
:10D420000F900F900F900F9052985A980E94106989
:10D43000E5E0CDB7DEB70C942979EF92FF920F9318
:10D440001F93CF93DF93482F00E010E08091EE010F
:10D45000813061F41092EE0184E480931004109204
:10D46000120410921104109213042BC18091100425
:10D47000882319F421E030E001C098019091110453
:10D48000992371F4232B11F081E010C084E4809380
:10D490001004909312049093110490931304FAC013
:10D4A000913069F4232B09F0EBC082E080931104E2
:10D4B000809112048F5F8093120483E0E9C0923060
:10D4C000D1F4232B09F0DCC083E080931004409357
:10D4D000130490911204923039F41092140447FF0F
:10D4E00003C081E08093140483E0809311049F5F64
:10D4F00090931204CFC0933009F0C2C0232B09F0DF
:10D50000BFC09093100482E08093110480911204B4
:10D510008F5F8093120420911304822F9927782F14
:10D520006627842F9927682B792B809130068130CC
:10D5300049F47370CB018050924063E070E00E9428
:10D54000B07817C0823061F47770CB01805094407E
:10D5500066E070E00E94B0782695269526950BC06F
:10D56000737068567140CB0177FD0196BC017595CB
:10D57000679526952695022F11270F7010700F5F63
:10D580001F4F0D30110508F074C07801E00EF11E38
:10D59000F701EF5CF84F808191819B01281B390BCB
:10D5A000C90137FF03C0909581959F4F069794F46A
:10D5B00080912103883C30F480912103865F809321
:10D5C000210308C088EC8093210380916F008F7D38
:10D5D00080936F00F701EF5CF84F808191819C018F
:10D5E000220F331F280F391F260F371F37FF02C0A6
:10D5F0002D5F3F4FE901D595C795D595C795CB01CF
:10D6000001968C179D0714F4219706C06150704055
:10D61000C617D7070CF4219680912103843BD0F0E4
:10D62000F701EF5CF84F80819181FE01E81BF90B57
:10D63000CF0163E070E00E94B078CB01880F991FA2
:10D64000860F971F25E637E0E20EF31EF701918360
:10D65000808307C025E637E0E20EF31EF701118252
:10D660001082000F111F0F5C184FF801D183C08387
:10D6700011C00231110570F081E08093EE010AC003
:10D6800081E08093EE01109212041092140484E45D
:10D690008093100480911204803198F080911404DA
:10D6A000882331F48091EE01882311F48093950151
:10D6B00010921204109214041092110484E48093C6
:10D6C0001004E6E0CDB7DEB70C942879CF93FC01C7
:10D6D00097FF05C0CFEFF095E195FF4F01C0C1E086
:10D6E00028E631E0CF01B9010E94B078FC018B350A
:10D6F000910554F08B5590408A35910538F484EBB0
:10D7000090E08E1B9F0BFC0141E00DC0CF01855BBB
:10D7100090408A35910518F4E45BF04003C02E1B5D
:10D720003F0BF9014FEFEE0FFF1FE158F54F259129
:10D7300034918C2F992787FD9095289FB001299FC0
:10D74000700D389F700D1124842F992787FD9095B7
:10D75000689FA001699F500D789F500D1124CA0148
:10D76000CF9108952AE530E0281B390BC9010E94AA
:10D77000666B0895CF93DF9380E00E949B71809148
:10D780001F01909120016AE070E00E94B0789F93A1
:10D790008F9380911F01909120016AE070E00E94B8
:10D7A000B0787F936F938DE49BE09F938F93CEE847
:10D7B000D1E7DF93CF93E0912D04F0912E040995EA
:10D7C0002DB73EB7285F3F4F2DBF8091EA018823D8
:10D7D000B9F186E00E949B7180910608909107083C
:10D7E0006AE070E00E949C787F936F938FED90E0E9
:10D7F0009F938F938091F7079091F807A091F90775
:10D80000B091FA07209197013091980140919901C8
:10D8100050919A01BC01CD010E94E5783F932F936E
:10D8200086E59BE09F938F93DF93CF93E0912D0448
:10D83000F0912E0409958DB79EB70A968DBF12C040
:10D8400086E00E949B7182E69BE09F938F93DF931B
:10D85000CF93E0912D04F0912E0409950F900F9035
:10D860000F900F90809100048823C1F086E00E9401
:10D870009B718091000499279F938F9389E69BE089
:10D880009F938F93DF93CF93E0912D04F0912E041B
:10D8900009952DB73EB72A5F3F4F2DBF80E10E940B
:10D8A0009B718091F5019091F6016CE370E00E940C
:10D8B0009C789F938F938091F5019091F6016CE392
:10D8C00070E00E949C787F936F9380917208909192
:10D8D00073089F938F9384E79BE09F938F93CEE889
:10D8E000D1E7DF93CF93E0912D04F0912E040995B9
:10D8F000809116062DB73EB7265F3F4F2DBF80FFA4
:10D9000029C08AE10E949B718091960199279F937B
:10D910008F938091130390911403A0911503B091FC
:10D920001603BC01CD0124E630E040E050E00E9447
:10D93000E5783F932F9381E89BE09F938F93DF934C
:10D94000CF93E0912D04F0912E0409958DB79EB7E9
:10D9500008968DBFDF91CF910895CF93DF9380E03C
:10D960000E949B718091EF06992787FD90959F9368
:10D970008F938091E706992787FD90959F938F93CA
:10D980008091DF06992787FD90959F938F938091D3
:10D99000D706992787FD90959F938F9388E89BE002
:10D9A0009F938F93CEE8D1E7DF93CF93E0912D043F
:10D9B000F0912E04099580E10E949B712DB73EB72E
:10D9C000245F3F4F2DBF80910F07992787FD9095CA
:10D9D0009F938F9380910707992787FD90959F9339
:10D9E0008F938091FF06992787FD90959F938F9342
:10D9F0008091F706992787FD90959F938F9388E9EB
:10DA00009BE09F938F93DF93CF93E0912D04F09150
:10DA10002E040995809108062DB73EB7245F3F4F2D
:10DA20002DBF853098F480E10E949B7188EA9BE0CD
:10DA30009F938F93DF93CF93E0912D04F0912E0469
:10DA400009950F900F900F900F9018C08730B0F489
:10DA500088E10E949B718FED90E09F938F9389EBFB
:10DA60009BE09F938F93DF93CF93E0912D04F091F0
:10DA70002E0409958DB79EB706968DBFDF91CF9185
:10DA800008950F931F9380E00E949B712AE030E07D
:10DA900080916E0890916F08B9010E949C789F93C5
:10DAA0008F9380916E0890916F08B9010E949C78C5
:10DAB0007F936F9380911F0190912001B9010E9483
:10DAC000B0789F938F9380911F0190912001B901AD
:10DAD0000E94B0787F936F9382EC9BE09F938F932B
:10DAE0000EE811E71F930F93E0912D04F0912E049F
:10DAF000099580E10E949B718DB79EB70C968DBFF2
:10DB000080917208909173089F938F938091700811
:10DB1000909171089F938F9385ED9BE09F938F93D6
:10DB20001F930F93E0912D04F0912E0409958DB76A
:10DB30009EB708968DBF1F910F9108950F931F9365
:10DB4000CF93DF938091EA01CEE8D1E7882309F4EF
:10DB500078C080E00E949B718091030899279F9371
:10DB60008F938091050899279F938F9381EE9BE077
:10DB70009F938F938E01DF93CF93E0912D04F091CB
:10DB80002E0409958DB79EB708968DBF8091040825
:10DB9000833031F48CE00E949B7180EF9BE005C0E4
:10DBA0008CE00E949B7185EF9BE09F938F93DF93A6
:10DBB000CF93E0912D04F0912E0409950F900F90D2
:10DBC0000F900F908091020881FF12C08CE00E949C
:10DBD0009B718AEF9BE09F938F931F930F93E0912C
:10DBE0002D04F0912E0409950F900F900F900F9037
:10DBF00080E10E949B718FED90E09F938F938091C5
:10DC00000808909109089F938F938091060890913E
:10DC100007086AE070E00E949C787F936F938FEF13
:10DC20009BE09F938F938EE891E79F938F93E09172
:10DC30002D04F0912E0409958DB79EB70A968DBFDD
:10DC400012C082E00E949B718FE09CE09F938F93B3
:10DC5000DF93CF93E0912D04F0912E0409950F905E
:10DC60000F900F900F90DF91CF911F910F9108951A
:10DC7000CF93C82F209115042093160499278F3233
:10DC8000910509F1803391051CF44F97A1F02CC048
:10DC90008F34910501F18F38910531F5222319F464
:10DCA00081E090E038C086E0289FF0011124EB5C11
:10DCB000F44F849117C086E0289FF0011124EA5C9C
:10DCC000F44F84910FC086E0289FF0011124E95C95
:10DCD000F44F849107C086E0289FF0011124E85C8E
:10DCE000F44F84918093150490911504809116044B
:10DCF0009813C0E00E94A1719091150486E0989F4E
:10DD0000F0011124E75CF44F259134918C2FF90137
:10DD1000099580E090E0CF91089510926F081092DD
:10DD20006E08109273081092720810927108109287
:10DD30007008109274088AE090E00E948E1690930A
:10DD40001804809317040895CF93DF9380911704EC
:10DD5000909118040E949716882309F4AFC080910F
:10DD60001704909118040A9690931804809317044E
:10DD7000E0E0F0E09F0190E05FEFA0EDB6E04BE067
:10DD8000ED018B8187FF0BC09F5F8D81E80FF11D37
:10DD90008981280F311D8E81851708F4582F415035
:10DDA000189647FFEDCF50937408232B41F520912F
:10DDB0001D0430911E0440911F0450912004BB2784
:10DDC000A52F942F832F90931C0480931B04AA27C4
:10DDD000BB27281B390B4A0B5B0BCF01AA27BB279C
:10DDE000280F391F4A1F5B1F20931D0430931E0408
:10DDF00040931F0450932004E5E0F0E013C020910D
:10DE00001B0430911C042E173F0718F4E21BF30B80
:10DE100002C0E0E0F0E0892F9927880F991FE80FF2
:10DE2000F91F3596F0936F08E0936E08EF3FF10508
:10DE300078F480911F01909120018E9F90018F9F17
:10DE4000300D9E9F300D1124C90164E670E013C0AF
:10DE5000CF01969587959695879520911F013091D2
:10DE60002001289FA001299F500D389F500D11249B
:10DE7000CA0169E170E00E949C7870937108609318
:10DE800070082091190430911A042E0F3F1F30930F
:10DE90001A04209319045EE02131350778F080914F
:10DEA000720890917308019690937308809372089A
:10DEB00020513E4030931A0420931904DF91CF91F2
:10DEC0000895002422273327442751E0BB27EE275B
:10DED000FF27A0E1660F771F881F991F001C221FD4
:10DEE000331F441F660F771F881F991F001C221FB6
:10DEF000331F441F2AF4050E2B1F3E1F4F1F04C063
:10DF0000051A2B0B3E0B4F0B550FBB1FEE1F587FF7
:10DF1000556047FD5250AA95E9F6E695B795579595
:10DF2000E695B7955795852F9B2F08952227332780
:10DF300041E0552768E0880F991F221F331F880F83
:10DF4000991F221F331F1AF4240F351F02C0241BF0
:10DF5000350B440F551F487F456037FD42506A9589
:10DF600051F75695479556954795842F0895AA27BA
:10DF700097FF04C0809590958A1F9A1F77FF04C071
:10DF8000609570956A1F7A1F669F9001779FA00128
:10DF9000679F300D411D5A1F300D411D5A1F889F2C
:10DFA000F001999F2E0F3F1F401D511D899F300D7D
:10DFB000411D5A1F300D411D5A1FCA01B9011124BC
:10DFC00080CF4FB720E430E0F8948091C9008F777C
:10DFD0008093C9008091C9008F7B8093C900809194
:10DFE000C9008F7D8093C9005A9A52985B9A539AC0
:10DFF000832F99278093CD002093CC008091C80077
:10E0000082608093C80088E18093C9008091CA0033
:10E010008F778093CA008091CA008F7B8093CA005B
:10E020008091CA008F7D8093CA008091CA008F7E44
:10E030008093CA008091CA00877F8093CA00809134
:10E04000C9008B7F8093C9008091CA00846080934F
:10E05000CA008091CA0082608093CA008091C80083
:10E0600087FF03C08091CE00F9CF8091C9008068FE
:10E070008093C9004FBF08950F931F93CF93DF93F1
:10E08000482F4F5F893108F089C08091300784178D
:10E0900010F440933007CB0183539B4268E170E05A
:10E0A0000E94B078A42FBB27FD01EA0FFB1FEF5C95
:10E0B000F84F808191819B01281B390BC90137FFE3
:10E0C00003C0909581959F4F069794F4809121030A
:10E0D000883C30F480912103865F8093210308C03F
:10E0E00088EC8093210380916F008F7D80936F0077
:10E0F000FD01EA0FFB1FEF5CF84F808191819C01CD
:10E10000220F331F280F391F260F371F37FF02C07A
:10E110002D5F3F4FE901D595C795D595C795CB01A3
:10E1200001968C179D0714F4219706C0615070402A
:10E13000C617D7070CF4219680912103843BD8F0B1
:10E140008D010A0F1B1FF801EF5CF84F8081918150
:10E15000FE01E81BF90BCF0163E070E00E94B0788C
:10E16000CB01880F991F860F971F0B59184FF80185
:10E170009183808307C0AA0FBB1FAB59B84F11967C
:10E180001C921E92E42FFF27EE0FFF1FEF5CF84F4B
:10E19000D183C083443011F410929501DF91CF9167
:10E1A0001F910F910895CF93DF9320917508822FCF
:10E1B0009927807F9070409709F06CC02F3109F04B
:10E1C00046C080917608809325042091780820939A
:10E1D00027048091790880932604822F99279093B1
:10E1E000320780933107222309F054C080910A0638
:10E1F000282F3327220F331FF901EB59F84F1182D3
:10E20000108280910B06A82FBB27AA0FBB1FFD0110
:10E21000EB59F84F1182108280910D06E82FFF27ED
:10E22000EE0FFF1FCF018B59984FEC011982188216
:10E230002F5C384FE90119821882AF5CB84F1196F4
:10E240001C921E92EF5CF84F1182108223C0C22FE5
:10E25000CF70CA30F8F48091760880939F0880913F
:10E26000770880939E08809178088093A108809118
:10E2700079088093A00860919E0870919F088C2F68
:10E280000E943C706091A0087091A1088C2F8F5F54
:10E290000E943C70DF91CF910895CF93C82F8F3F9C
:10E2A00049F4809128048F3F29F410922A04109297
:10E2B000290432C020912A04222339F4CF3111F4E9
:10E2C00085E001C084E080932B0480912B04909121
:10E2D00029048217A0F4892F8095809329048F3F09
:10E2E00019F48EEF8093290480912904C81711F442
:10E2F0000E94D37010922A04109229040BC0E22FBE
:10E30000FF27EB58F74FC0832F5F20932A049C0F01
:10E3100090932904C0932804CF91089590912404E8
:10E32000933240F4E92FFF27E558F74F80839F5F32
:10E33000909324040895833218F48D5F809324040D
:10E34000089590E2EEE7F8E08FE19193815087FF26
:10E35000FCCF0895CF93CFB723E031E0F8948091BC
:10E36000C9008F778093C9008091C9008F7B80930B
:10E37000C9008091C9008F7D8093C9005A9A529834
:10E380005B9A539A832F99278093CD002093CC00DA
:10E390008091C80082608093C80088E18093C900A2
:10E3A0008091CA008F778093CA008091CA008F7BCA
:10E3B0008093CA008091CA0080628093CA008091D5
:10E3C000CA0080618093CA008091CA0088608093EF
:10E3D000CA008091C90084608093C9008091CA00FE
:10E3E00084608093CA008091CA0082608093CA00D2
:10E3F0008091C80087FF03C08091CE00F9CF809143
:10E40000C90080688093C9008091C90080648093AE
:10E41000C9000E94A171CFBFCF910895282F9927DD
:10E420008F709070892B31F4209580912304822B7A
:10E430008093230408958091F101882309F441C059
:10E440008091ED0285FF0AC082E980937B0883E218
:10E4500080937C0885E580937D0802C010927B083C
:10E460008091F2018F3071F4809123040E94386E04
:10E47000882341F081E980937B0880937C0881E3C5
:10E4800080937D081092F1018091C80085FFFCCF38
:10E490008091C9008F7E8093C9008091C9008E7FD2
:10E4A0008093C90080917B08882311F48EEF01C00E
:10E4B0008EE78093CE00809123048093F201109226
:10E4C000230408951F920F920FB60F9211248F9379
:10E4D0009F93EF93FF939091F101992309F040C02E
:10E4E00080912C04882361F480917B08882311F4A7
:10E4F00083E003C0813999F481E080932C040FC03C
:10E50000833099F480917B08882349F090937B08AD
:10E510008091C9008E7F8093C9008EEF1EC08091CC
:10E52000C90081608093C9000EC0833261F480917C
:10E53000C9008E7F8093C9008FEF8093CE0081E069
:10E540008093F10114C080912C04E82FFF27E55837
:10E55000F74F8F5F80932C0480818093CE0007C09B
:10E5600010922C048091C90080618093C900FF91B2
:10E57000EF919F918F910F900FBE0F901F90189564
:10E58000EF92FF920F931F93CF93DF937C018B0148
:10E59000EA01452B39F0F80181918F01F7010995C6
:10E5A0002197C9F7E6E0CDB7DEB70C942879EF9252
:10E5B000FF920F931F93CF93DF937C018B01EA01AE
:10E5C000452B41F0F8010F5F1F4F8491F70109952A
:10E5D0002197C1F7E6E0CDB7DEB70C9428790F9309
:10E5E0001F93CF938C01C62F161634F480E2F801E6
:10E5F0000995C1501C16D4F3CF911F910F91089526
:10E600000F931F93CF938C01C62F161634F480E31B
:10E61000F8010995C1501C16D4F3CF911F910F91A9
:10E620000895A5E3B0E0E7E1F3E70C9400792E96B6
:10E63000EEADFFAD2E9788249924540180912204D9
:10E64000882321F42C961FAE1EAE2C975EE4452E37
:10E65000512C4C0E5D1E6F01B60105C0153239F00C
:10E660000894C11CD11CF60114911123B9F7A6011D
:10E67000461B570B31F02C968EAD9FAD2C970E9408
:10E68000D772112309F46AC20894C11CD11CFF245B
:10E69000FDA6FCA64FEFE42EF9A6F6010894C11CD6
:10E6A000D11C1491153721F0812F80628837B1F485
:10E6B000F0FE0AC0F20124E030E0420E531E8080DA
:10E6C0009180A280B3800AC0F20142E050E0440E83
:10E6D000551E808191814C01AA24BB24103221F463
:10E6E00089A58823D1F61DC0133219F458E0F52A04
:10E6F000D4CF1A3211F01D3291F41A3259F4F201CA
:10E7000082E090E0480E591EE081ECA7EE232CF643
:10E71000E195ECA790E1F92AAFEDFA22BECF1B32CA
:10E7200011F419A7BACF1E32C1F5F6010894C11C25
:10E73000D11C14911A3279F4F20122E030E0420E39
:10E74000531E408151813FEF4F3F530714F44FEF69
:10E750005FEFE42EA2CF40E050E0812F80538A305B
:10E76000A0F4CA0133E0880F991F3A95E1F7840FAE
:10E77000951F480F591F410F511D40535040F6013E
:10E780000894C11CD11C1491E8CF8FEF4F3F58075C
:10E7900014F44FEF5FEFE42E85CF103329F4F4FC2F
:10E7A0007CCF90E2F92A79CF812F81538930D8F438
:10E7B00040E050E0CA0123E0880F991F2A95E1F755
:10E7C000840F951F480F591F410F511D4053504052
:10E7D000F6010894C11CD11C1491812F80538A30FA
:10E7E00048F34CA75FCF183619F4A4E0FA2A55CFA6
:10E7F0001C3619F4B1E0FB2A50CF133661F43E0108
:10E800000894611C711CF20122E030E0420E531E9C
:10E81000808189833CC1143421F0143611F01936FB
:10E8200051F5143411F431E0F32AF0FE0AC0F2017C
:10E8300044E050E0440E551E80809180A280B38059
:10E840000CC0F20182E090E0480E591E8081918157
:10E850004C01AA2497FCA094BA2CB7FE0AC0B0942D
:10E86000A09490948094811C911CA11CB11C8DE2F9
:10E8700089A70AE06FC01F3411F01F3631F41F342E
:10E8800011F491E0F92A08E064C0103779F4F2013C
:10E89000A2E0B0E04A0E5B1E808191814C01AA2467
:10E8A000BB2400E1B0E4FB2A18E753C01337C1F5DD
:10E8B000F20122E030E0420E531E6080718061144C
:10E8C000710489F43E010894611C711C88E28983FB
:10E8D0008EE6F301818385E78B838CE68C838D83C1
:10E8E00089E28E831F82E7FC13C08E2D992787FD56
:10E8F0009095AC0160E070E0C3010E94AC77009796
:10E9000029F0382E3618E3140CF0C3C03E2CC1C0D9
:10E91000F30101900020E9F731973E2E3618B9C077
:10E92000153511F0153731F4153511F4F1E0FF2AE2
:10E930000AE00FC0183519F0183709F0A0C000E13F
:10E94000F3FE07C081149104A104B10411F020E486
:10E95000F22A19A6EDA6E7FC02C03FEDF32289E2F8
:10E96000682E712C6C0E7D1E81149104A104B104DB
:10E9700021F44DA5442309F47BC0802F9927AA27B1
:10E98000BB278EA79FA7A8ABB9AB202E332490E05E
:10E99000891690E0990691E0A90690E0B90648F042
:10E9A000C501B4012EA53FA548A959A90E94C37865
:10E9B00017C0AFEF8A169104A104B10449F040F0EA
:10E9C000C401B1010E949C789B014427552708C0CF
:10E9D000882D602F0E949078282F332744275527B1
:10E9E0002AAB3BAB4CAB5DAB0A3059F48AA9880F1C
:10E9F000880F880F9AA9990F890F382D381B832FFC
:10EA000010C0003139F48AA98295807F482D481BB7
:10EA1000842F07C08AA9880F880F880F582D581B8C
:10EA2000852F90E02EA53FA548A959A982169306E7
:10EA3000A406B50608F091E08AA89BA8ACA8BDA8DA
:10EA40008A3010F4805D04C0895A183509F48F7D2E
:10EA5000D3018E933D01992309F099CF083041F4F9
:10EA6000F3FE06C0803321F080E3FD0182933F0175
:10EA7000CE010196382E3618F8E23F0E0BC0112356
:10EA800009F46CC03E010894611C711C1983B1E04B
:10EA90003B2E19A6032D2DA4231827FC222489A57B
:10EAA000882311F00F5F02C0F6FC0E5F020DEF2C01
:10EAB000FF24C70180739070892B49F48CA5801BBB
:10EAC000682F2C968EAD9FAD2C970E94EF7289A572
:10EAD000882331F041E050E0BE01675D7F4F0AC0FE
:10EAE000E6FE0EC080E38AA71BA742E050E0BE010D
:10EAF000665D7F4F2C968EAD9FAD2C970E94C072A5
:10EB0000C70180739070809749F48CA5801B682F93
:10EB10002C968EAD9FAD2C970E940073622D2C9683
:10EB20008EAD9FAD2C970E940073832D992787FD92
:10EB30009095AC01B3012C968EAD9FAD2C970E94A1
:10EB4000C072E4FE89CD2CA5201B2CA7622F2C9629
:10EB50008EAD9FAD2C970E94EF727ECDE2E1CB5C33
:10EB60000C941C792FB740E0F894E0E0F0E081E2EB
:10EB7000809357009491E2E0F0E080935700349145
:10EB8000E4E0F0E08093570084912FBF9E3199F428
:10EB9000363941F4893011F441E00DC08A3059F41E
:10EBA00042E009C0373939F4863011F443E003C03C
:10EBB000853009F444E0842F992708959FB7F8948D
:10EBC0008091C900877F8093C9008091C9008F7EA2
:10EBD0008093C9008091C9008F778093C90080918C
:10EBE000C9008F7B8093C9008091C9008F7D80937D
:10EBF000C90052985A9A53985B9A9FBF08951F93E1
:10EC0000CF93DF93182F80912204882309F48DC0BD
:10EC10008091F001181709F488C08091210488239D
:10EC200021F40E94B2758093210488E09DE09F93B7
:10EC30008F93CBE6D2E1DF93CF93E0912D04F09157
:10EC40002E0409950F900F900F900F90812F992708
:10EC50008230910501F1833091052CF4009761F029
:10EC6000019769F024C084309105D9F08430910572
:10EC7000ACF00597C9F01BC088EF9CE002C086EE9F
:10EC80009CE09F938F93DF93CF93E0912D04F091BD
:10EC90002E04099518C08DEC9CE0F3CF8AEA9CE025
:10ECA000F0CF8CE99CE0EDCF84E99CE0EACF85E1F0
:10ECB0009DE09F938F93DF93CF93E0912D04F0918C
:10ECC0002E04099510E00F900F900F900F908091F7
:10ECD0002104843011F0823099F40E94DE75812F76
:10ECE0008150833018F40E9410691DC0143019F44B
:10ECF0000E94AA7118C01530B1F40E94E16F13C0D0
:10ED0000112389F08BE29DE09F938F938BE692E134
:10ED10009F938F93E0912D04F0912E0409950F900D
:10ED20000F900F900F901093F001DF91CF911F91F2
:10ED300008950F931F9381E0809322044091EF0187
:10ED4000E4E4FCE020E030E05FE4849199272F5F69
:10ED50003F4F829FB001839F700D929F700D1124D1
:10ED600046275150319657FFF0CF4093EF01ECE129
:10ED7000FCE020E030E057E2849199272F5F3F4F7D
:10ED8000829FB001839F700D929F700D11244627C2
:10ED90005150319657FFF0CF4093EF0180912104FD
:10EDA000882321F40E94B275809321048091EF01A1
:10EDB000833459F088E190E029E20FB6F894A895E1
:10EDC000809360000FBE2093600081E193E79093F1
:10EDD0002E0480932D0486E49DE09F938F930BE691
:10EDE00012E11F930F93E0912D04F0912E040995E9
:10EDF0000F900F900F900F9084E690E09F938F9369
:10EE000080E590E09F938F931F921F928091020163
:10EE10006AE00E949078892F99279F938F93809121
:10EE200002010E94907899279F938F938CE69DE032
:10EE30009F938F931F930F93E0912D04F0912E04D5
:10EE4000099584E49CE09F938F931F930F93E09127
:10EE50002D04F0912E0409958CE19CE09F938F93F3
:10EE60001F930F93E0912D04F0912E0409958DB717
:10EE70009EB746968DBF80EA9DE09F938F931F9328
:10EE80000F93E0912D04F0912E04099583EC80936B
:10EE9000810080916F00806280936F000F900F90CF
:10EEA0000F900F901F910F91089580912204882355
:10EEB00061F08091F001843011F40E941B72809106
:10EEC000EF01833411F01092220408951F920F92E3
:10EED0000FB60F9211242F933F934F935F936F932D
:10EEE0007F938F939F93AF93BF93EF93FF93209163
:10EEF000CE009091F001892F8150833020F4822F31
:10EF00000E941D6A0BC0943021F4822F0E940E7261
:10EF100005C0953019F4822F0E944D71FF91EF9139
:10EF2000BF91AF919F918F917F916F915F914F9121
:10EF30003F912F910F900FBE0F901F901895FB01DE
:10EF4000DC0140FF05C002C005900D9205900D92B6
:10EF500042505040C8F70895FC014150504030F0F5
:10EF600001900616D1F73197CF0108958827992788
:10EF700008955058192E84D001D06AC0BA1762077C
:10EF8000730784079507B1F188F40EF410940B2EE3
:10EF9000BA2FA02D062E622F202D072E732F302D75
:10EFA000082E842F402D092E952F502DFF275523F5
:10EFB000B9F0591B49F0573E98F04695379527957B
:10EFC000A795F0405395C9F776F0BA0F621F731FEB
:10EFD000841F30F4879577956795B795F0409395A2
:10EFE00017FA0F2E0895BF1BBB27BA0B620B730BCA
:10EFF000840BF6CFDEF670C097FB4ED09F3738F00B
:10F00000FEE9F91B982F872F762F6B2F05C061C063
:10F010009695879577956795F150D0F73EF4909542
:10F020008095709561957F4F8F4F9F4F0895E8941D
:10F0300003C097FB0EF4F3DFB62F672F782F892FCD
:10F040009EE9002405C09A95BB0F661F771F881F95
:10F0500011249923A1F08823B2F79F3F59F0BB0FE9
:10F0600048F421F4002011F460FF04C06F5F7F4F6B
:10F070008F4F9F4F881F9795879597F9089529C0BF
:10F08000052E092607FA440F551F5F3F79F0AA277E
:10F09000A51708F051E04795880F991F9F3F31F061
:10F0A000BB27B91708F091E0879508959F919F912C
:10F0B000112414C097FB880F991F9F3F31F0BB2785
:10F0C000B91708F091E0879508959F919F911124B9
:10F0D00005C0662777278827992708959FEF80EC3A
:10F0E0000895629FD001739FF001829FE00DF11D92
:10F0F000649FE00DF11D929FF00D839FF00D749FB2
:10F10000F00D659FF00D9927729FB00DE11DF91F5D
:10F11000639FB00DE11DF91FBD01CF0111240895BA
:10F12000991B79E004C0991F961708F0961B881F59
:10F130007A95C9F780950895AA1BBB1B51E107C0BA
:10F14000AA1FBB1FA617B70710F0A61BB70B881F77
:10F15000991F5A95A9F780959095BC01CD01089506
:10F1600097FB092E07260AD077FD04D0E5DF06D0ED
:10F1700000201AF4709561957F4F0895F6F79095E9
:10F1800081959F4F0895A1E21A2EAA1BBB1BFD017A
:10F190000DC0AA1FBB1FEE1FFF1FA217B307E40776
:10F1A000F50720F0A21BB30BE40BF50B661F771FCE
:10F1B000881F991F1A9469F76095709580959095AE
:10F1C0009B01AC01BD01CF01089597FB092E0526D7
:10F1D0000ED057FD04D0D7DF0AD0001C38F450956C
:10F1E0004095309521953F4F4F4F5F4F0895F6F76B
:10F1F00090958095709561957F4F8F4F9F4F0895A3
:10F200002F923F924F925F926F927F928F929F9236
:10F21000AF92BF92CF92DF92EF92FF920F931F9324
:10F22000CF93DF93CDB7DEB7CA1BDB0B0FB6F894D5
:10F23000DEBF0FBECDBF09942A88398848885F8415
:10F240006E847D848C849B84AA84B984C884DF8086
:10F25000EE80FD800C811B81AA81B981CE0FD11D6A
:10F260000FB6F894DEBF0FBECDBFED010895EE0FCF
:10F27000FF1F0590F491E02D0994F999FECFB2BDDE
:10F28000A1BDF89A119600B40895F7DF01921A947F
:10F29000E1F70895F2DFE02DF0DFF02D0895F99900
:10F2A000FECFB2BDA1BD00BC11960FB6F894FA9A7C
:10F2B000F99A0FBE0895F3DF012CF1DF11240895B0
:0AF2C0000190EDDF1A94E1F70895C4
:10F2CA005E010A010164FF01FFFF190001FC01FC54
:10F2DA000101737373FF03007D0000C409C409644C
:10F2EA00001148656C6C6F20576F726C64000000E7
:10F2FA000000000000000000000000000000000004
:10F30A0000000000000000000000000000000000F3
:10F31A0000000000000000000000000000000000E3
:10F32A0000000000000000000000000000000000D3
:10F33A00000053706F727400004E6F726D616C0042
:10F34A0000426567696E6E6572000051756164728C
:10F35A006F0000640001200B050000ECFF644041CF
:10F36A005A4664640A02969696960840403A10FBFA
:10F37A0030380190D0030090D00300F4017800FFE8
:10F38A00036400020406070808080706040200FED0
:10F39A00FCFAF9F8F8F8F9FAFCFE00020406070884
:10F3AA00080B0A0D0B0C0E0B0F10FA20010101704D
:04F3BA00FF010F0040
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/Flight-Ctrl_MEGA644_V0_80d.hex
0,0 → 1,3926
:100000000C94DF060C9425070C9425070C94250707
:100010000C9425070C9425070C9425070C942507B0
:100020000C9425070C940C170C9425070C942507A9
:100030000C942D350C9425070C9425070C9425075A
:100040000C9425070C9425070C9485150C94250712
:100050000C94550C0C9425070C941F0C0C9425073C
:100060000C94211C0C9425070C94D1300C9425077A
:100070000C94F3760C9425070C94EF714C1C511CD6
:10008000561C5F1C761C8D1C9D1CAD1CCA1CB61E0C
:100090008D1C781D891DB81DD61DF31D4D1EA81E73
:1000A00086201821D5215522BE226E237925D625FA
:1000B00043268D26D82625277627D0272F28C928FE
:1000C00064295E2AF93020316331D331EB312C328F
:1000D000DF329F339F339F339F339F339F339F3351
:1000E0009F339F339F339F33563358335D3375337C
:1000F00077330A0D426174743A0020256420436509
:100100006C6C732000204C6F77207761726E696E83
:1001100067206C6576656C3A2025642E2564000A9C
:100120000D466F756E6420424C2D4374726C3A20FC
:10013000002564000A0D0A0D2121204D4953534921
:100140004E4720424C2D4354524C3A2025642021E6
:1001500021000A0D3D3D3D3D3D3D3D3D3D3D3D3D8B
:100160003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DBF
:100170003D3D3D3D3D3D3D000A0D43616C69627270
:100180006174696E67207072657373757265207330
:10019000656E736F722E2E004F4B0A0D000A0D46CE
:1001A0006C696768742D74696D65202575206D69AB
:1001B0006E2020546F74616C3A2575206D696E0055
:1001C0000A0D436F6E74726F6C3A2000486561646B
:1001D000696E67486F6C64004E6F726D616C2028A9
:1001E0004143432D4D6F646529000A0D3D3D3D3D62
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A51
:100210000D00416E676C654E69636B2020202020C5
:100220002020416E676C65526F6C6C20202020206E
:1002300020204163634E69636B2020202020202012
:100240002020416363526F6C6C20202020202020EE
:1002500020205961774779726F20202020202020AC
:1002600020204865696768742056616C7565202098
:1002700020204163635A202020202020202020209D
:1002800020204761732020202020202020202020B3
:100290002020436F6D706173732056616C7565200B
:1002A0002020566F6C74616765205B302E31565D7F
:1002B00020205265636569766572204C6576656CB1
:1002C00020204779726F20436F6D70617373202017
:1002D00020204D6F746F722031202020202020209C
:1002E00020204D6F746F722032202020202020208B
:1002F00020204D6F746F722033202020202020207A
:1003000020204D6F746F7220342020202020202068
:1003100020203136202020202020202020202020B6
:1003200020203137202020202020202020202020A5
:100330002020313820202020202020202020202094
:100340002020313920202020202020202020202083
:100350002020536572766F2020202020202020202E
:100360002020486F7665726761732020202020204E
:10037000202043757272656E74205B302E31415DB2
:1003800020204361706163697479205B6D41685D11
:100390002020323420202020202020202020202037
:1003A0002020323520202020202020202020202026
:1003B0002020323620202020202020202020202015
:1003C0002020323720202020202020202020202004
:1003D00020204932432D4572726F72202020202048
:1003E0002020424C204C696D697420202020202060
:1003F00020204750535F4E69636B2020202020202F
:1004000020204750535F526F6C6C2020202020200A
:10041000202021212120494E434F4D504154494233
:100420004C4520212121002E000A0D20444143206B
:100430006F7220493243204552524F522120436867
:1004400065636B204932432C2033567265662C203D
:1004500044414320616E6420424C2D4374726C0011
:100460005B25695D005B25695D002B204D696B7222
:100470006F4B6F70746572202B0048573A56256495
:100480002E25642053573A25642E25642563005396
:10049000657474696E673A2564202573004861723B
:1004A0006477617265204572726F7220313A2564FB
:1004B000202121004D697373696E6720424C2D43E2
:1004C00074726C3A25642121004D6978657220456B
:1004D00072726F722100493243204552524F5221AD
:1004E0002121004865696768743A20202535690034
:1004F000536574706F696E743A2535690050726582
:1005000073737572653A253569004F666673657455
:100510003A20202535690048656967687420636F53
:100520006E74726F6C0044495341424C454400481C
:10053000656967687420636F6E74726F6C004449FC
:100540005341424C4544006163742E2062656172E0
:10055000696E67004E69636B3A20202020202025B9
:10056000356900526F6C6C3A202020202020253500
:100570006900436F6D706173733A202020253569DF
:10058000004B313A25346920204B323A253469201A
:10059000004B333A25346920204B343A2534692006
:1005A000004B353A25346920204B363A25346920F2
:1005B000004B373A25346920204B383A25346920DE
:1005C000004E693A2534692020526F3A253469205B
:1005D0000047733A253469202047693A2534692059
:1005E0000050313A253469202050323A25346920B0
:1005F0000050333A253469202050343A253469209C
:10060000004779726F202D2053656E736F72004E14
:1006100069636B25346920282533692E25692900F3
:10062000526F6C6C25346920282533692E25692981
:100630000047696572253469202825336929004EF1
:1006400069636B2025346920282533692E25782994
:1006500000526F6C6C2025346920282533692E25C3
:1006600078290059617720202534692028253369AD
:1006700029004E69636B20253469202825336929B8
:10068000282533692900526F6C6C20253469202895
:1006900025336929282533692900596177202025C8
:1006A00034692028253369292825336929004143E5
:1006B00043202D2053656E736F72004E69636B206B
:1006C00025346920282533692900526F6C6C202558
:1006D0003469202825336929005A20202020253418
:1006E0006920282533692900566F6C746167653A63
:1006F0002020202533692E253169560043757272FA
:10070000656E743A2020202533692E253169410019
:10071000506F7765723A20202020202534695700D9
:100720004469736368617267653A202535696D4174
:10073000680052656365697665720052432D5253B5
:1007400053493A202020202534690052432D517509
:10075000616C6974793A202534690052432D4368ED
:10076000616E6E656C733A25346900436F6D70611C
:1007700073730048656164696E673A2020253569A6
:100780000056616C75653A2020202025356900539C
:10079000746172743A2020202025356900506F74EE
:1007A00069313A202025336900506F7469323A204C
:1007B0002025336900506F7469333A20202533694E
:1007C00000506F7469343A202025336900506F74EB
:1007D00069353A202025336900506F7469363A2014
:1007E0002025336900506F7469373A20202533691A
:1007F00000506F7469383A202025336900536572C0
:10080000766F202000536574706F696E7420202508
:10081000336900506F736974696F6E3A20253369CC
:100820000052616E67653A2533692D2533690045AD
:10083000787465726E436F6E74726F6C2020004E18
:10084000693A2534692020526F3A253469200047DF
:10085000733A253469202047693A253469200048D5
:10086000693A253469202043663A253469200042DC
:100870004C2D4374726C204572726F727320002588
:10088000336420253364202533642025336420001D
:1008900025336420253364202533642025336420E8
:1008A00000253364202533642025336420253364F8
:1008B0002000424C2054656D7065726174757265DC
:1008C00000253369202533692025336920253369C4
:1008D00020002533692025336920253369202533FD
:1008E00069200025336920253369202533692025B7
:1008F00033692000424C2D4374726C20666F756E14
:1009000064200020256320202025632020202563EB
:10091000202020256320002025632020202563201F
:10092000202025632020202563200020256320200F
:10093000202D2020202D2020202D2000313000319E
:100940003100313200466C696768742D54696D65F9
:10095000202000546F74616C3A2535756D696E0006
:100960004163743A20202535756D696E00287265E3
:1009700073657429000A0D47656E65726174696E4E
:10098000672064656661756C7420506172616D6585
:1009900074657220536574202564000A0D557369CF
:1009A0006E6720506172616D657465722053657465
:1009B000202564000A0D47656E65726174696E6773
:1009C0002064656661756C74204D69786572205489
:1009D00061626C65000A0D4D697865722D436F6E1A
:1009E0006669673A202725732720282575204D6FD3
:1009F000746F727329000A0D3D3D3D3D3D3D3D3D07
:100A00003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D16
:100A10003D3D3D3D3D3D000A0D414343206E6F7419
:100A20002063616C69627261746564210D0A000A59
:100A30000D506C6561736520636F6E6E6563742025
:100A40005370656B7472756D207265636569766548
:100A50007220666F722062696E64696E67204E4F05
:100A6000572E2E2E006F6B2E0A0D0054696D656F88
:100A700075742E0A0D0000008F001E01AD013B02AF
:100A8000CA025803E603740402058F051B06A70675
:100A90003307BE074808D2085B09E3096B0AF20A6C
:100AA000780BFD0B810C040D860D070E870E060FCB
:100AB000840F00107B10F5106E11E5115B12CF1240
:100AC0004213B31323149214FE146A15D3153B1664
:100AD000A11605176717C81727188318DE183719C6
:100AE0008E19E319361A871AD61A231B6E1BB61BEA
:100AF000FD1B411C831CC31C001D3C1D751DAB1D33
:100B0000E01D121E421E6F1E9A1EC31EE91E0D1FFF
:100B10002E1F4D1F691F841F9B1FB01FC31FD31F94
:100B2000E11FEC1FF51FFB1FFF1F0020030100004A
:100B3000C76B00020101BA6C010302024E6D020094
:100B40000303AB6D2532692E2531695600253364C8
:100B5000256320253033646D005374617475730010
:100B60004552524F523A20253264002534692025DF
:100B700032693A25303269002534696D25630025D4
:100B80003369202533692025336920253369002501
:100B900033692025336920253369202533690054C2
:100BA000656D706572617475726573202020200018
:100BB0002563432020202020002532692E2531691D
:100BC0005620202533692E25316941002534695787
:100BD000202536696D4168002532756D2F732053CD
:100BE00061743A2564200020203344004E6F46781B
:100BF000004447505300486F6D653A2533646D20BB
:100C00002533642563004E6F204E6176694374720C
:100C10006C21000A0D7777772E4D696B726F4B6FE1
:100C2000707465722E6465202863292048695379A1
:100C30007374656D7320476D6248000A0D746865B2
:100C400020757365206F66207468697320736F6602
:100C50007477617265206973206F6E6C792070659E
:100C6000726D6974746564200A0D6F6E206F72690D
:100C700067696E616C204D696B726F4B6F70746544
:100C8000722D48617264776172650041435420445B
:100C9000534C004A65746920736174656C6C6974A7
:100CA000005370656B7472756D20736174656C6C44
:100CB000697420284C6F77207265736F6C75746946
:100CC0006F6E29005370656B7472756D207361745B
:100CD000656C6C6974202832303438290053706593
:100CE0006B7472756D20736174656C6C6974004D02
:100CF000756C74697369676E616C2050504D000AA1
:100D00000D52656365697665723A2000756E6B6E8B
:100D10006F776E2E205573696E672050504D2E2EC2
:100D20002E006E6F7420737570706F72746564201E
:100D3000627920686172647761726521000A0D3DF5
:100D40003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DD3
:100D50003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC3
:100D60003D3D000A0D466C69676874436F6E74728E
:100D70006F6C0A0D48617264776172653A25642E62
:100D800025640A0D536F6674776172653A5625645F
:100D90002E2564256320000A0D3D3D3D3D3D3D3D32
:100DA0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D73
:100DB0003D3D3D3D3D3D3D3D3D3D3D3D0000112422
:100DC0001FBECFEFD0E1DEBFCDBF11E0A0E0B1E0AC
:100DD000ECE4F4EF02C005900D92A23FB107D9F701
:100DE00018E0A2EFB1E001C01D92AC39B107E1F704
:100DF0006AEAE2E0F0E081E2809357007491AE018C
:100E00004F5F5F4F20EF37EFDA019FE0F9012F5F6F
:100E10003F4F84918D93915097FFF8CF773911F41C
:100E20000000FECFFA019EE0819168276095915005
:100E300097FFFACF8889681721F0773911F40000FD
:100E4000FECF0E94E6070C94257A0C940000809156
:100E50000406E82FFF27EE0FFF1FE55DF84F8081A6
:100E600091818D5E9F4F14F01092030180819181DA
:100E70008A5B9F4FCCF4809103018823A9F481E021
:100E80008093030180915B048F5F80935B048530C6
:100E900038F088EE93E0909322028093210204C000
:100EA00066E970E00E94973880915B0499279093DF
:100EB000D5058093D40508951F93CF93DF93182F02
:100EC000882389F082EF90E09F938F9389E692E1E7
:100ED0009F938F93E0912704F091280409950F9038
:100EE0000F900F900F9080912706823308F044C036
:100EF00084EF91E00E948C16EC01112329F0CE01C1
:100F00000E9495168823D9F3C2E0D0E026E530E0B0
:100F100080911D0190911E018217930730F0219658
:100F2000255D3F4FC730D10598F38091270699275B
:100F3000C89F9001C99F300DD89F300D1124209378
:100F400000011123D9F068EC70E08C2F0E949738D3
:100F5000DF93CF938AEF90E09F938F9389E692E19E
:100F60009F938F93E0912704F091280409958DB702
:100F70009EB706968DBF02C080930001112311F128
:100F8000809100016AE00E947879892F99279F93C8
:100F90008F93809100010E94787999279F938F9376
:100FA00085E091E09F938F9389E692E19F938F93E1
:100FB000E0912704F091280409952DB73EB7285FEA
:100FC0003F4F2DBFDF91CF911F910895CFEFD0E11B
:100FD000DEBFCDBF8824992414B815B807EE13E0FE
:100FE0000253104017FFFCCF189B06C0199B02C08C
:100FF0008DE007C08BE005C0199B02C084E101C0F1
:101000008AE08093020181E887B93E9A8FEF88B920
:101010008BE184B981E085B98EE38AB987E48BB925
:10102000469A84B7877F84BF8091600088618093EF
:1010300060001092600084EC99E09093220280930B
:10104000210210921603109215031092300710928D
:101050002F07109218031092170310921A03109280
:10106000190320910201243128F084EC94E0A0E0DF
:10107000B0E004C08BE095E0A0E0B0E08093950183
:1010800090939601A0939701B09398012A3011F0A4
:10109000243110F0289801C0289A0E94F5160E9469
:1010A000C6160E9471120E9411350E94DA1A0E941F
:1010B00088300E94D2630E949A6E0E9426768091A8
:1010C00002018C3010F4299A01C0299878940E946A
:1010D000A22F80916B02826080936B0210926D024E
:1010E0000E94FF4384EF91E00E948C168C01809156
:1010F0006B0280FD05C0C8010E9495168823B9F3D4
:101100008FE191E09F938F93B9E6AB2EB2E1BB2EB6
:10111000BF92AF92E0912704F0912804099580EAEC
:101120009FE00E948C168C01C0E0D0E00F900F90E1
:101130000F900F90ADECEA2EA6E0FA2EF1E8CF2E3C
:10114000F6E0DF2E0E94FF4380916B0280FD05C018
:10115000C8010E9495168823B9F3F60180811816FC
:10116000ACF40BC00E94FF4380916B0280FD05C070
:10117000C8010E9495168823B9F3C8010E949516EC
:10118000882321F4F7018081882364F7F7018081A7
:1011900087FF18C02196DF93CF93219781E391E0D9
:1011A0009F938F93BF92AF92E0912704F091280410
:1011B00009958091F2018F5F8093F2018DB79EB700
:1011C00006968DBF2196E4E0F0E0CE0EDF1E88E0AB
:1011D00090E0E80EF91ECC30D10508F4B3CFC0E0A2
:1011E000D0E00AEC16E0E1E8EE2EE6E0FE2EF80193
:1011F000838187FD1CC0F70180811816C4F42196F5
:10120000DF93CF93219784E391E09F938F9389E6B7
:1012100092E19F938F93E0912704F0912804099520
:1012200082E080931F028DB79EB706968DBFF801AE
:10123000838180788383219684E090E0E80EF91E14
:10124000085F1F4FCC30D10590F282E591E09F936B
:101250008F93C9E6D2E1DF93CF93E0912704F09119
:1012600028040995909102068091F2010F900F9049
:101270000F900F90981728F480914104806180931B
:10128000410488E791E09F938F93DF93CF93E091A0
:101290002704F0912804099588EE93E00E948C16AB
:1012A0008C010E94E01A0F900F900F900F90C801D0
:1012B0000E9495168823D9F388E991E09F938F9334
:1012C000DF93CF93E0912704F0912804099580E003
:1012D0000E945939809102010F900F900F900F904A
:1012E0008A3011F0843110F0289801C0289A80EDDE
:1012F00097E0909322028093210285E580935D041C
:101300008EE090E00E941A2E9927182F00278FE078
:1013100090E00E941A2E080F111D1093F8010093FF
:10132000F7018AE090E00E941A2E9927182F0027D3
:101330008BE090E00E941A2E080F111D1093F60109
:101340000093F5010F5F1F4F39F08091F7019091E5
:10135000F8018F5F9F4F41F41092F8011092F7014E
:101360001092F6011092F5018091F5019091F6012D
:101370009F938F938091F7019091F8019F938F93A2
:101380008DE991E09F938F93DF93CF93E0912704B2
:10139000F091280409958DB79EB708968DBF80EC13
:1013A00091E09F938F93DF93CF93E0912704F09187
:1013B00028040995809110060F900F900F900F90C0
:1013C000E0912704F091280482FF07C08CEC91E0A3
:1013D0009F938F93DF93CF9308C088ED91E09F9305
:1013E0008F9389E692E19F938F9309950F900F90C9
:1013F0000F900F900E94FD1F88E893E19093920157
:101400008093910181E080935C040E945C0780914D
:101410002A060E948C758AEE91E09F938F93DF934A
:10142000CF93E0912704F0912804099580ED97E08F
:101430000E948C168C018AEF90E00E948C16EC01C1
:1014400083E08093AC050F900F900F900F90CE012A
:101450000E949516882339F084E690E00E948C164D
:10146000EC010E94E27680912502882309F4DFC115
:1014700080910F01882309F4DAC11092250280912E
:101480005B04882319F00E94270702C00E9493463C
:101490000E94FF43209102012A3011F0243110F004
:1014A000289801C0289A80911B03909141048823B9
:1014B00039F080911B03815080931B03977F0AC0F2
:1014C00080916F00806280936F0010922C071092C1
:1014D0002B07986090934104809191019091920123
:1014E0000197909392018093910180919101909145
:1014F0009201892B29F080916C02882309F43EC067
:101500008091910190919201892B01F50E94AE305A
:1015100085E090E090939201809391018091E6059F
:101520009091E70501969093E7058093E6058091F9
:10153000E70280688093E702809141048160809394
:1015400041048091AD0582608093AD0580910801D2
:10155000909109018F5F9F4F19F5809112038823A5
:10156000F9F080E197E2909322028093210280E8D3
:1015700090E0909309018093080112C02A3011F085
:10158000243110F0289801C0289A8091210290916E
:101590002202892B29F48091E7028F778093E7025A
:1015A00080912502882309F042C10E94B5120E9451
:1015B000930EC8010E949516882309F434C10C5E6D
:1015C0001F4F80916C0290914104882339F0926002
:1015D000909341048091AD0582600CC09D7F9093F3
:1015E00041048091910190919201079728F0809198
:1015F000AD058D7F8093AD05809191019091920111
:10160000079728F0809141048E7F80934104809158
:101610000501882321F081508093050125C0809326
:1016200067041092F3021092F2021092F1021092EB
:10163000F0021092EF021092EE0280910801909158
:1016400009018F5F9F4F81F480911B03882361F410
:1016500088E99AE3909322028093210280E09CE043
:1016600090930901809308018091E801893C70F012
:1016700081508093E8018091E7028F7B8093E7029D
:10168000809141048B7F8093410435C0809109088B
:10169000882309F18091E70280648093E7028091BA
:1016A0004104846080934104809108019091090174
:1016B0008F5F9F4F81F480911203882361F088E946
:1016C0009AE3909322028093210280E098EA90931B
:1016D0000901809308011092F9031092F803109207
:1016E000F7031092F6038FEF9FEF909337088093E4
:1016F00036081092E80180910001282F332780914D
:101700001D0190911E0182179307CCF48091E7028E
:1017100080628093E70280910801909109018F5FB8
:101720009F4FC1F480E797E19093220280932102BA
:1017300080E093E090930901809308010BC08091B1
:10174000210290912202892B29F48091E7028F7D5A
:101750008093E7020E94D06784E08093200280910A
:101760001203882329F45AEA852E55E0952E12C0DB
:101770008091F9018F5F8093F901813359F41092C0
:10178000F9018091F3019091F40101969093F40195
:101790008093F3010894811C911CF2E78F16FBE003
:1017A0009F0609F040C0882499242091F7013091C8
:1017B000F8012F5F3F4F3093F8012093F70180919C
:1017C000F5019091F60101969093F6018093F50151
:1017D000832F9927682F8EE090E00E94222E80911F
:1017E000F7019091F8019070682F8FE090E00E94CF
:1017F000222E8091F5019091F601892F9927682F6B
:101800008AE090E00E94222E8091F5019091F601ED
:101810009070682F8BE090E00E94222E84E190E08F
:101820000E948C168C010E9420680E94B16E8091EB
:101830002002882309F00BCE0E94F36308CE1F928A
:101840000F920FB60F9211248F939F93EF93FF93F4
:10185000809107018823E1F4809113029091140292
:1018600001969093140280931302FC01E45FFA4FF7
:10187000E081ED3019F0803A910539F410921402AC
:101880001092130281E080930701E093C60004C028
:101890001092140210921302FF91EF919F918F9179
:1018A0000F900FBE0F901F9018951F920F920FB6BA
:1018B0000F9211242F933F934F935F936F937F93D6
:1018C0008F939F93AF93BF93CF93EF93FF9390E04A
:1018D0008091C60080930B0250911902503A10F08B
:1018E00090931A0280910B028D3009F065C08091AF
:1018F0001A02823009F060C090931A02852F99274E
:1019000086599B4FFC0132974081209115023091FE
:101910001602241B3109DC0111978C91281B310917
:10192000C9019F70909316028093150246E0969528
:1019300087954A95E1F7982F935C909317022F7340
:101940003070235C209318028081981729F48C91C1
:10195000281711F491E006C090E0809108028F5F93
:1019600080930802C0910A02CC2309F074C0992325
:1019700009F471C081E080930A02580F5093070266
:101980005150E52FFF27E659FB4F8DE08083809172
:101990006C04823509F05FC00E94FD1F88E190E071
:1019A0002CE00FB6F894A895809360000FBE2093AA
:1019B0006000C0931F024FC020911A02822F992706
:1019C00081309105F9F0823091051CF4892B21F0CA
:1019D00040C0029711F13DC080910B02833239F46F
:1019E00080910A02882319F481E080931A02809181
:1019F0000B0280936A0481E08093190280910B02AC
:101A0000992722C02F5F20931A02E52FFF27E6595E
:101A1000FB4F80910B02808309C0E52FFF27E65919
:101A2000FB4F80910B028083503A20F45F5F50930C
:101A3000190202C010921A0220910B028091150225
:101A400090911602820F911D9093160280931502B9
:101A500002C010921A02FF91EF91CF91BF91AF9106
:101A60009F918F917F916F915F914F913F912F91B6
:101A70000F900FBE0F901F901895AC01A0E0B0E042
:101A80009D01A817B90748F4ECE0F5E08191280F13
:101A9000311D1196A417B507C8F33F70FD01E45F2F
:101AA000FA4FC90156E0969587955A95E1F7835C00
:101AB00080831196FD01E45FFA4F2F733070822FFF
:101AC000835C8083A35FBA4F8DE08C9310920701F3
:101AD00080910C058093C6000895A0E0B0E0E3E794
:101AE000FDE00C94F1792C859D850E85BB2483E265
:101AF00080930C059F5990930D0520930E0533E0BC
:101B0000E32EF12C002309F49EC0CF84D888BE01B7
:101B10006D5E7F4FA989BA890150109709F493C06F
:101B20001097B9F0F601EB0DF11DB3949081119768
:101B300091F4002349F1FB016E5F7F4FDB01C08010
:101B4000D1806E5F7F4F0D90BC91A02DBB240150C2
:101B500002C090E019C01097B9F0F601EB0DF11D2D
:101B6000B3944081119791F4002341F1FB016E5F22
:101B70007F4FDB01C080D1806E5F7F4F0D90BC91A5
:101B8000A02DBB24015002C040E018C01097B1F056
:101B9000F601EB0DF11DB3941081119781F4002330
:101BA00071F0FB013296DB01CD90DC90BF016E5FDE
:101BB0007F4FA081B181BB24015001C010E0F7012B
:101BC000E45FFA4F892F86958695835C808308941D
:101BD000E11CF11CF701E45FFA4F892F992783700C
:101BE000907024E0880F991F2A95E1F755279A01F4
:101BF00094E0369527959A95E1F7822B835C808354
:101C00000894E11CF11CF701E45FFA4F4F7050702B
:101C1000440F551F440F551F812F992726E0969595
:101C200087952A95E1F7842B835C80830894E11CD7
:101C3000F11CF701E45FFA4F1F73135C10830894E3
:101C4000E11CF11C6ACFC7010E943D0DE9E00C9434
:101C50000D7AA3E07A2F409107024650442309F4FD
:101C600058C0E72FFF27E659FB4F80818D537F5FD8
:101C7000E72FFF27E659FB4F20812D537F5FE72F8A
:101C8000FF27E659FB4F30813D537F5FE72FFF274A
:101C9000E659FB4F60816D537F5F9927880F991F2D
:101CA000880F991F522F52955F70582B822F9927BA
:101CB0008F709070F4E0880F991FFA95E1F7232F49
:101CC00026952695282B832F992783709070E6E020
:101CD000880F991FEA95E1F7682B41504F3FC9F0F3
:101CE000EA2FFF27E659FB4F5083AF5F41504F3F2C
:101CF00081F0EA2FFF27E659FB4F2083AF5F415069
:101D00004F3F39F0EA2FFF27E659FB4F6083AF5F63
:101D1000A5CF8DE694E09093060280930502A35030
:101D2000A09304020895A2E0B0E0E9E9FEE00C947B
:101D3000F77980910A02882309F4C7C30E94290E0B
:101D400080916B04823609F081C280916C049927DE
:101D50008137910509F4C0C082379105C4F48D36EE
:101D6000910509F482C08E36910544F48B349105B7
:101D700031F18636910509F454C168C28E36910559
:101D800009F45BC08037910509F49FC05FC28537B5
:101D9000910509F4E2C18637910544F48337910532
:101DA00009F4DCC08437910539F150C287379105B9
:101DB00009F410C28937910509F46AC147C2E0915C
:101DC0000502F09106028081918190932E03809309
:101DD0002D0320912B0330912C03821B930B845EE7
:101DE0009D4F68E671E00E949879845B90409093E3
:101DF0002A03809329032AC280910702A091050239
:101E0000B0910602853140F080E1E5E4F4E00D9008
:101E100001928A95E1F70DC08D919D910D90BC9135
:101E2000A02D8093450490934604A0934704B0935B
:101E3000480480EF809302024BC080910701882301
:101E4000E1F38DE490E09F938F9384E796E09F9376
:101E50008F9381E08F938F938EE48F930E946D0D0B
:101E60008DB79EB707968DBFF1C1A0910502B091C5
:101E700006021C91113081F48DE4E4E7F6E00D9048
:101E800001928A95E1F70E94222F198380914104E3
:101E90008F7E8093410401C01982809107018823BD
:101EA000E1F381E090E09F938F93CE0101969F93A1
:101EB0008F9381E08F938F938DE48F930E946D0DAC
:101EC000ADB7BEB71796ADBFC1C181E080930D021B
:101ED0008FEF80930501BAC1E0910502F0910602EF
:101EE00080818F3F39F40E94852FE0910502F091A7
:101EF00006028083E0910502F0910602808188232A
:101F000011F481E003C0863010F085E08083E09119
:101F10000502F091060280810E94382EE0910502B0
:101F2000F091060280818983809107018823E1F383
:101F300080E790E09F938F9383E096E09F938F9349
:101F400081E090E09F938F93CE0101969F938F93B2
:101F500082E08F9381E08F9381E571C1209105022A
:101F600030910602D9018C918150853008F040C033
:101F7000F90181818435E1F52F5F3F4F80E7E3E090
:101F8000F6E0D9010D9001928A95E1F7F90182916D
:101F90000E94A12E809142069927AA27BB27BC0147
:101FA000CD0124EC39E040E050E00E945979DC0199
:101FB000CB018093B5019093B601A093B701B09384
:101FC000B801809143069927AA27BB27BC01CD0100
:101FD0000E945979DC01CB018093B1019093B20149
:101FE000A093B301B093B4010E94852F898301C0EF
:101FF0001982809107018823E1F381E090E09F93AB
:102000008F93CE0101969F938F9381E08F938F934F
:1020100083E58F930E946D0D8DB79EB707968DBF98
:1020200026C0E0910502F0910602E0818E2F8150DA
:10203000853018F48E2F0E94382E0E94852F8983B8
:10204000809107018823E1F381E090E09F938F93D3
:10205000CE0101969F938F9381E08F938F9386E4B7
:102060008F930E946D0DADB7BEB71796ADBF80912F
:102070001203882329F46EE670E089810E94973864
:1020800080E00E945C0780912A060E948C75DEC069
:10209000E0910502F09106028081992787FD9095D5
:1020A00090934607809345078181992787FD9095F6
:1020B00090934807809347078281992787FD9095E1
:1020C00090934A07809349078381992787FD9095CC
:1020D00090934C0780934B078481992787FD9095B7
:1020E00090934E0780934D078581992787FD9095A2
:1020F0009093500780934F078681992787FD90958D
:1021000090935207809351078781992787FD909577
:1021100090935407809353078085992787FD909566
:1021200090935607809355078185992787FD909551
:1021300090935807809357078285992787FD90953C
:1021400090935A07809359078385992787FD909527
:1021500090935C0780935B0779C0E0910502F09152
:10216000060280810E946A348A83882319F481E000
:10217000898301C01982809107018823E1F388E0F7
:1021800090E09F938F9382EC96E09F938F9321E052
:1021900030E03F932F9380910502909106029F9328
:1021A0008F933F932F93CE0102969F938F933F93EC
:1021B0002F93CE01820F931F9F938F9384E08F9371
:1021C00081E08F9385E58F930E946D0DEDB7FEB78B
:1021D00073963BC0809104028930C0F120910502C2
:1021E000309106022F5F3F4F88E0A2ECB6E0F90184
:1021F00001900D928A95E1F7D9018E910E94C0332A
:102200008A83882319F481E0898301C0198280912F
:1022100007018823E1F321E030E03F932F93CE01C3
:1022200002969F938F933F932F93CE01820F931F1C
:102230009F938F9382E08F9381E08F9387E58F93B5
:102240000E946D0DEDB7FEB73B96EDBF80916C041B
:1022500099278436910509F4CDC085369105ACF4F3
:102260008136910509F481C0823691052CF48B34B6
:10227000910509F45DC021C18236910509F482C03F
:102280008336910509F491C018C18C36910509F483
:10229000FFC08D3691054CF48736910509F40AC1CB
:1022A0008836910509F4C4C008C18437910529F026
:1022B0008637910509F4FAC000C180910702A09108
:1022C0000502B0910602803140F080E1E5E4F4E0DF
:1022D0000D9001928A95E1F70DC08D919D910D9021
:1022E000BC91A02D8093450490934604A09347048D
:1022F000B0934804809107018823E1F31F928091F5
:1023000004018F9384E58F930E946D0D8AEF809373
:1023100002028FEF8093050180EA9FE00E948C16F5
:102320009093FB018093FA010F900F900F90C5C01E
:10233000E0910502F09106028081918190932E0335
:1023400080932D0320912B0330912C03821B930B40
:10235000845E9D4F68E671E00E949879845B9040AE
:1023600090932A0380932903A8C0E0910502F0917D
:102370000602808180930601803298F08FE180937D
:1023800006010FC0A0910502B09106028BE0EDE5B9
:10239000F4E00D9001928A95E1F7809166048093B4
:1023A000EE058FEF8093050188C08091FE0190912A
:1023B000FF01892B89F4E0910502F0910602E0818A
:1023C000EE2351F08AE0E89FC00111240E948C1690
:1023D0009093380480933704E0910502F09106024F
:1023E00090818AE0989FC00111249093FF0180930F
:1023F000FE0115C08FEF80930501E0910502F09179
:10240000060290818AE0989FC001112490930102F6
:1024100080930002892B19F081E080930F0280EAFB
:102420009FE00E948C169093FB018093FA0145C0B7
:102430008FEF80930501E0910502F09106029081F3
:1024400097FD08C082E080930C021092FD0110926B
:10245000FC011AC0909580916402892B80936402DC
:1024600091818AE0989FC00111249093FD0180938F
:10247000FC0184E080930C0280EA9FE00E948C16AD
:102480009093FB018093FA0181E08093100215C0C4
:102490008FEF80930501E0910502F09106028081A3
:1024A0008093650281E08093110207C081E08093F0
:1024B0000E0203C081E08093120210920A02109271
:1024C00006021092050210920402E3E0CE5F0C9423
:1024D000137A982F8091C00085FFFCCF9093C6009F
:1024E00008950F931F9388E18093C1008091C000ED
:1024F00082608093C0008091C10080688093C10099
:102500008091C10080648093C10000E010E00093DE
:10251000C5008AE290E08093C4008091000290910F
:1025200001020E948C1690933A04809339048CED3A
:1025300090E00E948C169093690480936804109236
:102540003B0480E580933C0483E080933F048BE070
:1025500080933D0410923E041093060200930502FE
:10256000109204021F910F910895A0E1B0E0EBEBEF
:10257000F2E10C94F47980910701882309F4C1C237
:102580008091FA019091FB010E949516882361F0D9
:102590001092FD011092FC011092010210920002B3
:1025A0001092FF011092FE018091FC019091FD01BB
:1025B000892B41F080910A0590910B050E94951698
:1025C000882329F480911002882309F460C0809147
:1025D0000701882309F45BC080910C0200E211E03E
:1025E0008430A8F00E94112080E590E09F938F93A3
:1025F0001F930F9381E08F938F9388E48F930E94B2
:102600006D0D2DB73EB7295F3F4F2DBF34C01092DF
:10261000660282E194E09F938F9386E090E29F931D
:102620008F93E0912704F0912804099584E190E0CC
:102630009F938F931F930F9381E090E09F938F93CD
:102640008CE092E09F938F9382E08F9381E08F9351
:1026500088E48F930E946D0D80910C02982F8F5FFC
:1026600080930C022DB73EB7215F3F4F2DBF9430B2
:1026700010F010920C028091FC019091FD010E94DB
:102680008C1690930B0580930A051092100280918E
:102690001102882351F180910701882331F10E94B2
:1026A000112080E590E09F938F9380E291E09F93CB
:1026B0008F9321E030E03F932F938FE191E09F9340
:1026C0008F933F932F9385E692E09F938F9383E0C0
:1026D0008F9381E08F938CE48F930E946D0D109205
:1026E00011028DB79EB70F968DBF80910E02882381
:1026F000D1F0809107018823B1F08AE090E09F93A8
:102700008F938BE394E09F938F9381E08F938F93CC
:1027100086E58F930E946D0D10920E022DB73EB785
:10272000295F3F4F2DBF809112028823D9F08091FD
:1027300007018823B9F08BE090E09F938F938DE59C
:1027400094E09F938F9381E08F93809104018F9306
:1027500087E48F930E946D0D109212028DB79EB781
:1027600007968DBF80916804909169040E94951628
:10277000882309F461C080910701882309F45CC0B3
:1027800080911F069927880F991F880F991F7C0138
:102790000027F7FC0095102F80916F039091700334
:1027A000A0917103B0917203BC01CD01A801970102
:1027B0000E94CD793093560420935504809167038D
:1027C00090916803A0916903B0916A03BC01CD01A7
:1027D000A80197010E94CD793093580420935704A3
:1027E0008091FC02809359048091FB0280935A04EB
:1027F00088E090E09F938F9385E594E09F938F937B
:1028000081E08F9383E08F938BE68F930E946D0D11
:1028100080915B042DB73EB7295F3F4F2DBF8530B8
:1028200018F086E080935B0483E690E00E948C16AB
:102830009093690480936804809100029091010252
:10284000892B41F08091390490913A040E949516A9
:10285000882321F480910F02882339F180910701A8
:10286000882319F10E948D3782E490E09F938F9323
:102870008CEA95E09F938F9381E08F938F9384E40C
:102880008F930E946D0D10920F028DB79EB7079621
:102890008DBF8091000290910102009731F00E945B
:1028A0008C1690933A04809339048091FE019091A4
:1028B000FF01892B09F4B8C0809137049091380446
:1028C0000E949516882309F4AFC0809107018823E0
:1028D00009F4AAC080911F069927880F991F880FB5
:1028E000991F7C010027F7FC0095102F80916F0342
:1028F00090917003A0917103B0917203BC01CD015E
:10290000A80197010E94CD7930932A0420932904CD
:102910008091670390916803A0916903B0916A0365
:10292000BC01CD01A80197010E94CD7930932C0400
:1029300020932B042091F1073091F2074091F30787
:102940005091F407DA01C90163E0880F991FAA1FAB
:10295000BB1F6A95D1F7820F931FA41FB51F820F6B
:10296000931FA41FB51F20919501309196014091AE
:10297000970150919801BC01CD010E94CD7930930F
:102980002E0420932D048091370390913803A09159
:102990003903B0913A0339E0B595A7959795879596
:1029A0003A95D1F780932F048091330390913403AB
:1029B000A0913503B091360329E0B595A795979579
:1029C00087952A95D1F78093300480913F039091A9
:1029D0004003A0914103B091420309E0B595A7954A
:1029E000979587950A95D1F7809331048EE090E012
:1029F0009F938F9389E294E09F938F9381E08F93CD
:102A00008F9383E48F930E946D0D8091FE019091CE
:102A1000FF010E948C1690933804809337042DB7E1
:102A20003EB7295F3F4F2DBF809106018F3F71F167
:102A3000992714E0880F991F1A95E1F78E5E9D4F34
:102A400040E150E0BC01CE0101960E94AC7780E1EC
:102A500090E09F938F93CE0101969F938F9381E097
:102A600090E09F938F9386E091E09F938F9382E015
:102A70008F9381E08F9381E48F930E946D0D8FEF90
:102A8000809306018DB79EB70B968DBF8091EE05A2
:102A90008823D1F0809107018823B1F081E090E094
:102AA0009F938F938EEE95E09F938F9381E08F930A
:102AB0008F9382E48F930E946D0D1092EE052DB7D7
:102AC0003EB7295F3F4F2DBF80910D028823C9F08B
:102AD000809107018823A9F084E390E09F938F936E
:102AE0008BE297E09F938F9381E08F938F9380E5A4
:102AF0008F930E946D0D10920D028DB79EB70796B1
:102B00008DBFE6E0C05F0C94107A1F920F920FB653
:102B10000F9211242F933F935F936F937F938F9323
:102B20009F93AF93BF93EF93FF9320E08091200298
:102B3000882329F080912002815080932002809187
:102B40000A04882319F0815080930A048091280296
:102B50008150809328028F3F09F057C089E080930D
:102B600028028091260290912702019690932702D5
:102B70008093260280910A018F5F817080930A0101
:102B8000882319F481E08093250286B18091210287
:102B900090912202892B21F18091210290912202B1
:102BA0000B9750F080912102909122020A97909306
:102BB00022028093210204C010922202109221026C
:102BC0008091210290912202209108013091090107
:102BD00082239323892B11F021E008C020E006C056
:102BE0008FEF9FEF9093090180930801809102017C
:102BF000222331F08A3011F45A9A07C0479A05C04F
:102C00008A3011F45A9801C047988091290288238C
:102C100009F472C02091E801222309F06DC080916F
:102C2000100683FF69C086B19927FC01E071F0703E
:102C300084FF14C080912302909124020196909306
:102C40002402809323028091230290912402895EC2
:102C5000934008F451C0209329024EC08091230272
:102C600090912402892B09F443C080912302909112
:102C700024028A569140E0F580912302909124022B
:102C800069E270E00E94847980912302909124028D
:102C9000860F971F90932402809323028091230232
:102CA000909124020B9750F080912302909124027E
:102CB0000A9790932E0380932D0304C0F0932E0364
:102CC000E0932D0380912D0390912E0320912B03EF
:102CD00030912C03821B930B845E9D4F68E671E05C
:102CE0000E949879845B904090932A0380932903F3
:102CF0001092240210922302FF91EF91BF91AF91A5
:102D00009F918F917F916F915F913F912F910F9044
:102D10000FBE0F901F901895209126023091270228
:102D2000280F391FC901019608952091260230917C
:102D30002702821B930B892F9927869580749070A8
:102D40000895CF93DF930E948C16EC01CE010E9470
:102D500095168823D9F3DF91CF910895CF93DF9310
:102D60000E948C16EC0109C080910F01882329F084
:102D700090930F018FEC80937A00CE010E949516FC
:102D8000982F882389F3DF91CF9108959FB7F89406
:102D90005F983E9A469A8091B0008F708093B00001
:102DA0008091B00083608093B0008091B1008B73FC
:102DB0008093B1008091B1008B608093B10010923C
:102DC000B2008FEF8093B3008091B0008068809351
:102DD000B000809170008A7F8093700080917000B5
:102DE0008260809370009FBF08958AE090E00E9407
:102DF0008C16909331028093300282E085BD83EA85
:102E000084BD17BC84EB88BD86E086BD80916E00D2
:102E1000816080936E0008951F920F920FB60F92FB
:102E200011242F933F934F935F936F937F938F93CF
:102E30009F93AF93BF93CF93DF93EF93FF938091D3
:102E4000020190912A02843108F011C1992309F0FE
:102E50006AC38091B00086FFECC08091B0008F7B88
:102E60008093B00089EA93E090932C0280932B0228
:102E700080910B0190910C019C01220F331F280FB0
:102E8000391F8091A1019927880F991F880F991FD9
:102E9000280F391F37FF02C02D5F3F4FC90195959D
:102EA00087959595879590930C0180930B0190934E
:102EB0001E0280931D02809165066091310620916B
:102EC0006F0330917003409171035091720380FF42
:102ED0002CC0772788279927EA01D90157FF04C01A
:102EE000A158BF4FCF4FDF4FE7E0D595C795B795B6
:102EF000A795EA95D1F79D01AE010E9459799B01F2
:102F0000AC0197FF04C0215C3F4F4F4F5F4F66E01D
:102F100055954795379527956A95D1F780911D026C
:102F200090911E02820F931F2BC077278827992725
:102F3000EA01D90157FF04C0A158BF4FCF4FDF4F5F
:102F400027E0D595C795B795A7952A95D1F79D0107
:102F5000AE010E9459799B01AC0197FF04C0215C2E
:102F60003F4F4F4F5F4FF6E0559547953795279563
:102F7000FA95D1F780911D0290911E02821B930B4E
:102F800090931E0280931D0280913206282F3327D2
:102F9000220F331F220F331F80911D0290911E02BA
:102FA000821793077CF080913306282F3327220F56
:102FB000331F220F331F80911D0290911E0228178C
:102FC000390724F430931E0220931D0220912B0216
:102FD00030912C0280911D0290911E02280F391F02
:102FE0002050324030932C0220932B0280911D02FE
:102FF00090911E0297FD03969595879595958795D7
:1030000090931E0280931D0245E02D3D340718F079
:103010008CED95E005C02757314030F487E791E00B
:1030200090932C0280932B0280912B0290912C0282
:1030300043C28091B00080648093B00080913806D4
:10304000282F33278DED96E0289FA001299F500D52
:10305000389F500D1124CA0120912D0230912E026B
:10306000821B930B90932C0280932B0259C29923BD
:1030700009F059C28091B00086FF23C28091B00050
:103080008F7B8093B000E0912F02EE23F1F48091CA
:103090003806282F33278DED96E0289FA001299F21
:1030A000500D389F500D1124CA0120912D023091EE
:1030B0002E02821B930B90932C0280932B02109272
:1030C0002E0210922D02469A2BC289EA93E0909329
:1030D0002C0280932B028E2F99278330910509F4BF
:1030E000A4C1843091053CF48130910561F00297D0
:1030F00009F4D2C0AAC18430910509F499C1059799
:1031000009F4A0C1A2C180910B0190910C019C0116
:10311000220F331F280F391F8091A1019927880F93
:10312000991F880F991F280F391F37FF02C02D5F85
:103130003F4FC901959587959595879590930C017B
:1031400080930B0190931E0280931D02809165066F
:103150006091310620916F033091700340917103AB
:103160005091720380FF2CC0772788279927EA01A6
:10317000D90157FF04C0A158BF4FCF4FDF4F27E001
:10318000D595C795B795A7952A95D1F79D01AE011D
:103190000E9459799B01AC0197FF04C0215C3F4F0D
:1031A0004F4F5F4FA6E05595479537952795AA95C0
:1031B000D1F780911D0290911E02820F931F27C0AC
:1031C00077278827992757FF04C021583F4F4F4F33
:1031D0005F4FF7E05595479537952795FA95D1F7C5
:1031E0000E9459799B01AC0197FF04C0215C3F4FBD
:1031F0004F4F5F4FE6E05595479537952795EA95F0
:10320000D1F780911D0290911E02821B930B909327
:103210001E0280931D0280913206282F3327220F31
:10322000331F220F331F80911D0290911E028217BF
:1032300093077CF080913306282F3327220F331F0A
:10324000220F331F80911D0290911E02281739070B
:1032500024F430931E0220931D0280912B02909142
:103260002C0220911D0230911E02820F931F80506C
:10327000924090932C0280932B0280911D0290919A
:103280001E0297FD03969595879595958795909342
:103290001E0280931D02ECC080910D0190910E01E1
:1032A0009C01220F331F280F391F8091A0019927FD
:1032B000880F991F880F991F280F391F37FF02C0E9
:1032C0002D5F3F4FC901959587959595879590936B
:1032D0000E0180930D0190931C0280931B0280913C
:1032E000650660913506A0916703B0916803C091AF
:1032F0006903D0916A0381FF2AC07727882799271D
:103300009D01AE01D7FF04C021583F4F4F4F5F4F83
:10331000A7E05595479537952795AA95D1F70E942F
:1033200059799B01AC0197FF04C0215C3F4F4F4F7F
:103330005F4FF6E05595479537952795FA95D1F764
:1033400080911B0290911C02820F931F29C0772746
:10335000882799279D01AE01D7FF04C021583F4F10
:103360004F4F5F4FE7E05595479537952795EA957D
:10337000D1F70E9459799B01AC0197FF04C0215CF1
:103380003F4F4F4F5F4F76E05595479537952795BF
:103390007A95D1F780911B0290911C02821B930BAE
:1033A00090931C0280931B0280913606282F3327AE
:1033B000220F331F220F331F80911B0290911C029A
:1033C000821793077CF080913706282F3327220F2E
:1033D000331F220F331F80911B0290911C0228176C
:1033E000390724F430931C0220931B0280912B0296
:1033F00090912C0220911B0230911C02820F931F8E
:103400008050924090932C0280932B0280911B025B
:1034100090911C0297FD03969595879595958795B4
:1034200090931C0280931B0223C08091BF0702C0AF
:10343000809199079927880F991F880F991F8755A1
:103440009E4F12C08091C707F5CFFF27EE0FFF1FD9
:10345000E55DF84F20813181220F331F80912B02CF
:1034600090912C02820F931F90932C0280932B0239
:1034700080912B0290912C0255E08D3D950718F01C
:103480008CED95E005C08757914030F487E791E0D7
:1034900090932C0280932B0220912B0230912C02CE
:1034A0002C5B304030932C0220932B0280912D0214
:1034B00090912E02820F931F90932E0280932D02E3
:1034C0002FC08091B00080648093B0008CEB90E0BE
:1034D00090932C0280932B0280912D0290912E02CA
:1034E00084549F4F90932E0280932D0280911F024F
:1034F000882321F080911B03853B20F480911F02DB
:10350000823011F4469801C0469A80912F028F5F55
:1035100080932F0290913806981710F410922F0282
:1035200081E080932A0220912B0230912C0241E00D
:103530002F37340730F08FEF8093B3002F5F304088
:103540000FC02F3F3105C9F0C0F0A9014F5F5040B7
:103550004F37510550F480E88093B3002058304035
:1035600030932C0220932B0212C08FEF8093B30074
:1035700050932C0240932B020AC080912B0280931F
:10358000B30010922C0210922B0210922A02FF918B
:10359000EF91DF91CF91BF91AF919F918F917F91EB
:1035A0006F915F914F913F912F910F900FBE0F90B0
:1035B0001F90189510927C008FEC80937A000895EC
:1035C000CF93DF9383E090E00E941A2EC82FDD276F
:1035D000C531D10508F02A97C7BD1092360284E69E
:1035E00090E00E94AE1680911301909114018052D8
:1035F000934010F4C0E0D0E0CA3FD105F8F4C7BD55
:1036000082E390E00E94AE1687E294E09F938F934E
:1036100089E692E19F938F93E0912704F09128042B
:10362000099580911301909114010F900F900F90C4
:103630000F908052934010F02196DECF6C2F83E0E4
:1036400090E00E94222EC093FF058091100680FF1B
:1036500009C08C2F8A508B3E28F0809140048064F2
:1036600080934004C7BD8CE291E00E94AE16DF91CA
:10367000CF910895EF92FF921F93CF9310E080EDCA
:1036800097E00E948C167C01CCE8133019F4CB3003
:1036900008F0C9E010E080914602909147028C5FEB
:1036A000934024F48091120181500AC08091460217
:1036B000909147028750944034F0809112018F5FBF
:1036C0008093120101C011E0809144029091450263
:1036D0008C5F934024F48091110181500AC0809145
:1036E0004402909145028750944034F0809111013A
:1036F0008F5F8093110101C01F5F80914202909102
:1037000043028C5F934024F48091100181500AC0E1
:10371000809142029091430287509440C4F080917E
:1037200010018F5F8093100113C089E294E09F9392
:103730008F9389E692E19F938F93E0912704F09114
:10374000280409950F900F900F900F905FC01F5F96
:1037500082E18093700280916B028E7F80936B0276
:1037600085EA8093BC00809112018A3040F48091F8
:1037700040048160809340048AE08093120180912C
:103780001201863F40F080914004816080934004A4
:1037900085EF80931201809111018A3040F480916D
:1037A00040048260809340048AE0809311018091FC
:1037B0001101863F40F08091400482608093400474
:1037C00085EF80931101809110018A3040F480913F
:1037D00040048460809340048AE0809310018091CB
:1037E0001001863F40F08091400484608093400443
:1037F00085EF8093100180917002882339F0C70112
:103800000E949516882309F090CFF5CF10920F01F2
:103810008FEC80937A0080910F018823E1F3CA3006
:1038200020F48AE090E00E94AE16C15009F02DCF3E
:1038300086E490E00E94AE16CF911F91FF90EF902A
:1038400008951F920F920FB60F921124AF92BF925C
:10385000CF92DF92EF92FF920F931F932F933F939C
:103860004F935F936F937F938F939F93AF93BF9388
:10387000EF93FF9380914F02282F3327442755273A
:103880008F5F80934F02F9012231310508F08CC31C
:10389000E25CFF4F0C941F7A809178009091790040
:1038A00046C080917800909179002CC18091780079
:1038B00090917900909352028093510257C1809168
:1038C0007803909179032091780030917900821BE0
:1038D000930B9093F0058093EF058091EF05909105
:1038E000F00590935C0280935B025EC1809178004A
:1038F0009091790020917A0330917B03821B930B86
:103900009093FE058093FD058091FD059091FE0545
:1039100090935E0280935D0249C38091550290911D
:1039200056022091780030917900820F931F909376
:1039300056028093550281E03AC3809153029091E0
:1039400054022091780030917900820F931F909358
:1039500054028093530284E02AC380911D01909108
:103960001E019C01220F331F280F391F8091780000
:103970009091790063E070E00E948479260F371FF0
:10398000369527953695279530931E0120931D0176
:1039900085E00DC380917800909179004091740387
:1039A00050917503841B950B90933D0280933C02CC
:1039B00080913C0290913D02029704F122E04E3E3C
:1039C000520784F4209150022B5F2093500225501F
:1039D0008091E8029091E902845F914018F4215FA0
:1039E0002093500280915002853684F14F5F5F4FE3
:1039F0005093750340937403845626C080913C0213
:103A000090913D028F5F9F4F0CF532E04732530794
:103A1000ECF0209150022550209350022B5F8091B2
:103A2000E8029091E902845F914018F42F502093AE
:103A30005002809150028C394CF4415050405093C8
:103A40007503409374038C598093500281E08093F6
:103A50003B0280917800909179009093F6058093D5
:103A6000F50580913C0290913D029C01442737FD71
:103A70004095542F80912F0390913003A0913103F2
:103A8000B0913203820F931FA41FB51F80932F03A1
:103A900090933003A0933103B093320320912F030E
:103AA00030913003409131035091320357FF04C0ED
:103AB00021503C4F4F4F5F4F0AE055954795379542
:103AC00027950A95D1F780912F0390913003A0910B
:103AD0003103B0913203821B930BA40BB50B80937F
:103AE0002F0390933003A0933103B09332032EC180
:103AF0008091530290915402209178003091790086
:103B0000820F931F909354028093530210924E029F
:103B100050C2809102018A3071F4809178009091B6
:103B200079002091510230915202820F931F019629
:103B30009695879517C04091510250915202843159
:103B400058F02091780030917900240F351F8FEFC5
:103B500097E0821B930B06C08091780090917900CA
:103B6000840F951F909343028093420286E01FC208
:103B700080917803909179032091780030917900B9
:103B8000821B930B9093F0058093EF058091EF05D6
:103B90009091F00520915B0230915C02820F931F9F
:103BA000909341028093400287E001C280917800A7
:103BB0009091790020917A0330917B03821B930BC3
:103BC0009093FE058093FD058091FD059091FE0583
:103BD00020915D0230915E02820F931F90933F020D
:103BE00080933E02E3C120915502309156028091AC
:103BF000780090917900280F391F30935602209356
:103C00005502809102018A3019F4220F331F04C03B
:103C1000220F331F220F331F309356022093550279
:103C20002091550230915602C90137FD0796A3E055
:103C300095958795AA95E1F7909347028093460260
:103C40008091570290915802820F931F97FD019621
:103C500095958795909358028093570220918403FD
:103C600030918503821B930B90931C0180931B0161
:103C700020914C0230914D0280911B0190911C01CA
:103C8000280F391F37FF02C02F5F3F4F359527950B
:103C900030934D0220934C024ECE2091530230912E
:103CA00054028091780090917900280F391F309349
:103CB000540220935302809102018A3019F4220F9A
:103CC000331F04C0220F331F220F331F30935402BF
:103CD000209353022091530230915402C90137FDC1
:103CE000079663E0959587956A95E1F7909345026D
:103CF000809344028091590290915A02820F931F3F
:103D000097FD01969595879590935A028093590255
:103D10002091820330918303821B930B90931A01AD
:103D20008093190120914A0230914B028091190130
:103D300090911A01280F391F37FF02C02F5F3F4FA4
:103D40003595279530934B0220934A0283E02FC18B
:103D500010924F0281E080930F0180913202909186
:103D6000330201969093330280933202809178005F
:103D70009091790090931401809313018091130125
:103D800090911401AA27BB27A0905F02B090600217
:103D9000C0906102D0906202A80EB91ECA1EDB1E3E
:103DA000A0925F02B0926002C0926102D092620261
:103DB000809163028F5F80936302823108F4F6C0C2
:103DC0008091150190911601A0911701B0911801F1
:103DD0007C018D0123E0EE0CFF1C001F111F2A95B2
:103DE000D1F7E81AF90A0A0B1B0BEA0CFB1C0C1D95
:103DF0001D1D80913602992787FD9095A92FB92F17
:103E0000BC01CD0126EC34E240E050E00E9459793B
:103E1000DC01CB01E81AF90A0A0B1B0BD801C70118
:103E20000496A11DB11DB7FF05C0D801C7010B96AF
:103E3000A11DB11D13E0B595A795979587951A9586
:103E4000D1F78093150190931601A0931701B093B9
:103E500018018091F7059091F8057C010027F7FC87
:103E60000095102F8091150190911601A0911701D6
:103E7000B0911801E81AF90A0A0B1B0BE0920D0326
:103E8000F0920E0300930F0310931003209137025A
:103E9000309138024091390250913A0257FF04C0E4
:103EA000215F3F4F4F4F5F4FF4E055954795379552
:103EB0002795FA95D1F78091370290913802A09119
:103EC0003902B0913A02821B930BA40BB50B80937D
:103ED000370290933802A0933902B0933A0280914E
:103EE000370290913802A0913902B0913A028E0DBA
:103EF0009F1DA01FB11F8093370290933802A0939B
:103F00003902B0933A028091340290913502AC01AB
:103F1000E5E0440F551FEA95E1F7481B590B8091E6
:103F2000370290913802A0913902B0913A02B7FF5E
:103F300003C00F96A11DB11D74E0B595A795979587
:103F400087957A95D1F720910D0330910E03281BA8
:103F5000390B63E0220F331F6A95E1F7240F351FF9
:103F600037FF02C0215E3F4F45E0359527954A95C2
:103F7000E1F73093350220933402D601C501D7FE14
:103F800003C00196A11DB11DB595A795979587957D
:103F900080935F0290936002A0936102B0936202EB
:103FA00089E08093630202C010924F0282E0809306
:103FB0004E0280914E0280937C0080914F028823B4
:103FC00019F08FEC80937A00FF91EF91BF91AF9140
:103FD0009F918F917F916F915F914F913F912F9121
:103FE0001F910F91FF90EF90DF90CF90BF90AF9017
:103FF0000F900FBE0F901F90189590E2E0E2F1E055
:104000008FE49193815087FFFCCF089590916602D1
:10401000E0E2F1E0E90FF11D80839F5F909366027B
:104020000895EF92FF920F931F93CF93DF93209108
:10403000640220FF0AC080916502882311F081503C
:1040400002C080911F018093650221FF0CC09091F6
:10405000650280911F01981719F41092650203C040
:104060009F5F90936502822F992780FF04C081FF94
:1040700002C0109265020E94FD1F80916502282FE8
:104080003327C6E0EC2EC0E2FC2EC0912704D0916D
:1040900028048A3098F481E1809366023F932F933D
:1040A00080E694E09F938F93FF92EF92FE01099533
:1040B0002DB73EB72A5F3F4F2DBF11C080E18093DF
:1040C00066023F932F9385E694E09F938F93FF9230
:1040D000EF92FE0109958DB79EB706968DBF209190
:1040E0006502822F9927AA27BB27FC01429710F06F
:1040F0000C94BE2AE05BFF4FB6E0EB2EB0E2FB2E45
:10410000C0912704D09128040C941F7A1092660263
:104110008AE694E09F938F9306E010E2FF92EF927D
:10412000FE01099584E1809366020F900F900F9035
:104130000F9084E690E09F938F9380E590E09F93AB
:104140008F931F921F92809102016AE00E947879FA
:10415000892F99279F938F93809102010E947879EC
:1041600099279F938F938AE794E09F938F93FF9271
:10417000EF92E0912704F0912804099588E280935A
:1041800066022DB73EB7225F3F4F2DBF85E796E011
:104190009F938F930E94852F99279F938F938FE8EA
:1041A00094E09F938F93FF92EF92E0912704F09118
:1041B000280409958DB79EB708968DBF909140044D
:1041C000992351F08CE380936602892F99279F935E
:1041D0008F938DE994E085C690916C02992371F0DC
:1041E0008CE380936602892F99279F938F9384EBAA
:1041F00094E09F938F931F930F9391C080914104FC
:1042000084FF07C08CE38093660289EC94E00C94F1
:10421000502A8091910190919201069710F00C9490
:10422000C72A8CE38093660286ED94E00C94502AB2
:1042300080911006A6E0EA2EA0E2FA2EC091270493
:10424000D091280480FF74C01092660280910D0303
:1042500090910E03A0910F03B0911003BC01CD010A
:1042600025E030E040E050E00E94CD793F932F936D
:1042700083EE94E09F938F93FF92EF92FE01099556
:1042800084E1809366022DB73EB72A5F3F4F2DBF72
:104290008091090390910A03A0910B03B0910C0344
:1042A000BC01CD0125E030E040E050E00E94CD7936
:1042B0003F932F9380EF94E09F938F93FF92EF9221
:1042C000E0912704F0912804099588E28093660222
:1042D0008DB79EB706968DBF809113019091140102
:1042E0009F938F938DEF94E09F938F93FF92EF9224
:1042F000E0912704F091280409958CE380936602ED
:104300002DB73EB72A5F3F4F2DBF87B599279F93A3
:104310008F938AE095E09F938F93FF92EF92E091C5
:104320002704F091280409958DB79EB706962FC7EC
:104330001092660287E195E09F938F93FF92EF9230
:10434000FE01099584E1809366020F900F900F9013
:104350000F9086E295E09F938F93FF92EF92E0910A
:104360002704F0912804099588E2809366020F9053
:104370000F900F900F908FE295E09F938F93FF9295
:10438000EF92E0912704F091280409958CE3809343
:1043900066020F900F900F900F908EE395E09F9321
:1043A0008F93FF92EF920C94542A1092660287E446
:1043B00095E09F938F9306E010E2FF92EF92FE014B
:1043C000099584E1809366020F900F900F900F90F3
:1043D00080916F0390917003A0917103B09172036B
:1043E000B7FF04C081509C4FAF4FBF4FFAE0B59567
:1043F000A79597958795FA95D1F7BF93AF939F931C
:104400008F9384E595E09F938F931F930F93E09193
:104410002704F0912804099588E2809366022DB75D
:104420003EB7285F3F4F2DBF80916703909168038F
:10443000A0916903B0916A03B7FF04C081509C4FFB
:10444000AF4FBF4FEAE0B595A79597958795EA9549
:10445000D1F7BF93AF939F938F9383E695E09F939C
:104460008F931F930F93E0912704F09128040995EF
:104470008CE3809366028DB79EB708968DBF8091BE
:104480002D0390912E039F938F9382E795E09F9346
:104490008F931F930F93E0912704F09128040995BF
:1044A0002DB73EB72A5F3F4F0DC71092660280912D
:1044B0002F07909130079F938F9380912D079091B4
:1044C0002E079F938F9381E895E09F938F93FF92A0
:1044D000EF92FE01099584E1809366028DB79EB745
:1044E00008968DBF80913307909134079F938F93E7
:1044F00080913107909132079F938F9381E995E0E6
:104500009F938F93FF92EF92E0912704F0912804FC
:10451000099588E2809366022DB73EB7285F3F4F2A
:104520002DBF80913707909138079F938F9380918B
:104530003507909136079F938F9381EA95E09F937B
:104540008F93FF92EF92E0912704F0912804099550
:104550008CE3809366028DB79EB708968DBF8091DD
:104560003B0790913C079F938F93809139079091DF
:104570003A079F938F9381EB95E0A2C01092660259
:1045800080910506E82FFF27EE0FFF1FE55DF84F2E
:10459000808191819F938F9380910406E82FFF275C
:1045A000EE0FFF1FE55DF84F808191819F938F9300
:1045B00081EC95E09F938F93FF92EF92FE01099516
:1045C00084E1809366028DB79EB708968DBF809177
:1045D0000706E82FFF27EE0FFF1FE55DF84F8081EC
:1045E00091819F938F9380910606E82FFF27EE0F0E
:1045F000FF1FE55DF84F8081918188589F4F9F9301
:104600008F9381ED95E09F938F93FF92EF92E091CE
:104610002704F0912804099588E2809366022DB75B
:104620003EB7285F3F4F2DBF80910906E82FFF2737
:10463000EE0FFF1FE55DF84F8081918182599F4FFA
:104640009F938F9380910806E82FFF27EE0FFF1F9F
:10465000E55DF84F8081918182599F4F9F938F93A1
:1046600081EE95E09F938F93FF92EF92E091270464
:10467000F091280409958CE3809366028DB79EB76C
:1046800008968DBF80910B06E82FFF27EE0FFF1FC6
:10469000E55DF84F8081918182599F4F9F938F9361
:1046A00080910A06E82FFF27EE0FFF1FE55DF84F08
:1046B0008081918182599F4F9F938F9381EF95E0E5
:1046C0009F938F93FF92EF92E0912704F09128043B
:1046D00009952DB73EB7285F3F4FF4C5109266028B
:1046E00081E096E09F938F9306E010E2FF92EF92B5
:1046F000FE010995809102010F900F900F900F908D
:104700008A3009F0A1C084E180936602809184031D
:10471000909185039C0197FF02C0295F3F4F287F3E
:10472000821B930B9F938F938091840390918503B9
:1047300097FD079673E0959587957A95E1F79F9396
:104740008F93209184033091850337FF02C0295F46
:104750003F4F63E0359527956A95E1F780914602D2
:1047600090914702821B930B9F938F938FE096E06B
:104770009F938F931F930F93E0912704F091280448
:10478000099588E2809366028DB79EB70A968DBF21
:1047900080918203909183039C0197FF02C0295F5F
:1047A0003F4F287F821B930B9F938F9380918203AF
:1047B0009091830397FD079653E0959587955A95B9
:1047C000E1F79F938F93209182033091830337FF0A
:1047D00002C0295F3F4F43E0359527954A95E1F7A1
:1047E0008091440290914502821B930B9F938F937B
:1047F00080E296E09F938F931F930F93E09127049D
:10480000F091280409958CE3809366022DB73EB79A
:10481000265F3F4F2DBF80918003909181039F932E
:104820008F93809180039091810320914202309177
:104830004302821B930B9F938F9381E396E09F9398
:104840008F931F930F93A3C38B3019F0843108F417
:10485000ADC084E1809366028091840390918503CA
:104860009C0197FF02C0215F3F4F207F821B930B6B
:1048700097FD0196959587959F938F9380918403DB
:104880009091850397FD0F9624E0959587952A953D
:10489000E1F79F938F93209184033091850337FF35
:1048A00002C0295F3F4F83E0359527958A95E1F750
:1048B0008091460290914702821B930B9F938F93A6
:1048C0008FE396E09F938F931F930F93E0912704BC
:1048D000F0912804099588E2809366022DB73EB7CF
:1048E000265F3F4F2DBF80918203909183039C01EF
:1048F00097FF02C0215F3F4F207F821B930B97FDE4
:104900000196959587959F938F93809182039091BF
:10491000830397FD0F96B4E095958795BA95E1F7D7
:104920009F938F93209182033091830337FF02C0BE
:10493000295F3F4FA3E035952795AA95E1F7809130
:10494000440290914502821B930B9F938F9381E5C4
:1049500096E09F938F931F930F93E0912704F0911C
:10496000280409958CE3809366028DB79EB70A965A
:104970008DBF809180039091810397FD019695955D
:1049800087959F938F9380918003909181032091CD
:10499000420230914302821B930B9F938F9383E6D5
:1049A00096E09F938F931F930F938ECE8D3009F0D7
:1049B000EEC584E1809366028091120199279F934E
:1049C0008F93809184039091850397FD0F96E4E087
:1049D00095958795EA95E1F79F938F9320918403AE
:1049E0003091850337FF02C0295F3F4F73E0359553
:1049F00027957A95E1F78091460290914702821BB4
:104A0000930B9F938F9382E796E09F938F931F93CF
:104A10000F93E0912704F0912804099588E2809390
:104A200066028DB79EB70A968DBF809111019927B6
:104A30009F938F93809182039091830397FD0F96AC
:104A400064E0959587956A95E1F79F938F93209100
:104A500082033091830337FF02C0295F3F4F53E049
:104A6000359527955A95E1F780914402909145023A
:104A7000821B930B9F938F9386E896E09F938F936F
:104A80001F930F93E0912704F091280409958CE37C
:104A9000809366022DB73EB7265F3F4F2DBF8091B2
:104AA000100199279F938F938091800390918103A8
:104AB00097FD0196959587959F938F93809180039D
:104AC000909181032091420230914302821B930B0B
:104AD0009F938F938AE996E09F938F931F930F93F1
:104AE000E0912704F091280409958DB79EB70A96A6
:104AF0004EC3109266028EEA96E09F938F93FF92C8
:104B0000EF92FE01099584E1809366020F900F9069
:104B10000F900F9080917A0390917B039F938F93D6
:104B200080913E0290913F029F938F938BEB96E092
:104B30009F938F93FF92EF92E0912704F0912804C6
:104B4000099588E2809366022DB73EB7285F3F4FF4
:104B50002DBF80917803909179039F938F938091DB
:104B60004002909141029F938F938AEC96E09F932D
:104B70008F93FF92EF92E0912704F091280409951A
:104B80008CE3809366028DB79EB708968DBF8091A7
:104B90007403909175039F938F9380913C02909141
:104BA0003D029F938F9389ED96E08ACD1092660225
:104BB00080911D0190911E016AE070E00E94987939
:104BC0009F938F9380911D0190911E016AE070E088
:104BD0000E9498797F936F9388EE96E09F938F93CE
:104BE000FF92EF92FE01099584E1809366028DB7F2
:104BF0009EB708968DBF80916808909169086AE019
:104C000070E00E9484799F938F93809168089091BF
:104C100069086AE070E00E9484797F936F938CEF5B
:104C200096E09F938F93FF92EF92E0912704F0918B
:104C30002804099588E2809366022DB73EB7285F65
:104C40003F4F2DBF80916A0890916B089F938F937F
:104C500080E197E09F938F93FF92EF92E09127047A
:104C6000F091280409958CE3809366028DB79EB776
:104C700006968DBF80916C0890916D089F938F93DD
:104C800080E297E02EC11092660282E397E09F9344
:104C90008F93FF92EF92FE01099584E18093660263
:104CA0000F900F900F900F9080912B0790912C07F1
:104CB0009F938F938BE397E09F938F93FF92EF9255
:104CC000E0912704F0912804099588E28093660218
:104CD0008DB79EB706968DBF80911B0399279F9332
:104CE0008F938BE497E09F938F93FF92EF92E091E5
:104CF0002704F091280409958CE3809366022DB770
:104D00003EB72A5F3F4F2DBF80912A079927019711
:104D10009F938F938BE597E0FECA109266028BE615
:104D200097E09F938F93FF92EF92FE01099584E1A4
:104D3000809366020F900F900F900F90809129033F
:104D400090912A039F938F9383E797E09F938F938C
:104D5000FF92EF92E0912704F0912804099588E2F0
:104D6000809366022DB73EB72A5F3F4F2DBF8091DB
:104D70002D0390912E039F938F9381E897E09F934B
:104D80008F93FF92EF92E0912704F0912804099508
:104D90008CE3809366028DB79EB706968DBF809197
:104DA0002B0390912C039F938F938FE897E099C0EA
:104DB0001092660280911C0399279F938F938DE92F
:104DC00097E09F938F93FF92EF92FE01099584E104
:104DD000809366028DB79EB706968DBF80911D03A6
:104DE00099279F938F9389EA97E09F938F93FF92E0
:104DF000EF92E0912704F0912804099588E28093CE
:104E000066022DB73EB72A5F3F4F2DBF80911E032C
:104E100099279F938F9385EB97E09F938F93FF92B2
:104E2000EF92E0912704F091280409958CE3809398
:104E300066028DB79EB706968DBF80911F03992796
:104E40009F938F9381EC97E04CC010926602809103
:104E5000200399279F938F938DEC97E09F938F93D7
:104E6000FF92EF92FE01099584E1809366028DB76F
:104E70009EB706968DBF8091210399279F938F93AC
:104E800089ED97E09F938F93FF92EF92E091270433
:104E9000F0912804099588E2809366022DB73EB709
:104EA0002A5F3F4F2DBF8091220399279F938F93B5
:104EB00085EE97E09F938F93FF92EF92E091270406
:104EC000F091280409958CE3809366028DB79EB714
:104ED00006968DBF8091230399279F938F9381EF2F
:104EE00097E09F938F93FF92EF92D5CA109266023C
:104EF0008DEF97E09F938F93FF92EF92FE010995BC
:104F000084E1809366020F900F900F900F90809134
:104F1000A10199279F938F9385E098E09F938F93AA
:104F2000FF92EF92E0912704F0912804099588E21E
:104F3000809366028DB79EB706968DBF80911D0245
:104F400090911E029F938F9383E198E09F938F939C
:104F5000FF92EF92E0912704F091280409958CE3E9
:104F6000809366022DB73EB72A5F3F4F2DBF8091D9
:104F7000330699279F938F938091320699279F93A9
:104F80008F9381E298E09F938F93FF92EF92E0914D
:104F90002704F091280409958DB79EB70896F7C0AD
:104FA000109266028FE298E09F938F93FF92EF92A8
:104FB000FE01099584E1809366020F900F900F9097
:104FC0000F9080916104992787FD90959F938F930F
:104FD00080916004992787FD90959F938F938FE32D
:104FE00098E09F938F93FF92EF92E0912704F091C6
:104FF0002804099588E2809366022DB73EB7285FA2
:105000003F4F2DBF80916204992787FD90959F9314
:105010008F938091630499279F938F938FE498E0F7
:105020009F938F93FF92EF92E0912704F0912804D1
:1050300009958CE3809366028DB79EB708968DBF65
:105040008091670499279F938F9380916404992797
:1050500087FD90959F938F938FE598E031CB1092C9
:1050600066028FE698E09F938F93FF92EF92FE0186
:10507000099584E1809366020F900F900F900F9036
:105080008091E50699278F7790709F938F938091F9
:10509000DD0699278F7790709F938F938091D50627
:1050A00099278F7790709F938F938091CD06992742
:1050B0008F7790709F938F938FE798E09F938F9354
:1050C000FF92EF92E0912704F0912804099588E27D
:1050D000809366028DB79EB70C968DBF80910507B1
:1050E00099278F7790709F938F938091FD069927D2
:1050F0008F7790709F938F938091F50699278F7784
:1051000090709F938F938091ED0699278F77907081
:105110009F938F9380E998E09F938F93FF92EF92F4
:10512000E0912704F091280409958CE380936602AE
:105130002DB73EB7245F3F4F2DBF8091250799279C
:105140008F7790709F938F9380911D0799278F770A
:1051500090709F938F938091150799278F77907008
:105160009F938F9380910D0799278F7790709F93CE
:105170008F9381EA98E09F938F93FF92EF92E09153
:105180002704F091280409958DB79EB70C968DBF22
:10519000FEC11092660282EB98E09F938F93FF927C
:1051A000EF92FE01099584E1809366020F900F90C3
:1051B0000F900F908091E906992787FD90959F9316
:1051C0008F938091E106992787FD90959F938F9308
:1051D0008091D906992787FD90959F938F93809111
:1051E000D106992787FD90959F938F9381EC98E046
:1051F0009F938F93FF92EF92E0912704F091280400
:10520000099588E2809366022DB73EB7245F3F4F31
:105210002DBF80910907992787FD90959F938F93C4
:1052200080910107992787FD90959F938F93809197
:10523000F906992787FD90959F938F938091F106AA
:10524000992787FD90959F938F9382ED98E09F9388
:105250008F93FF92EF92E0912704F0912804099533
:105260008CE3809366028DB79EB70C968DBF8091BC
:105270002907992787FD90959F938F938091210708
:10528000992787FD90959F938F9380911907992770
:1052900087FD90959F938F9380911107992787FDA4
:1052A00090959F938F9383EE98E09F938F93FF92B7
:1052B000EF92E0912704F091280409952DB73EB7AD
:1052C000245F3F4F2DBF63C11092660284EF98E0C8
:1052D0009F938F9306E010E2FF92EF92FE010995F3
:1052E00084E1809366020F900F900F900F90809151
:1052F000E506881F8827881F97E0899FC001112431
:105300008D969F938F938091DD06881F8827881F35
:1053100096E0899FC00111248D969F938F93809171
:10532000D506881F8827881F95E0899FC001112412
:105330008D969F938F938091CD06881F8827881F15
:105340009927880F991F880F991F8D969F938F9388
:1053500083E099E09F938F93FF92EF92E09127046F
:10536000F0912804099588E2809366028DB79EB774
:105370000C968DBF80910507881F8827881F9BE0AA
:10538000899FC00111248D969F938F938091FD0674
:10539000881F8827881F9AE0899FC00111248D9655
:1053A0009F938F938091F506881F8827881F99E027
:1053B000899FC00111248D969F938F938091ED0654
:1053C000881F8827881F992723E0880F991F2A950F
:1053D000E1F78D969F938F9387E199E09F938F9349
:1053E000FF92EF92E0912704F091280409958CE355
:1053F000809366022DB73EB7245F3F4F2DBF80914B
:105400000D07881F8827881F9CE0899FC0011124F1
:105410008D969F938F938BE299E09F938F93FF924A
:10542000EF92E0912704F0912804099580911507E7
:105430002DB73EB72A5F3F4F2DBF87FF12C080E4D4
:10544000809366028CE399E09F938F93FF92EF9293
:10545000E0912704F091280409950F900F900F9088
:105460000F9080911D0787FF12C084E4809366022D
:105470008FE399E09F938F931F930F93E0912704FD
:10548000F091280409950F900F900F900F90809144
:10549000250787FF7CC088E48093660282E499E058
:1054A0009F938F931F930F93E0912704F09128040B
:1054B00009950F900F900F900F9069C0109266029F
:1054C00085E499E09F938F93FF92EF92FE010995F7
:1054D00084E1809366020F900F900F900F9080915F
:1054E000F5019091F6019F938F9383E599E09F9347
:1054F0008F93FF92EF92E0912704F0912804099591
:1055000088E2809366028DB79EB706968DBF809124
:10551000F7019091F8019F938F9380E699E09F9314
:105520008F93FF92EF92E0912704F0912804099560
:1055300089E4809366022DB73EB72A5F3F4F2DBFA7
:105540008DE699E09F938F93FF92EF92E09127046D
:10555000F09128040995809164020F900F900F90AC
:105560000F9083FF14C01092F8011092F70160E0D1
:1055700070E08EE090E00E94332E09C080911F0100
:10558000281719F4215020931F01109265021092E0
:105590006402E6E0CDB7DEB70C94107AF999FECF3D
:1055A00092BD81BDF89A80B599270895F999FECFEB
:1055B0001FBA92BD81BD60BD0FB6F894FA9AF99AF0
:1055C0000FBE08954AEA20E030E02617370740F47E
:1055D000FC018191480F2F5F3F4F26173707C8F313
:1055E000842F99270895EAEA40E050E046175707CC
:1055F00078F49C01F999FECF32BD21BDF89A80B5AF
:10560000E80F4F5F5F4F2F5F3F4F4617570790F3ED
:105610008E2F9927089581E08093060682E080937B
:10562000050683E08093040684E08093070685E006
:105630008093080686E08093090687E080930A0637
:1056400088E080930B0689E080930C068AE08093C3
:105650000D068BE080930E068CE080930F06089574
:105660001F93CF93DF9384E580930306809102011B
:10567000843150F08AE080932306109245068BE136
:1056800080931F068EE40AC083E08093230680E2A5
:10569000809345068EE180931F0685E58093420640
:1056A000809343068AE68093100683E08093660623
:1056B000AEE1A09311068FEF80931306EFE0E09325
:1056C0001406A093120610921606F8E0F09317063F
:1056D00080E4809318061092190684E180931506E1
:1056E0008EE080931A06B0E1B0931B061CE0109385
:1056F0001C06F0931D0686EE80931E0680E88093BC
:10570000200650E55093210686E9809322065093A7
:1057100024068093250676E07093260681E2809326
:1057200027068DE2809328069AE59093290680E269
:1057300080932B0610922C0610922D0610922E06A6
:1057400010922F06109247061092480610924906B2
:1057500010924A0634E63093300648E24093310610
:1057600061E0609365061092320627EF20933306BE
:10577000709338068DE78093390680933A068093BC
:105780003B0630933406409335061092360620933C
:10579000370682E380933C0690933D0680933E0655
:1057A0001092640690933F06509340066093410622
:1057B000B0934406309346068FE580934B0683EF03
:1057C00080934D068AEA80934F0680935006E093BB
:1057D0004C06E0934E068EEF8093510630935206AE
:1057E0009093530690935406909355068BE48093C0
:1057F0005606809357068093580610925906709368
:105800005A06F0935B0690935C06A0935D06309376
:105810005E0630935F0682E08093600660932A06FE
:105820001092620610926306A7E6B6E0E0E7F1E0A8
:10583000ED01019009921A95E1F760E770E0CD0162
:10584000845690400E94E22A80937306DF91CF91A4
:105850001F910895CF93DF9384E580930306809191
:105860000201843150F08AE08093230610924506AD
:105870008BE180931F068EE40AC083E080932306A9
:1058800080E2809345068EE180931F0685E5809334
:105890004206809343068AE68093100683E0809355
:1058A00066067EE1709311068FEF809313069FE0EA
:1058B00090931406709312061092160668E0609397
:1058C000170680E480931806109219069093150627
:1058D0008AE080931A0680E180931B0656E050937D
:1058E0001C0660931D0686EE80931E0680E880935A
:1058F00020062AE52093210688E78093220620933C
:105900002406809325065093260681E2809327067D
:105910008DE28093280620932906E0E2E0932B068F
:1059200010922C0610922D0610922E0610922F0621
:1059300010924706109248061092490610924A06A5
:1059400044E64093300638E230933106F1E0F093BC
:1059500065061092320697EF9093330650933806FF
:105960008DE78093390680933A0680933B064093F7
:10597000340630933506109236069093370682E34C
:1059800080933C0620933D0680933E061092640669
:1059900020933F0680E5809340068CE38093410688
:1059A000E09344069BE4909346068FE580934B0674
:1059B00083EF80934D068AEA80934F0680935006CA
:1059C00084E180934C0680934E068EEF80935106BF
:1059D0004093520620935306209354062093550675
:1059E0009093560690935706909358061092590636
:1059F00050935A0660935B0620935C0670935D0695
:105A000040935E0640935F0682E080936006F093C9
:105A10002A061092620610926306A7E6B6E08CE0B2
:105A2000E7E7F1E0ED01019009928A95E1F760E77F
:105A300070E0CD01845690400E94E22A8093730664
:105A4000DF91CF910895CF93DF9384E58093030690
:105A500080910201843150F08AE0809323061092F5
:105A600045068BE180931F068EE40AC083E0809395
:105A7000230680E2809345068EE180931F0685E52C
:105A800080934206809343068AE68093100683E063
:105A9000809366066EE1609311068FEF8093130684
:105AA0009FE090931406609312061092160678E019
:105AB0007093170680E4809318061092190690934D
:105AC000150670931A0690E190931B0656E05093CA
:105AD0001C0670931D0686EE80931E0680E8809358
:105AE000200634E63093210688E78093220630931F
:105AF0002406809325065093260681E2809327068C
:105B00008DE2809328062AE52093290690932B06A0
:105B100010922C0610922D0610922E0610922F062F
:105B200010924706109248061092490610924A06B3
:105B30003093300648E240933106E1E0E093650699
:105B40001092320697EF90933306509338068DE704
:105B50008093390680933A0680933B06309334064F
:105B600040933506109236069093370682E3809371
:105B70003C0620933D0680933E06109264062093D7
:105B80003F0680E58093400696E49093410680E2CC
:105B900080934406909346068FE580934B0683EFEF
:105BA00080934D068AEA80934F0680935006609357
:105BB0004C0660934E068EEF80935106309352064A
:105BC0002093530620935406209355068BE480932C
:105BD00056068093570680935806109259065093A4
:105BE0005A0670935B0620935C0660935D063093C3
:105BF0005E0630935F0682E080936006E0932A069B
:105C00001092620610926306A7E6B6E08CE0EFE71A
:105C1000F1E0ED01019009928A95E1F760E770E00B
:105C2000CD01845690400E94E22A80937306DF9152
:105C3000CF910895F999FECF92BD81BDF89A80B5B4
:105C400099270895F999FECF1FBA92BD81BD60BD15
:105C50000FB6F894FA9AF99A0FBE08956EEC7AE2AC
:105C60000E94E777089546ED5AE20E942178089550
:105C7000EF92FF920F931F93CF93C82F81508530DF
:105C800008F0C3E081E7C89F8001112483EFE82E6C
:105C90008FEFF82EE00EF11E60E770E0C7010E9462
:105CA000F32A682F98012D593F4F8FB39927AC01E4
:105CB0004270507081FDF9CF32BD21BDF89A80B598
:105CC000861711F0CA0121C08FB399279C01227059
:105CD000307081FDF9CFF2BCE1BCF89A80B5843513
:105CE00011F0C90112C081E7C89FC00111240D97AE
:105CF0002EEC3AE241E750E0BC0183E096E00E94DE
:105D0000C2770E94116881E090E0CF911F910F91BE
:105D1000FF90EF900895282F863010F025E003C003
:105D2000882309F421E0F999FECF1FBA82E090E0C0
:105D300092BD81BD20BD0FB6F894FA9AF99A0FBEB4
:105D40000895CF93C82F80910306843509F042C08F
:105D5000C63010F0C5E003C0CC2309F43BC060E7B7
:105D600070E083E096E00E94E22A8093730681E768
:105D7000C89FC001112426ED3AE241E750E063E0FC
:105D800076E00D970E94FF7726ED3AE24CE050E076
:105D900064E076E080E590E00E94FF776CE070E0E0
:105DA00084E096E00E94E22A282FF999FECF1FBADC
:105DB0008CE590E092BD81BD20BD0FB6F894FA9AB3
:105DC000F99A0FBE8C2F0E948B2E0E94116881E0E1
:105DD00090E002C080E090E0CF9108956DE470E023
:105DE00088EE93E00E94F32A482F8FB399279C01F5
:105DF0002270307081FDF9CF85E394E092BD81BDC2
:105E0000F89A80B5841779F48FB399279C01227092
:105E1000307081FDF9CF88EE93E092BD81BDF89A94
:105E200080B5813011F0C90108952EEC3AE24EE4BC
:105E300050E068EE73E084E796E00E94C27781E06C
:105E400090E00895809174068130A9F46DE470E0CB
:105E500084E796E00E94E22A8093C10626ED3AE2AA
:105E60004EE450E064E776E088EE93E00E94FF772E
:105E700081E090E0089580E090E00895CF93DF9373
:105E800081E080937406E4E7F6E08FE015861686DD
:105E90001786108A8150349687FFF8CF80E480936C
:105EA00081068093820610928306809384068093F5
:105EB000850690EC9093860610928706809388065C
:105EC0008093890610928A0690938B0690938C0695
:105ED00080938D0610928E0680938F069093900685
:105EE000A5E7B6E087E0E9E8F1E0ED01019009926D
:105EF0008A95E1F76DE470E0CD0101970E94E22AF6
:105F00008093C106DF91CF910895F999FECF82E089
:105F100090E092BD81BDF89A80B5282F863078F048
:105F200023E0322FF999FECF1FBA82E090E092BDB4
:105F300081BD30BD0FB6F894FA9AF99A0FBE822F40
:105F400099270895DF92EF92FF920F931F93CF93BB
:105F5000FF24DF2CEF2C81E090E00E941A2E843584
:105F600039F031E0E32E64E581E090E00E94222EDA
:105F70006CE070E080E590E00E94F32AC82FF99968
:105F8000FECF8CE590E092BD81BDF89A80B58C176C
:105F900011F421E0D22EC1E001E010E0EE2029F45E
:105FA0008C2F0E94382E8823C1F591E0F92E1F9383
:105FB0000F9385E799E09F938F9389E692E19F93F2
:105FC0008F93E0912704F091280409958DB79EB72F
:105FD00006968DBF0230110549F0033011054CF4CF
:105FE0000130110531F40E94302B05C00E942A2C8B
:105FF00002C00E94232DDD2059F02EEC3AE24CE045
:1060000050E060E570E084E096E00E94C27702C054
:106010000E940B2B8C2F0E94A12ECF5F0F5F1F4F72
:10602000C63008F4BBCFFF2019F083E00E948B2E0E
:106030000E94852FC82F0E94382E8C2F99279F935E
:106040008F938BE999E09F938F9309E612E11F9359
:106050000F93E0912704F091280409958DB79EB71E
:1060600006968DBFEE2021F40E94EE2E882399F42F
:1060700084EB99E09F938F931F930F93E0912704F4
:10608000F091280409950E943E2F0E94222F0F9024
:106090000F900F900F901092020690E0E1E8F6E06A
:1060A000CFE08081349618160CF49F5FC150C7FF73
:1060B000F8CF90930206892F99279F938F9385E7B6
:1060C00096E09F938F9385ED99E09F938F931F9315
:1060D0000F93E0912704F091280409958DB79EB79E
:1060E00008968DBF86EF99E09F938F931F930F9330
:1060F000E0912704F091280409950F900F900F90DC
:106100000F90CF911F910F91FF90EF90DF90089526
:106110009FB7F8943998389A88B1836088B980918C
:10612000B9008C7F8093B9008AE28093B800109206
:10613000700210926E0210926D02EAECF6E08BE0B3
:1061400010821182128213821482158216821782A3
:106150008150389687FFF4CF9FBF08951092700248
:1061600084E98093BC0010926E0210926D0280E868
:106170008093BC001092BD001092BA001092BB0038
:106180001092B9001092B8000E9488301092BB00A3
:1061900085E88093BC0080916B02826080936B02E3
:1061A00008951F920F920FB60F9211242F933F93D1
:1061B0004F935F938F939F93EF93FF938091700220
:1061C000282F3327442755278F5F80937002F901CA
:1061D0002731310508F0B3C2EE59FF4F0C941F7AF6
:1061E00080916E028C3090F480916E028F5F80936C
:1061F0006E0280916E02E82FFF27EE0FFF1FEE0F59
:10620000FF1FEC58F94F8585181654F780916E02E0
:106210008C3070F010926A021092690210926E0235
:1062200085E08093700280916D02880F8D5A04C0C2
:1062300080916E02880F8E5A8093BB0085E874C2ED
:1062400080916E02E82FFF2783E0EE0FFF1F8A95F3
:10625000E1F7E653F94F81818093BB0085E8809395
:10626000BC0080916E02E82FFF27EE0FFF1FEE0F9C
:10627000FF1FEE0FFF1FE653F94F808180FF91C093
:1062800080916E02E82FFF27EE0FFF1FEE0FFF1F1A
:10629000EE0FFF1FE653F94F8281882329F080918A
:1062A0000206873008F45FC28091690290916A0209
:1062B000892B09F058C28091670290916802892B5E
:1062C00009F051C26EC080916E0221E030E002C040
:1062D000220F331F8A95E2F780916702909168023E
:1062E00028233923232B79F080916E02E82FFF2792
:1062F000EE0FFF1FEE0FFF1FEE0FFF1FE653F94FCC
:1063000080E184830DC080916E02E82FFF27EE0F9D
:10631000FF1FEE0FFF1FEE0FFF1FE653F94F148212
:1063200080916E02E82FFF2753E0EE0FFF1F5A9572
:10633000E1F7E653F94F8481282F332743E0220FFA
:10634000331F4A95E1F780916E02E82FFF2793E013
:10635000EE0FFF1F9A95E1F7E653F94F82818770A0
:10636000822B8093BB0085E88093BC0020916E0255
:1063700081E090E002C0880F991F2A95E2F72091F2
:10638000690230916A0282239323892B51F082ECB7
:1063900096E0909374028093730288E08093750274
:1063A000E2C184E080C1E0917302F09174028191B6
:1063B0008093BB0085E88093BC00F0937402E09367
:1063C000730280917502815080937502882309F4CD
:1063D000CAC183E068C18091B900803351F58091D2
:1063E0007102882329F480916E028F5F809371027D
:1063F00080916E02E82FFF2783E0EE0FFF1F8A9542
:10640000E1F7E653F94F838199278F7790708F37A3
:1064100091057CF480916E02E82FFF27EE0FFF1F9D
:10642000EE0FFF1FEE0FFF1FE653F94F83818F5FC3
:1064300083831092700284E98093BC008AE090E02C
:10644000909392018093910180916E028F5F80936F
:106450006E021092700262C18091B9008034A9F17D
:1064600080916D02E82FFF27EE0FFF1FEE0FFF1F39
:10647000EE0FFF1FE653F94F83818F77838380915F
:106480006D028F5F80936D0280916D028C30A0F061
:1064900010926D021092680210926702809172024F
:1064A0008F5F809372028C3038F01092720280916C
:1064B0006B028D7F80936B0280916B028160809371
:1064C0006B021092700284E971C080916D02E82F16
:1064D000FF27EE0FFF1FEE0FFF1FEE0FFF1FE6530C
:1064E000F94F83818068838380916D02E82FFF27B5
:1064F000EE0FFF1FEE0FFF1FEE0FFF1FE653F94FCA
:10650000808180FF2FC080916D02E82FFF2753E02C
:10651000EE0FFF1F5A95E1F7E653F94F8481992753
:10652000009751F04097D9F582EC96E09093740271
:106530008093730288E031C080916D02992743E017
:10654000880F991F4A95E1F78153994F90937402F0
:106550008093730290916D02809172029817E1F41A
:1065600083E01BC080916D02992733E0880F991F4B
:106570003A95E1F78153994F909374028093730297
:1065800080916B0281FD06C090916D028091720234
:10659000981711F482E001C081E080937502809128
:1065A0007502813011F485E801C085EC8093BC0050
:1065B0008091710280936C0210927102D4C0E091BC
:1065C0007302F09174028091BB008083809173020A
:1065D000909174020196909374028093730280915B
:1065E0007502815080937502823010F085EC58C09E
:1065F000813011F485E854C080916B0281FF2DC079
:106600008091E70280FD1DC080916D02E82FFF2779
:1066100023E0EE0FFF1F2A95E1F7E653F94F86813D
:106620008A3F79F480916D02E82FFF2793E0EE0F07
:10663000FF1F9A95E1F7E653F94F808181608083CF
:106640000CC080916D02E82FFF2783E0EE0FFF1F43
:106650008A95E1F7E653F94F108280916D028F5FC2
:1066600080936D0280916D028C30A0F010926D02CB
:106670001092680210926702809172028F5F80937D
:1066800072028C3038F01092720280916B028D7F12
:1066900080936B021092700284E98093BC0049C021
:1066A0008093BC0086E0809370025DC088E9C4CD11
:1066B00080916F02880F805FBFCD80916F02992714
:1066C0008130910561F0823091051CF4892B21F015
:1066D0004AC0029739F047C080911201ADCD809138
:1066E0001101AACD80911001A7CD80E8A5CD10920F
:1066F000700284E98093BC008AE090E0909392015C
:106700008093910180916F02823088F480916F02B2
:106710008F5F80936F0282E18093700280916B02A1
:106720008E7F80936B0285EA8093BC001CC0109220
:106730006F0280916B02816080936B0214C0109293
:10674000700284E98093BC0080916B028160809329
:106750006B028AE090E090939201809391011092F5
:106760006E0210926D02FF91EF919F918F915F9158
:106770004F913F912F910F900FBE0F901F90189542
:106780001F93CF93DF93182F80911203882321F456
:1067900080910202882319F081E090E097C01D30BB
:1067A00008F092C01123B1F0E12FFF2723E0EE0F94
:1067B000FF1F2A95E1F7E653F94F3597808135960B
:1067C00088230CF081C03897808180FD03C083E06E
:1067D00090E07CC08091C206823019F084E090E0A5
:1067E00075C067E070E082EC96E00E94E22A90912A
:1067F000C906891719F085E090E068C080ED97E040
:106800000E948C16EC0180916B0280FD05C0CE01C8
:106810000E9495168823B9F3112319F48FEF90E0A5
:106820000BC0212F33272150304081E090E002C07F
:10683000880F991F2A95E2F790936A028093690264
:10684000A1E0B0E0EAECF6E040E050E06BE0CD0122
:10685000042E02C0880F991F0A94E2F72091690262
:1068600030916A0282239323892B11F011821282C4
:1068700061504F5F5F4F389667FFE9CF10926E020D
:106880001092700280916B028E7F80936B0285EA7A
:106890008093BC0080916B0280FD05C0CE010E94F8
:1068A00095168823B9F38091690290916A02892B29
:1068B00029F0CE010E949516882311F38091690278
:1068C00090916A02009711F082E090E0DF91CF9101
:1068D0001F9108950F931F93CF93DF93982F80916B
:1068E0001203882321F480910202882319F081E0A9
:1068F00090E092C09D30A0F4992319F486E090E0D6
:106900008BC0C92FDD27FE0133E0EE0FFF1F3A9544
:10691000E1F7E653F94F35978081359687FD03C03F
:1069200082E090E079C03897808180FD03C083E0E9
:1069300090E072C080ED97E00E948C168C018091EF
:106940006B0280FD05C0C8010E9495168823B9F32B
:10695000219721E030E0C90102C0880F991FCA9534
:10696000E2F79093680280936702D901EAECF6E0BF
:1069700040E050E06BE0CD01042E02C0880F991F6B
:106980000A94E2F7209167023091680282239323F0
:10699000892B11F01182128261504F5F5F4F389640
:1069A00067FFE9CF10926D021092C2061092C906DD
:1069B0001092700280916B028E7F80936B0285EA49
:1069C0008093BC0080916B0280FD05C0C8010E94CD
:1069D00095168823B9F38091670290916802892BFC
:1069E00029F0C8010E949516882311F38091C206F0
:1069F000823019F084E090E00FC067E070E082EC34
:106A000096E00E94E22A9091C906891719F085E064
:106A100090E002C080E090E0DF91CF911F910F9154
:106A2000089589E1AFE5B7E0EBE2F7E0118210826B
:106A3000329611961C921E921296815087FFF6CFC5
:106A400010928103109280031092830310928203AC
:106A5000109285031092840308951F920F920FB62F
:106A60000F9211240F931F932F933F934F935F9394
:106A70006F937F938F939F93AF93BF93CF93DF9346
:106A8000EF93FF938091660682FDCFC04091860010
:106A9000509187008091770290917802481B590BA2
:106AA000809186009091870090937802809377027E
:106AB000CA018D549440A0917902B0917A02835F0B
:106AC0009A4178F48091790280932A07149714F000
:106AD0001092930181E090E090937A028093790282
:106AE00007C2AD30B1050CF003C2CA018B5F904004
:106AF000845B914008F074C0425D5140FD01EA0F93
:106B0000FB1FE55DF84F80819181FA01E81BF90BCD
:106B1000CF01F7FF03C0909581959F4F06975CF4D6
:106B200080911B03883C20F480911B03865F01C089
:106B300088EC80931B03FD01EA0FFB1FE55DF84F16
:106B4000808191819C01220F331F280F391F240F50
:106B5000351F37FF02C02D5F3F4FE901D595C7951F
:106B6000D595C795CA0101968C179D0714F42197F6
:106B700006C041505040C417D5070CF421968091AF
:106B80001B03833CE0F08D010A0F1B1FF801E55D3C
:106B9000F84F808191819E01281B390BC90163E068
:106BA00070E00E949879CB01880F991F860F971F7C
:106BB000015A184FD80111969C938E9307C0AA0FC3
:106BC000BB1FA15AB84F11961C921E92E0917902F8
:106BD000F0917A02EE0FFF1FE55DF84FD183C0837D
:106BE0002091790230917A022F5F3F4F30937A02E1
:106BF0002093790280910201843108F079C1253017
:106C0000310511F45D9A01C05D98809179029091EF
:106C10007A028630910511F45C9A01C05C9807975E
:106C200011F45B9A65C15B9863C1409186005091F5
:106C3000870080917B0290917C02481B590B8091C8
:106C400086009091870090937C0280937B02CA011A
:106C50008D5494406091E502835F9A4108F07AC0B8
:106C60006093760280917602843008F453C090914C
:106C70002A0780917602981709F04CC05091E602DD
:106C80005B3008F43FC0109293011092E50240E09F
:106C90005F31C0F0E42FFF27EE0FFF1F9F012F543D
:106CA0003D4FDF01A55DB84F8D919C91D9018D932A
:106CB0009C93DF01A15AB84F8D919C91E553FD4FF4
:106CC00091838083E42FFF27EE0FFF1F9F01255D37
:106CD000384FDF01A358BD4F8D919C91D90111967A
:106CE0009C938E93DF01A956BD4F8D919C91E15AE3
:106CF000F84F91838083842F8F5F482F8D3040F22F
:106D00008093E5028091E6028F3FB9F08F5F809318
:106D1000E60213C08091E602853620F08AE0809377
:106D2000E60202C01092E602809102018A3011F060
:106D3000843110F0289A01C0289881E08093E50200
:106D400080911203882309F0D3C08091760280934A
:106D50002A07CEC06D3008F0A3C0CA018B5F9040F7
:106D6000845B914008F07EC0425D5140E62FFF27D2
:106D7000EE0FFF1FE358FD4F80819181FA01E81B60
:106D8000F90BCF0105960B97B0F48091E6028A319A
:106D900020F080911B03865F05C08B3028F0809126
:106DA0001B038E5F80931B0380911B03893C18F0AB
:106DB00088EC80931B03E62FFF27EE0FFF1FE3589D
:106DC000FD4F808191819C01220F331F280F391FB5
:106DD000240F351F37FF02C02D5F3F4FE901D595C6
:106DE000C795D595C795CA0101968C179D0714F4D0
:106DF000219706C041505040C417D5070CF4219686
:106E000080911B038E3BD8F0E62FFF27EE0FFF1F6C
:106E1000DF01A358BD4F8D919C919E01281B390B1A
:106E2000C90163E070E00E949879CB01880F991F37
:106E3000860F971FE956FD4F9183808308C0E62F88
:106E4000FF27EE0FFF1FE956FD4F11821082809140
:106E5000E502E82FFF27EE0FFF1FE358FD4FD18318
:106E6000C08309C0809102018A3011F0843110F092
:106E7000289A01C0289880910201843188F4809179
:106E8000E502853011F45D9A05C05D98863011F4F5
:106E90005C9A05C05C98873011F45B9A01C05B98DE
:106EA0008091E502843120F48F5F8093E50220C059
:106EB0008431F1F4809102018A3011F0843110F0B4
:106EC000289A01C028988EE18093E5022CE0CFE556
:106ED000D7E0A1EBB2E0EBE2F7E08D919D919183D9
:106EE00080833296198218822296215027FFF5CF8F
:106EF000FF91EF91DF91CF91BF91AF919F918F91D2
:106F00007F916F915F914F913F912F911F910F91C1
:106F10000F900FBE0F901F901895EF92FF920F9356
:106F20001F9380911F069927880F991F880F991F1B
:106F30007C010027F7FC0095102F80916F03909142
:106F40007003A0917103B0917203BC01CD01A8013F
:106F500097010E94CD793093AF052093AE058091C3
:106F6000670390916803A0916903B0916A03BC0123
:106F7000CD01A80197010E94CD793093B1052093EE
:106F8000B0058091E5079091E60797FD03969595EA
:106F90008795959587959093B3058093B2058091D9
:106FA000F5079091F60797FD03969595879595952A
:106FB00087959093B5058093B40580918003909157
:106FC00081032091420230914302821B930B9093E4
:106FD000B7058093B60580910D0390910E03A091A3
:106FE0000F03B0911003BC01CD0125E030E040E07B
:106FF00050E00E94CD793093B9052093B805809177
:107000003C0290913D029093BB058093BA0580911C
:107010002D0390912E039093BF058093BE05809120
:107020001D0190911E019093C1058093C005809130
:107030001B0399279093C3058093C2058091F107A4
:107040009091F207A091F307B091F4072091950178
:10705000309196014091970150919801BC01CD016A
:107060000E94CD793093C5052093C4058091CB064D
:1070700099279093C7058093C6058091D3069927D9
:107080009093C9058093C8058091DB06992790935A
:10709000CB058093CA058091E30699279093CD058F
:1070A0008093CC0580911D0290911E029093D7058C
:1070B0008093D60580916808909169089093DB05CC
:1070C0008093DA0580916C0890916D089093DD05AE
:1070D0008093DC0580916E0899279093E905809351
:1070E000E8058091F8039091F9039093EB05809364
:1070F000EA058091F6039091F7039093ED05809354
:10710000EC0580914004882321F480914104882378
:1071100021F08091AD05816003C08091AD058E7F27
:107120008093AD051F910F91FF90EF9008951F93ED
:10713000CF93DF93182FEB01809112038823A1F4E2
:1071400011501F3F89F0D0932202C09321028091F9
:10715000210290912202892BD1F7CE018C0F9D1F25
:107160000E94A116115078F7DF91CF911F910895D9
:10717000CF93DF93809102018D3011F40E943A1B6E
:1071800010927A0080914602909147029093AC074A
:107190008093AB07809144029091450290939D07A4
:1071A00080939C0780914202909143029093EB0759
:1071B0008093EA0720913E0230913F02C901880F77
:1071C000991F880F991F820F931F820F931F90930F
:1071D000E6078093E5072091400230914102C90102
:1071E000880F991F880F991F820F931F820F931F7B
:1071F0009093F6078093F5078FEC80937A00ACE1CB
:10720000B3E0C8E0D6E097E08991E82FFF27EE0FC2
:10721000FF1FE55DF84F0190F081E02DE259FF4F2F
:107220001E161F061CF0E0E0F0E005C0EF3FF10580
:1072300014F0EFEFF0E08C91282F3327E217F307DB
:1072400014F4815004C02E173F0714F48F5F8C9301
:107250009150119697FFD8CF809142069927AA277F
:10726000BB27BC01CD0124EC39E040E050E00E9496
:107270005979DC01CB018093B5019093B601A093BD
:10728000B701B093B801809143069927AA27BB277D
:10729000BC01CD010E945979DC01CB018093B10181
:1072A0009093B201A093B301B093B401DF91CF9159
:1072B0000895A0E0B0E0EFE5F9E30C94EE79882EB4
:1072C000C0E0D0E07E016E0110924004469AD09357
:1072D0007B03C0937A03D0937903C0937803D09350
:1072E0007503C0937403D0938503C0938403D09334
:1072F0008303C0938203D0938103C09380031092D1
:107300009E0110929D01109236020E94B83884E6C8
:1073100090E00E94AE160E94B8388091100680FF5F
:1073200010C08091130190911401875B934038F451
:1073300080911301909114018E5E924010F40E948E
:10734000E01A0FE18AE090E00E94AE1680914202BE
:1073500090914302C80FD91F809146029091470235
:10736000E80EF91E8091440290914502C80ED91E84
:10737000015007FFE7CF9701205F3F4F36952795D4
:10738000369527953093850320938403C601409654
:10739000969587959695879590938303809382031E
:1073A0006096F5E0D695C795FA95E1F7D0938103FD
:1073B000C093800390937F0380937E0330937D037B
:1073C00020937C03882009F441C08091E5079091C7
:1073D000E60797FF03C0909581959F4F6CE070E0A2
:1073E0000E9498799B0170937B0360937A0380914C
:1073F000F5079091F60797FF03C0909581959F4FF1
:107400006CE070E00E949879709379036093780340
:107410008091F5059091F605909375038093740320
:10742000B90184E090E00E94332E6091780370915E
:10743000790386E090E00E94332E6091740370918E
:10744000750388E090E00E94332E65C084E090E0F0
:107450000E942E2E90937B0380937A0386E090E027
:107460000E942E2E909379038093780388E090E019
:107470000E942E2E9C01909375038093740380913B
:107480007A0390917B038150984050F48091780367
:10749000909179038150984018F421503440D8F1EC
:1074A00087E19AE09F938F9389E692E19F938F9370
:1074B000E0912704F091280409958091E5079091C7
:1074C000E60797FF03C0909581959F4F6CE070E0B1
:1074D0000E94987970937B0360937A038091F507FB
:1074E0009091F60797FF03C0909581959F4F6CE0B0
:1074F00070E00E949879709379036093780380918B
:10750000F5059091F60590937503809374030F90A1
:107510000F900F900F901092AC071092AB07109243
:107520009D0710929C071092EB071092EA0784E6E1
:1075300090E00E94AE1680913E0290913F029C0125
:10754000220F331F220F331F280F391F280F391F17
:107550003093E6072093E507809140029091410225
:107560008C01000F111F000F111F080F191F080FAA
:10757000191F1093F6070093F50780911F06C82E78
:10758000DD24EE24FF24442737FD4095542FC70106
:10759000B6010E9459794B015C0160936F037093AF
:1075A000700380937103909372039801442737FD11
:1075B0004095542FC701B6010E945979DC01CB01D7
:1075C0008093670390936803A0936903B0936A0361
:1075D00080924B0390924C03A0924D03B0924E03C5
:1075E0008093430390934403A0934503B0934603D1
:1075F00010923F03109240031092410310924203F5
:107600008091150190911601A0911701B091180178
:107610009093F8058093F70510923502109234028A
:1076200010922F0310923003109231031092320304
:1076300080912D0390912E0390932C0380932B0324
:107640000E94A86382E390E090932202809321023B
:10765000809142069927AA27BB27BC01CD0124ECC3
:1076600039E040E050E00E945979DC01CB018856B6
:10767000954CAF4FBF4F8093B5019093B601A09347
:10768000B701B093B801809143069927AA27BB2779
:10769000BC01CD010E945979DC01CB018856954C83
:1076A000AF4FBF4F8093B1019093B201A093B3014C
:1076B000B093B40110929A011092990180912D0318
:1076C00090912E03AA2797FDA095BA2F209195019E
:1076D000309196014091970150919801BC01CD01E4
:1076E0000E945979DC01CB018093F1079093F20756
:1076F000A093F307B093F40710922603109225038A
:1077000081E0809301010E9411688091E70284600A
:107710008093E7028FEF809363081092640880E201
:1077200080936508CCE1D3E0A8E0B6E007E08D9156
:10773000E82FFF27EE0FFF1FE55DF84F8081918155
:1077400082598993015007FFF2CF84E680931B038F
:1077500080911F02882311F0469A579A80918403E2
:107760009091850380569940815C9B4228F08091DE
:107770004004816080934004809182039091830350
:1077800080569940815C9B4228F080914004826041
:107790008093400480918003909181038C529140AA
:1077A0008957954028F0809140048460809340047C
:1077B00080917A0390917B038C529140835C91403D
:1077C00028F0809140048860809340048091780381
:1077D000909179038C529140835C914028F0809184
:1077E00040048061809340048091740390917503FC
:1077F000805092408355914028F0809140048062EF
:1078000080934004ECE0CDB7DEB70C940A7AA3E194
:10781000B0E0EDE0FCE30C94E87980918003909176
:1078200081032091420230914302821B930B90937B
:10783000EB078093EA0780914C0290914D0297FDEF
:1078400007969C0153E0359527955A95E1F73093BB
:10785000AC072093AB0780914A0290914B0297FDB1
:10786000079643E0959587954A95E1F790939D0794
:1078700080939C073093B7072093B6079093AF0788
:107880008093AE078091E5079091E607AC01440F25
:10789000551F480F591F20913E0230913F02C901E8
:1078A000880F991F880F991F820F931F820F931FB4
:1078B000480F591F57FF02C04D5F5F4F55954795C1
:1078C000559547955093E6074093E5078091F50756
:1078D0009091F607AC01440F551F480F591F209196
:1078E000400230914102C901880F991F880F991FEA
:1078F000820F931F820F931F480F591F57FF02C01B
:107900004D5F5F4F55954795559547955093F607B1
:107910004093F50720913E0230913F02C901880F44
:10792000991F880F991F820F931F820F931F9C012D
:10793000442737FD4095542F80915F039091600359
:10794000A0916103B0916203820F931FA41FB51F22
:1079500080935F0390936003A0936103B0936203ED
:107960002091400230914102C901880F991F880F70
:10797000991F820F931F820F931F9C01442737FD8D
:107980004095542F80915B0390915C03A0915D031F
:10799000B0915E03820F931FA41FB51F80935B03FA
:1079A00090935C03A0935D03B0935E038091C00746
:1079B0009091C10720913E0230913F02820F931FA8
:1079C0009093C1078093C0078091ED079091EE07D7
:1079D0002091400230914102820F931F9093EE0755
:1079E0008093ED07809176039091770301969093B1
:1079F0007703809376038091F5059091F6052091A9
:107A0000740330917503821B930B9C01442737FD4F
:107A10004095542F8091570390915803A09159039A
:107A2000B0915A03820F931FA41FB51F8093570371
:107A300090935803A0935903B0935A038FEC80930B
:107A40007A0010920F012091470330914803409132
:107A5000490350914A0329873A874B875C87295409
:107A60003B46414050402CF028E43BE641E050E0EA
:107A70000DC089859A85AB85BC85885B9449AE4FDE
:107A8000BF4F4CF428EB34E94EEF5FEF2D833E837C
:107A90004F83588708C089859A85AB85BC858D83BF
:107AA0009E83AF83B88720914F033091500340915C
:107AB0005103509152032D873E874F87588B29548D
:107AC0003B46414050402CF028E43BE641E050E08A
:107AD0000DC08D859E85AF85B889885B9449AE4F72
:107AE000BF4F4CF428EB34E94EEF5FEF29833A8324
:107AF0004B835C8308C08D859E85AF85B88989835B
:107B00009A83AB83BC83A091EA07B091EB07BB8B50
:107B1000AA8BFD01CF01AA2797FDA095BA2FA090AF
:107B20003F03B0904003C0904103D0904203A80EA1
:107B3000B91ECA1EDB1EA0923F03B0924003C09242
:107B40004103D0924203E090F107F090F2070091D8
:107B5000F3071091F407E80EF91E0A1F1B1FE092AD
:107B6000F107F092F2070093F3071093F407F091F6
:107B70000203F98BFF2309F098C180910103882348
:107B800009F093C18091100686FF8FC180919C07F8
:107B900090919D07AA2797FDA095BA2FBC01CD0112
:107BA00029813A814B815C810E9459799B01AC010A
:107BB00097FF04C02150384F4F4F5F4F6BE05595F2
:107BC0004795379527956A95D1F780919D01682E45
:107BD000772488249924CA01B901A40193010E9441
:107BE0005979DC01CB018093900390939103A0938A
:107BF0009203B0939303B7FF04C08150904FAF4FEF
:107C0000BF4F1C012D013CE05594479437942794B5
:107C10003A95D1F7209290033092910340929203CB
:107C2000509293038091AB079091AC07AA2797FDE0
:107C3000A095BA2FBC01CD012D813E814F81588581
:107C40000E94597997FF04C06150784F8F4F9F4F22
:107C50002BE095958795779567952A95D1F7A4019F
:107C600093010E945979DC01CB0180939403909396
:107C70009503A0939603B0939703B7FF04C0815078
:107C8000904FAF4FBF4F9C01AD018CE0559547958C
:107C9000379527958A95D1F72093940330939503D0
:107CA0004093960350939703809190039091910392
:107CB00090939407809393078091940390919503F8
:107CC000909398078093970722193309440955091F
:107CD0002093940330939503409396035093970316
:107CE000E20EF31E041F151FE092F107F092F20757
:107CF0000093F3071093F40780919C018823B1F45B
:107D000057FF04C02F5F3F4F4F4F5F4F559547952B
:107D100037952795A21AB30AC40AD50AA0923F0341
:107D2000B0924003C0924103D09242032A893B891A
:107D300079010027F7FC0095102F80919403909112
:107D40009503A0919603B0919703E80EF91E0A1FC0
:107D50001B1FC801B70129813A814B815C810E94B8
:107D600059799B01AC0197FF04C02150384F4F4F08
:107D70005F4FBBE05595479537952795BA95D1F755
:107D800080919E01A82EBB24CC24DD24CA01B90118
:107D9000A60195010E945979DC01CB0180938803EB
:107DA00090938903A0938A03B0938B03B7FF04C019
:107DB0008150904FAF4FBF4F3C014D01ACE09594C7
:107DC000879477946794AA95D1F76092880370920C
:107DD000890380928A0390928B03C801B7012D8199
:107DE0003E814F8158850E94597997FF04C06150A8
:107DF000784F8F4F9F4FFBE09595879577956795C7
:107E0000FA95D1F7A60195010E945979DC01CB01C1
:107E100080938C0390938D03A0938E03B0938F0374
:107E2000B7FF04C08150904FAF4FBF4FAC01BD01B1
:107E3000ECE07595679557954795EA95D1F740938E
:107E40008C0350938D0360938E0370938F032A8964
:107E50003B8937FF03C0309521953F4F21343105D1
:107E6000E4F1D401C30197FE07C0B095A0959095A9
:107E700081959F4FAF4FBF4F81389105A105B10547
:107E800084F4DB01CA0177FF07C0B095A0959095F7
:107E900081959F4FAF4FBF4F81389105A105B10527
:107EA000E4F081E08093270318C0109298071092A5
:107EB0009707109294071092930710928C031092D8
:107EC0008D0310928E0310928F03109288031092EC
:107ED000890310928A0310928B0380918C039091F6
:107EE0008D03A0918E03B0918F03BC01CD0124E6D8
:107EF00030E040E050E00E94CD79E0908803F090BF
:107F00008903E21AF30AF092AA07E092A907809186
:107F1000880390918903A0918A03B0918B03BC01DF
:107F2000CD0124E630E040E050E00E94CD79DA0156
:107F3000C90120918C0330918D038C01021B130B1E
:107F400010939F0700939E07809195019091960151
:107F5000A0919701B0919801BC01CD0128E631E0D4
:107F600040E050E00E9459792091F1073091F207EA
:107F70004091F3075091F407261737074807590730
:107F800064F0261B370B480B590B2093F1073093F5
:107F9000F2074093F3075093F4072091F1073091D3
:107FA000F2074091F3075091F40757FF0CC0260FDA
:107FB000371F481F591F2093F1073093F207409352
:107FC000F3075093F40760919C0770919D076E0D25
:107FD0007F1D9B01442737FD4095542F809143031B
:107FE00090914403A0914503B0914603820F931FE3
:107FF000A41FB51F8093430390934403A0934503AC
:10800000B09346038091070390910803681B790B96
:10801000CB01AA2797FDA095BA2F29853A854B85D4
:108020005C85820F931FA41FB51F80934703909315
:108030004803A0934903B0934A03C090B101D09084
:10804000B201E090B301F090B401C816D906EA0677
:10805000FB06C4F488EA91E6A0E0B0E08C199D0923
:10806000AE09BF098093470390934803A093490347
:10807000B0934A038093430390934403A093450332
:10808000B093460322273327A9012C193D094E0935
:108090005F098091470390914803A0914903B091F3
:1080A0004A0382179307A407B507B4F4D701C601A2
:1080B000885A9146A040B04080934703909348036C
:1080C000A0934903B0934A038093430390934403DE
:1080D000A0934503B09346036091AB077091AC0742
:1080E000600F711F9B01442737FD4095542F8091ED
:1080F0004B0390914C03A0914D03B0914E03820F1E
:10810000931FA41FB51F80934B0390934C03A09320
:108110004D03B0934E038091050390910603681BB5
:10812000790BCB01AA2797FDA095BA2F2D853E8507
:108130004F855889820F931FA41FB51F80934F034B
:1081400090935003A0935103B0935203E090B50174
:10815000F090B6010091B7011091B801E816F90648
:108160000A071B07C4F488EA91E6A0E0B0E08E1984
:108170009F09A00BB10B80934F0390935003A093E2
:108180005103B093520380934B0390934C03A093FD
:108190004D03B0934E0322273327A9012E193F091F
:1081A000400B510B80914F0390915003A0915103CC
:1081B000B091520382179307A407B507B4F4D8010E
:1081C000C701885A9146A040B04080934F039093D6
:1081D0005003A0935103B093520380934B039093A9
:1081E0004C03A0934D03B0934E0380913F039091B5
:1081F0004003A0914103B0914203809353039093B5
:108200005403A0935503B093560380914F0390916C
:108210005003A0915103B091520380936F03909348
:108220007003A0937103B093720380914703909100
:108230004803A0914903B0914A0380936703909348
:108240006803A0936903B0936A0380914B039091F4
:108250004C03A0914D03B0914E0380936B03909318
:108260006C03A0936D03B0936E03809143039091D0
:108270004403A0914503B091460380936303909318
:108280006403A0936503B093660380911B019091F2
:108290001C0197FD079633E0959587953A95E1F790
:1082A0009093AC078093AB078091190190911A01CC
:1082B00097FD079623E0959587952A95E1F790938A
:1082C0009D0780939C0780914602909147020F97EB
:1082D00034F488E19CEF9093AC078093AB078091D6
:1082E000460290914702079734F480E398EF909309
:1082F000AC078093AB07209102012A30A9F480914A
:10830000460290914702835F934034F088EE93E0F9
:108310009093AC078093AB078091460290914702FF
:108320008A5F9340DCF014C080914602909147022E
:10833000815D974034F088EE93E09093AC07809392
:10834000AB078091460290914702805E974034F0DF
:1083500080ED97E09093AC078093AB078091440247
:10836000909145020F9734F488E19CEF90939D071C
:1083700080939C078091440290914502079734F4C2
:1083800080E398EF90939D0780939C072A30A9F48F
:108390008091440290914502835F934034F088EECF
:1083A00093E090939D0780939C0780914402909165
:1083B00045028A5F9340DCF014C0809144029091A2
:1083C0004502815D974034F088EE93E090939D07DD
:1083D00080939C078091440290914502805E974073
:1083E00034F080ED97E090939D0780939C07E09197
:1083F000A801EE2309F4B7C040911B0150911C0164
:108400008091980390919903481B590B50939F03B7
:1084100040939E0320911B0130911C01280F391FAE
:1084200037FF02C02F5F3F4F359527953093990353
:1084300020939803413851051CF080E890E005C076
:1084400040585F4F34F480E89FEF90939F038093F0
:108450009E038E2F9927A0919E03B0919F03A89F02
:10846000A001A99F500DB89F500D112457FF02C0C5
:10847000415F5F4F14E0559547951A95E1F780915C
:10848000AB079091AC07840F951F9093AC07809336
:10849000AB076091190170911A0180919A03909134
:1084A0009B03681B790B70939D0360939C03409121
:1084B000190150911A01480F591F57FF02C04F5F11
:1084C0005F4F5595479550939B0340939A036138AE
:1084D00071051CF080E890E005C060587F4F34F4CF
:1084E00080E89FEF90939D0380939C032E2F33276A
:1084F00080919C0390919D03829FB001839F700D9A
:10850000929F700D1124AB0177FF02C0415F5F4F56
:10851000E4E055954795EA95E1F780919C079091A5
:108520009D07840F951F90939D0780939C07A29FA2
:10853000C001A39F900DB29F900D11249C018091CA
:108540001B0190911C01820F931F90931C0180933B
:108550001B018091190190911A01860F971F90932A
:108560001A01809319010091AE071091AF07809115
:10857000930790919407101611065CF59C0197FFE4
:1085800004C022273327281B390BC901AA2797FDCE
:10859000A095BA2F20919C01332744275527BC0171
:1085A000CD010E9459799B01AC0197FF04C0215C69
:1085B0003F4F4F4F5F4F76E055954795379527953D
:1085C0007A95D1F78091A9079091AA07820F931FFE
:1085D00027C097FF03C0909581959F4FAA2797FDCD
:1085E000A095BA2F20919C01332744275527BC0121
:1085F000CD010E9459799B01AC0197FF04C0215C19
:108600003F4F4F4F5F4F66E05595479537952795FC
:108610006A95D1F78091A9079091AA07821B930BC5
:108620009093AA078093A907E090B607F090B70748
:1086300080919707909198071E141F045CF59C0188
:1086400097FF04C022273327281B390BC901AA270B
:1086500097FDA095BA2F20919C01332744275527D9
:10866000BC01CD010E9459799B01AC0197FF04C068
:10867000215C3F4F4F4F5F4F96E05595479537959B
:1086800027959A95D1F780919E0790919F07820F29
:10869000931F27C097FF03C0909581959F4FAA27EE
:1086A00097FDA095BA2F20919C0133274427552789
:1086B000BC01CD010E9459799B01AC0197FF04C018
:1086C000215C3F4F4F4F5F4F86E05595479537955B
:1086D00027958A95D1F780919E0790919F07821BDD
:1086E000930B90939F0780939E078091100687FFBE
:1086F00044C09989992309F040C0809101038823DF
:10870000E1F5A1E0EA16A1E0FA064CF08091AB0792
:108710009091AC078E0D9F1D805091400DC0B0E030
:10872000EB16BFEFFB0664F48091AB079091AC07AA
:108730008E0D9F1D80509F4F9093AC078093AB0789
:10874000E1E001301E074CF080919C0790919D075D
:10875000800F911F805091400CC0FFEF00301F0729
:1087600064F480919C0790919D07800F911F805029
:108770009F4F90939D0780939C07ACE1B3E068E026
:1087800076E057E0FB018191BF01E82FFF27EE0F54
:10879000FF1FE55DF84F0190F081E02DE259FF4F9A
:1087A000EF3FF10521F01CF0EFEFF0E004C0F7FF20
:1087B00002C0E0E0F0E04C91242F3327E217F307EA
:1087C000B1F0CF01821B930B97FD079613E09595AF
:1087D00087951A95E1F7242F280F2C93822F99273C
:1087E000E817F90714F4215001C02F5F2C93515062
:1087F000119657FFC7CFE2E1CD5E0C94047A8091C9
:108800001203882301F58091E7028C7F8093E702B1
:10881000A5E4B4E0EAECF6E09BE080910202882354
:1088200009F48C938D91818312829150389697FF31
:10883000F4CF80910202882359F080910202815086
:108840008093020205C08091E70281608093E70275
:1088500010926E021092700280916B028E7F809354
:108860006B0285EA8093BC00089580911206883FD0
:1088700038F0EFEFF0E0E81BF109E45EFC4F808197
:108880008093AE018091AE01882329F0843618F0E0
:1088900084E68093AE0180911406883F38F0EFEFB4
:1088A000F0E0E81BF109E45EFC4F80818093AC01AD
:1088B0008091AC01882329F0843618F084E68093F7
:1088C000AC0180912106883F38F0EFEFF0E0E81B23
:1088D000F109E45EFC4F80818093A7018091A7019C
:1088E0008B3010F48AE002C08F3F11F48093A7010F
:1088F00080914C06883F38F0EFEFF0E0E81BF1097B
:10890000E45EFC4F80818093C2078091C207823071
:1089100010F481E002C08F3F11F48093C207809170
:108920004E06883F38F0EFEFF0E0E81BF109E45E17
:10893000FC4F80818093E8078091E807823010F433
:1089400081E002C08F3F11F48093E80780913906DF
:10895000883F38F0EFEFF0E0E81BF109E45EFC4FF0
:1089600080818093BF0780913A06883F38F0EFEF0F
:10897000F0E0E81BF109E45EFC4F808180939907E9
:1089800080913B06883F38F0EFEFF0E0E81BF109FB
:10899000E45EFC4F80818093C70790911306983F57
:1089A00018F49093AD0109C0EFEFF0E0E91BF10975
:1089B000E45EFC4F80818093AD01983F18F4909362
:1089C000AD0109C0EFEFF0E0E91BF109E45EFC4FF7
:1089D00080818093AD0180911606883F38F0EFEFDB
:1089E000F0E0E81BF109E45EFC4F80818093AB016D
:1089F00080911806883F38F0EFEFF0E0E81BF109AE
:108A0000E45EFC4F80818093A90180912006883F1D
:108A100038F0EFEFF0E0E81BF109E45EFC4F8081F5
:108A20008093AA0180912206883F38F0EFEFF0E0B2
:108A3000E81BF109E45EFC4F80818093A6018091E0
:108A40002306883F38F0EFEFF0E0E81BF109E45E21
:108A5000FC4F80818093A80180912406883F38F0E4
:108A6000EFEFF0E0E81BF109E45EFC4F80818093BA
:108A7000A50180912506883F38F0EFEFF0E0E81B74
:108A8000F109E45EFC4F80818093A40180912B0664
:108A9000883F38F0EFEFF0E0E81BF109E45EFC4FAF
:108AA00080818093A20180912C06883F38F0EFEFFF
:108AB000F0E0E81BF109E45EFC4F80818093FC024A
:108AC00080912D06883F38F0EFEFF0E0E81BF109C8
:108AD000E45EFC4F80818093FB0280912E06883FEC
:108AE00038F0EFEFF0E0E81BF109E45EFC4F808125
:108AF0008093FA0280912F06883F38F0EFEFF0E084
:108B0000E81BF109E45EFC4F80818093F9028091BB
:108B10004706883F38F0EFEFF0E0E81BF109E45E2C
:108B2000FC4F80818093F80280914806883F38F09E
:108B3000EFEFF0E0E81BF109E45EFC4F80818093E9
:108B4000F70280914906883F38F0EFEFF0E0E81B2C
:108B5000F109E45EFC4F80818093F60280914A0621
:108B6000883F38F0EFEFF0E0E81BF109E45EFC4FDE
:108B700080818093F50280913006883F38F0EFEFD6
:108B8000F0E0E81BF109E45EFC4F80818093A101D5
:108B900080913406883F38F0EFEFF0E0E81BF109F0
:108BA000E45EFC4F80818093A00180913C06883F69
:108BB00038F0EFEFF0E0E81BF109E45EFC4F808154
:108BC00080939F0180913F06883F38F0EFEFF0E0FF
:108BD000E81BF109E45EFC4F808180939E01809147
:108BE0004006883F38F0EFEFF0E0E81BF109E45E63
:108BF000FC4F808180939D0180914106883F38F031
:108C0000EFEFF0E0E81BF109E45EFC4F8081809318
:108C10009C0180914606883F38F0EFEFF0E0E81BBA
:108C2000F109E45EFC4F808180939B018091610695
:108C3000883F38F0EFEFF0E0E81BF109E45EFC4F0D
:108C400080818093F8078091A201282F33272F5F1E
:108C50003F4F8CE398E2B9010E9498797093B0017C
:108C60006093AF0180911E068093E90780911D06F5
:108C70008093B00790916306933320F181E0809355
:108C8000F402983F58F0EFEFF0E0E91BF109E45EE1
:108C9000FC4F8081823310F41092F40280913608E8
:108CA0009091370897FF08C08091F402882321F043
:108CB00080914004806803C0809140048F77809346
:108CC000400402C01092F402809136089091370857
:108CD00097FF1DC0809112038823C9F08091F40290
:108CE0008823A9F080910801909109018F5F9F4F1F
:108CF00071F488E99AE3909322028093210280E044
:108D000094EA90930901809308011092F4028091F3
:108D1000F402882339F080919E01823D18F4825E2E
:108D200080939E010895A5E3B0E0E9E9F6E40C9490
:108D3000E8790E94073C309102013C3010F4299AF6
:108D400001C02998E0901303F0901403F9A2E8A25F
:108D50008091B00799270A96E816F90614F499A3AA
:108D600088A380911B03843608F05CC08091B40313
:108D70009091B503009731F001979093B5038093DC
:108D8000B40307C0109212038091E7028F7E809394
:108D9000E7023A3011F0343110F0289A01C02898D7
:108DA0008091E8029091E902895E9340C0F1809140
:108DB0002806282F332739A328A38091E702806152
:108DC0008093E70280910406A82FBB27AA0FBB1F40
:108DD000FD01E15AF84F1182108280910506282F7B
:108DE0003327220F331FC901815A984FFC0111828A
:108DF0001082A55DB84F11961C921E92255D384FCA
:108E0000D90111961C921E9280910706E82FFF2728
:108E1000EE0FFF1FE55DF84F11821082AAC210927B
:108E20001203A7C280911B038D3808F4A2C280915F
:108E3000E7028F7E8093E7029091290682E3989F54
:108E4000C00111249093B5038093B403E8A1F9A164
:108E5000B9978CF080911203882369F08091E80221
:108E60009091E902FFEF8F3F9F0729F001969093C1
:108E7000E9028093E8028091E8029091E9028F3F35
:108E8000910509F038F510923703109238031092CB
:108E9000390310923A031092330310923403109264
:108EA0003503109236031092A0031092A103109282
:108EB000A2031092A30310923F031092400310925A
:108EC0004103109242038A3F910549F481E0809367
:108ED000BA0305C08091E70282608093E702809127
:108EE0000606E82FFF27EE0FFF1FE55DF84F808194
:108EF0009181813591050CF441C120911203222307
:108F000009F03CC180910706E82FFF27EE0FFF1FF5
:108F1000E55DF84F808191818C3491050CF406C198
:108F20008091B6038F5F8093B603893C08F426C115
:108F30003C3010F4299801C0299A10921203109223
:108F4000B6031092E9021092E80230910406E32F72
:108F5000FF27EE0FFF1FE55DF84F80819181873479
:108F60009105B4F480910506E82FFF27EE0FFF1F4F
:108F7000E55DF84F808191810190F081E02DF7FF50
:108F800003C0F095E195FF4FE734F1050CF478C08C
:108F900041E020910506A22FBB27AA0FBB1FA55DAC
:108FA000B84F8D919C9111978734910544F0E32F30
:108FB000FF27EE0FFF1FE55DF84F808191818D91B6
:108FC0009C918734910574F080910406E82FFF2767
:108FD000EE0FFF1FE55DF84F808191818734910589
:108FE0000CF042E0E22FFF27EE0FFF1FE55DF84F88
:108FF000808191818634910574F480910406E82F74
:10900000FF27EE0FFF1FE55DF84F808191818734C8
:1090100091050CF043E0E22FFF27EE0FFF1FE55D07
:10902000F84F808191818A5B9F4F74F48091040690
:10903000E82FFF27EE0FFF1FE55DF84F808191813C
:10904000873491050CF044E0E22FFF27EE0FFF1F5D
:10905000E55DF84F808191818A5B9F4F74F4809128
:109060000406E82FFF27EE0FFF1FE55DF84F808114
:109070009181863491050CF445E0842F0E948B2E5B
:1090800080910506E82FFF27EE0FFF1FE55DF84FE3
:10909000808191810190F081E02DF7FF03C0F09570
:1090A000E195FF4F7E97BCF480910406E82FFF27DF
:1090B000EE0FFF1FE55DF84F808191818A5B9F4F26
:1090C00054F481E080935B0488EE93E09093220255
:1090D0008093210253C00E94852F0E94382E80E089
:1090E0000E945C0780912A060E948C758091100670
:1090F00080FF10C08091130190911401875B934011
:1091000038F480911301909114018E5E924010F416
:109110000E94E01A10921F0280E00E94593981E0FB
:109120008093B90380931F02579A1FC08081918159
:10913000855B9F4F0CF58091B6038F5F8093B603DC
:10914000893CE0F03C3010F4299801C0299A109233
:1091500012031092B6031092E9021092E80281E025
:109160000E94593981E08093B9030E94852F68E7F6
:1091700070E00E94973802C02093B60380910606E3
:10918000E82FFF27EE0FFF1FE55DF84F80819181EB
:109190008B5A9F4F0CF0EDC020911203E09107060F
:1091A000222309F0CAC0FF27EE0FFF1FE55DF84F2D
:1091B00080819181855B9F4F0CF0BCC08091B7038B
:1091C0008F5F8093B703893C08F4D3C02093B70323
:1091D00080914004882309F0A6C08091B9038823B8
:1091E00009F4A1C081E090E09093E9028093E80245
:1091F00081E0809312031092A0031092A1031092B9
:10920000A2031092A30310923F0310924003109206
:1092100041031092420310923B0310923C031092C0
:109220003D0310923E0380911F06E82EFF24002785
:1092300011278091E5079091E6079C01442737FDAF
:109240004095542FC801B7010E945979DC01CB0128
:1092500080934F0390935003A0935103B093520314
:109260008091F5079091F6079C01442737FD4095C2
:10927000542FC801B7010E945979DC01CB018093BA
:10928000470390934803A0934903B0934A03809106
:109290006F0390917003A0917103B091720380935A
:1092A0004B0390934C03A0934D03B0934E038091D6
:1092B000670390916803A0916903B0916A0380935A
:1092C000430390934403A0934503B0934603109245
:1092D0003703109238031092390310923A03109218
:1092E00033031092340310923503109236038091A9
:1092F000E70288608093E702909162068FE0989F72
:109300009001112480912D0390912E03820F931FC1
:1093100068E671E00E94987997FD0196959587958A
:109320008093730326C08CED95E090932202809386
:1093300021021FC02093B7031CC0FF27EE0FFF1FA1
:10934000E55DF84F808191818C34910584F08091A6
:10935000B8038F5F8093B803893C58F010921203D2
:109360001092B8031092E9021092E80202C0109223
:10937000B803809193018150809393018091930170
:109380008F3F21F08091E70284FF82C30E94354421
:109390008091C3039091C4039C01220F331F280FB7
:1093A000391FA0900406AA2DBB27AA0FBB1FFD01E1
:1093B000E55DF84F90901A06492D552780819181DF
:1093C000849FF001859FF00D949FF00D11242E0FC6
:1093D0003F1F37FF02C02D5F3F4FB901759567955D
:1093E00075956795A15AB84F80911B06082F1127D4
:1093F0008D919C91809F7001819FF00C909FF00C4B
:1094000011246E0D7F1D7093C4036093C30380917C
:10941000C5039091C6039C01220F331F280F391FEB
:10942000B0900506AB2DBB27AA0FBB1FFD01E55D64
:10943000F84F80819181849FF001859FF00D949F6A
:10944000F00D11242E0F3F1F37FF02C02D5F3F4F3D
:10945000A9015595479555954795A15AB84F8D91B6
:109460009C91809F7001819FF00C909FF00C1124C3
:109470004E0D5F1D5093C6034093C5039E012F5FA1
:109480003F4F8FE1E0ECF1E0D90101900D928A9518
:10949000E1F78091F402882309F448C0CB0177FDFD
:1094A0000396DC01B595A795B595A795CA0157FD1B
:1094B0000396FC01F595E795F595E7958091E9010F
:1094C000682F772767FD70956A9F90016B9F300D1D
:1094D0007A9F300D11248091FC03482F552747FDBA
:1094E00050954E9FC0014F9F900D5E9F900D11248F
:1094F000280F391F37FF02C0295F3F4F03E0359522
:1095000027950A95E1F730931A03209319036E9F6C
:1095100090016F9F300D7E9F300D11244A9FC00136
:109520004B9F900D5A9F900D112444C0809162066C
:10953000082F1127DE01A00FB11FFD019781909325
:10954000E901020F131FD8018C918093FC03A92F0E
:10955000BB27A7FDB095A69F9001A79F300DB69F92
:10956000300D1124E82FFF27E7FDF095E49FC0019F
:10957000E59F900DF49F900D1124280F391F37FFA0
:1095800002C0295F3F4F13E0359527951A95E1F703
:1095900030931A0320931903A49F9001A59F300DC7
:1095A000B49F300D1124E69FC001E79F900DF69FF8
:1095B000900D1124281B390B37FF02C0295F3F4F44
:1095C000F3E035952795FA95E1F73093180320934A
:1095D000170380910706E82FFF27EE0FFF1FE55DB9
:1095E000F84F80819181909581959F4F90931603BC
:1095F000809315038330910514F0029705C0BFEFE7
:109600008E3F9B0734F402969093160380931503C4
:1096100004C010921603109215038091F8039091E4
:10962000F9032091F4033091F503820F931FC0904A
:109630001903D0901A03C81AD90AD0921A03C092FB
:1096400019038091F6039091F7032091F203309172
:10965000F303820F931F0091170310911803081B47
:10966000190B109318030093170380910606E82F37
:10967000FF27EE0FFF1FE55DF84FE080F180E8E780
:10968000F0E0EE0EFF1EF0921403E09213038091BF
:10969000A7019927AA2797FDA095BA2FBC01CD0154
:1096A0000E94CD78DC01CB0120E030E040E251E4C3
:1096B000BC01CD010E943B78DC01CB01BC01CD0196
:1096C0000E949F78DC01CB018093EF078091A60177
:1096D0008093C8078091A5019927AA2797FDA09597
:1096E000BA2FBC01CD010E94CD78DC01CB0120E076
:1096F00030E040E251E4BC01CD010E943B78DC0146
:10970000CB01BC01CD010E949F78DC01CB0180938D
:10971000A3078091A4018093B8078091670480FF1C
:1097200059C08091F807813808F454C080916004D2
:10973000992787FD9095292D3327829FA001839F2C
:10974000500D929F500D1124C40ED51ED0921A03B5
:10975000C092190380916104992787FD9095829F9B
:10976000B001839F700D929F700D1124060F171F7B
:10977000109318030093170380916204282F332756
:1097800027FD30958091150390911603820F931F4A
:10979000909316038093150380916404282F332738
:1097A00027FD3095809115069927289FD001299F84
:1097B000B00D389FB00D1124B0939A01A093990178
:1097C0008091630499278E159F0524F490931403C8
:1097D00080931303809113039091140397FF04C0A7
:1097E00010921403109213038091100682FF02C09E
:1097F0001092C8074091190350911A03CA0157FDEE
:1098000003969C01359527953595279537FF03C01D
:10981000309521953F4F8091EC029091ED02821797
:109820009307B4F4CA0157FF03C0909581959F4FE9
:1098300097FD039695958795959587959093ED025D
:109840008093EC028536910544F084E690E001C0F7
:1098500001979093ED028093EC0240911703509191
:109860001803CA0157FD03969C0135952795359538
:10987000279537FF03C0309521953F4F8091EA022D
:109880009091EB0282179307B4F4CA0157FF03C00B
:10989000909581959F4F97FD039695958795959502
:1098A00087959093EB028093EA028536910544F008
:1098B00084E690E001C001979093EB028093EA0266
:1098C0008091E70284FF08C01092ED021092EC0232
:1098D0001092EB021092EA02EB2DFF27EE0FFF1F12
:1098E000E55DF84F40913D06242F3327808191811B
:1098F0002817390744F48091640682FF04C081E090
:109900008093000313C0EB2DFF27EE0FFF1FE55DD3
:10991000F84F842F992720913E06821B91092081C0
:1099200031812817390714F410920003409105067D
:10993000E42FFF27EE0FFF1FE55DF84F50913D0626
:10994000852F992722273327281B390B8081918166
:109950008217930744F48091640683FF04C081E07A
:109960008093FF0216C08091FF02882391F0E42FBC
:10997000FF27EE0FFF1FE55DF84F80913E06992708
:10998000851B9109208131818217930714F410926D
:10999000FF02EA2DFF27EE0FFF1FE55DF84F409114
:1099A0003D06242F3327808191812817390744F4FD
:1099B0008091640680FF04C081E08093FD0217C09F
:1099C0008091FD02882399F0EA2DFF27EE0FFF1FFB
:1099D000E55DF84F842F992720913E06821B91095F
:1099E000208131812817390714F41092FD0240912B
:1099F0000406E42FFF27EE0FFF1FE55DF84F50919F
:109A00003D06852F992722273327281B390B808174
:109A100091818217930744F48091640681FF04C00A
:109A200081E08093FE0216C08091FE02882391F0AF
:109A3000E42FFF27EE0FFF1FE55DF84F80913E06F4
:109A40009927851B9109208131818217930714F48E
:109A50001092FE0280910003882319F48091FF0286
:109A6000811181E0809301038091FD02882321F41C
:109A70008091FE02882351F081E0809302031092CE
:109A80000103109200031092FF0202C080930203B0
:109A900080910103882321F480910203882369F0D7
:109AA00080913C069927E8A1F9A18E179F0714F42D
:109AB00099A388A381E0809327038091E70284FF24
:109AC0001AC0109216031092150310921A031092E6
:109AD000190310921803109217039AE59093EF0759
:109AE00088E78093C8079093A3078093B8071092E4
:109AF0000103109202038091BB079091BC07A091D3
:109B0000BD07B091BE0720916F0330917003409163
:109B1000710350917203820F931FA41FB51F80938E
:109B2000BB079093BC07A093BD07B093BE0780917D
:109B3000C3079091C407A091C507B091C6072090B4
:109B40006703309068034090690350906A03820D68
:109B5000931DA41DB51D8093C3079093C407A093C4
:109B6000C507B093C6078091B2079091B307A09143
:109B7000B407B091B507E0906B03F0906C030091CF
:109B80006D0310916E03EAA2FBA20CA31DA38E0D20
:109B90009F1DA01FB11F8093B2079093B307A0939E
:109BA000B407B093B5078091A4079091A507A09141
:109BB000A607B091A707E0906303F09064030091BB
:109BC000650310916603EEA2FFA208A719A78E0DE8
:109BD0009F1DA01FB11F8093A4079093A507A0937A
:109BE000A607B093A707F0900203FAA6FF2029F476
:109BF00080910103882309F460C010925F031092E2
:109C00006003109261031092620310925B03109242
:109C10005C0310925D0310925E031092BB071092DA
:109C2000BC071092BD071092BE071092C307109296
:109C3000C4071092C5071092C6071092B20710927F
:109C4000B3071092B4071092B5071092A4071092B0
:109C5000A5071092A6071092A70780914F03909135
:109C60005003A0915103B091520380934B03909302
:109C70004C03A0934D03B0934E0380914703909102
:109C80004803A0914903B0914A0380934303909302
:109C90004403A0934503B0934603109233021092FD
:109CA00032021092060310920503109208031092DC
:109CB00007030AA5002309F0F2C18091010388235C
:109CC00009F0EDC18091F5059091F6058150924023
:109CD0002CF480911203882309F4E1C19090630869
:109CE000A0901F066091E5077091E6077BAB6AAB19
:109CF0008091F5079091F6079DAB8CAB9FEF99167D
:109D000009F4D9C0BB24CC24DD24CA01B901A601C1
:109D100095010E94CD7979018A01EAA9FBA9CF01B9
:109D2000AA2797FDA095BA2FE81AF90A0A0B1B0B70
:109D3000C201B101A60195010E94CD7959016A01C4
:109D40002CA93DA9C901AA2797FDA095BA2FA81A49
:109D5000B90ACA0ADB0A292C332427FC3094432C85
:109D6000532CC801B701A20191010E94597997FFB4
:109D700004C061507E4F8F4F9F4F3B014C0109E063
:109D800095948794779467940A95D1F7C601B501A5
:109D9000A20191010E94597997FF04C061507E4F42
:109DA0008F4F9F4F5B016C0119E0D594C794B79416
:109DB000A7941A95D1F78091EC029091ED0281342D
:109DC00091053CF48091EA029091EB028134910577
:109DD000D4F0D401C30197FE03C00196A11DB11DAB
:109DE0003C014D019594879477946794D601C50101
:109DF000D7FE03C00196A11DB11D5C016D01D59474
:109E0000C794B794A79480910706E82FFF27EE0F19
:109E1000FF1FE55DF84F808191810190F081E02D79
:109E2000F7FF03C0F095E195FF4F7A97A4F0C401C6
:109E3000B30123E030E040E050E00E94CD793901E9
:109E40004A01C601B50123E030E040E050E00E9445
:109E5000CD7959016A0180916508282F332727FDA4
:109E60003095432F532F261537054805590514F40F
:109E700039014A01992787FD9095909581959F4FCB
:109E8000AA2797FDA095BA2F681679068A069B0621
:109E900014F43C014D012A153B054C055D0514F4F5
:109EA00059016A01A816B906CA06DB060CF0CFC034
:109EB0005C016D01CCC0EA2CFF2400271127CA01E8
:109EC000B901A80197010E94CD7939014A014AA937
:109ED0005BA9CA01AA2797FDA095BA2F681A790A2B
:109EE0008A0A9B0AC201B101A80197010E94CD799B
:109EF00059016A016CA97DA9CB01AA2797FDA095FC
:109F0000BA2FA81AB90ACA0ADB0AD401C30197FEFC
:109F100003C00F96A11DB11D3C014D01F4E09594C5
:109F2000879477946794FA95D1F7D601C501D7FE47
:109F300003C00F96A11DB11D5C016D01E4E0D59435
:109F4000C794B794A794EA95D1F78091EC029091C9
:109F5000ED02813491053CF48091EA029091EB028C
:109F600081349105A4F0C401B30123E030E040E066
:109F700050E00E94CD7939014A01C601B50123E0C4
:109F800030E040E050E00E94CD7959016A018091B3
:109F90000706E82FFF27EE0FFF1FE55DF84F8081D2
:109FA00091810190F081E02DF7FF03C0F095E195DC
:109FB000FF4F7A97A4F0C401B30123E030E040E002
:109FC00050E00E94CD7939014A01C601B50123E074
:109FD00030E040E050E00E94CD7959016A0171E221
:109FE00067167104810491042CF070E2672E712CC5
:109FF000812C912C80EE68168FEF78068FEF880603
:10A000008FEF980644F460EE662E6FEF762E6FEFBA
:10A01000862E6FEF962E91E2A916B104C104D104E9
:10A020002CF050E2A52EB12CC12CD12CA0EEAA16FA
:10A03000AFEFBA06AFEFCA06AFEFDA0644F440EE70
:10A04000A42E4FEFB42E4FEFC42E4FEFD42E80919D
:10A050004F0390915003A0915103B0915203861980
:10A060009709A809B90980934F0390935003A093CF
:10A070005103B09352038091470390914803A091FC
:10A080004903B0914A038A199B09AC09BD09809321
:10A09000470390934803A0934903B0934A038091E8
:10A0A0003202909133028F3F910509F008F4C4C544
:10A0B000BAA5BB2309F04EC580910103882309F09E
:10A0C00049C580912703882309F044C5E0914506DE
:10A0D000EBA7EE2309F43EC58091BB079091BC0726
:10A0E000A091BD07B091BE07B7FF04C081509F4F3C
:10A0F000AF4FBF4FE92EFA2E0B2F112707FD1A95F0
:10A10000E092BB07F092BC070093BD071093BE0717
:10A110008091C3079091C407A091C507B091C6076D
:10A12000B7FF04C081509F4FAF4FBF4F892F9A2F69
:10A13000AB2FBB27A7FDBA958CA79DA7AEA7BFA73E
:10A140008093C3079093C407A093C507B093C60735
:10A1500080911F06A82EBB24CC24DD2420915F0310
:10A16000309160034091610350916203C601B501D3
:10A170000E94597997FF04C061507F4F8F4F9F4FC6
:10A18000672E782E892E992487FC9A9460925F031B
:10A1900070926003809261039092620320915B034E
:10A1A00030915C0340915D0350915E03C601B5019F
:10A1B0000E94597997FF04C061507F4F8F4F9F4F86
:10A1C000272E382E492E552447FC5A9420925B03A3
:10A1D00030925C0340925D0350925E03809157037E
:10A1E00090915803A0915903B0915A03B7FF04C04E
:10A1F00081509F4FAF4FBF4F892F9A2FAB2FBB2757
:10A20000A7FDBA958093570390935803A0935903E1
:10A21000B0935A03D801C70186199709A809B9094B
:10A220008093AC039093AD03A093AE03B093AF03C0
:10A2300020914406E22EFF2400271127BC01CD0106
:10A24000A80197010E94CD7959016A012093BB03AF
:10A250003093BC034093BD035093BE038CA59DA5D2
:10A26000AEA5BFA582199309A409B5098093B003CF
:10A270009093B103A093B203B093B303BC01CD019B
:10A28000A80197010E94CD792093BF033093C003AA
:10A290004093C1035093C203D601C501D7FE04C049
:10A2A00081509F4FAF4FBF4F892F9A2FAB2FBB27A6
:10A2B000A7FDBA95909306038093050357FF04C04A
:10A2C00021503F4F4F4F5F4FBB2757FDBA95A52FEA
:10A2D000942F832F90930803809307038091EC02BF
:10A2E0009091ED0281349105DCF48091EA02909125
:10A2F000EB0281349105A4F480910706E82FFF2733
:10A30000EE0FFF1FE55DF84F808191810190F08194
:10A31000E02DF7FF03C0F095E195FF4F7A97E4F049
:10A32000809163088F3FC1F48091050390910603EB
:10A3300097FD019695958795909306038093050365
:10A34000809107039091080397FD01969595879555
:10A3500090930803809307038091B2079091B3070D
:10A36000A091B407B091B507B7FF04C081509F4FCB
:10A37000AF4FBF4F892F9A2FAB2FBB27A7FDBA95A1
:10A380008093B2079093B307A093B407B093B50737
:10A390008091A4079091A507A091A607B091A70767
:10A3A000B7FF04C081509F4FAF4FBF4F892F9A2FE7
:10A3B000AB2FBB27A7FDBA958093A4079093A50761
:10A3C000A093A607B093A70780916F0390917003A5
:10A3D000A0917103B09172032AA13BA14CA15DA190
:10A3E000281B390B4A0B5B0B2093A4033093A50366
:10A3F0004093A6035093A70380916703909168034D
:10A40000A0916903B0916A03EEA0FFA008A519A569
:10A41000E81AF90A0A0B1B0BE092A803F092A903B1
:10A420000093AA031093AB032093AC033093AD03C6
:10A430004093AE035093AF03E092B003F092B103A8
:10A440000093B2031093B30380914B0390914C039C
:10A45000A0914D03B0914E03821B930BA40BB50B3F
:10A4600080934B0390934C03A0934D03B0934E0302
:10A470008091430390914403A0914503B09146031A
:10A480008E199F09A00BB10B809343039093440353
:10A49000A0934503B0934603FBA5FF23E1F0209171
:10A4A000250330912603213831054CF0809180033B
:10A4B00090918103019690938103809380032058AB
:10A4C0003F4F4CF4809180039091810301979093CA
:10A4D000810380938003109226031092250381E06C
:10A4E00090E09093C8038093C703A090AC03B09012
:10A4F000AD03C090AE03D090AF03D601C501D7FE27
:10A5000007C088279927DC018A199B09AC09BD0976
:10A5100081509240A040B04034F084E090E09093AD
:10A52000C8038093C7038091CD039091CE03A0917F
:10A53000CF03B091D0032091BB073091BC0740916D
:10A54000BD075091BE07821B930BA40BB50B815E18
:10A55000914BAF4FBF4F8F539C49A040B04028F064
:10A560008091640889310CF4FFC031E0A31630E11A
:10A57000B30630E0C30630E0D3060CF473C080911C
:10A58000C903882309F46AC0D601C501D7FE07C0F4
:10A5900088279927DC018A199B09AC09BD099C0110
:10A5A000AD01B7FF04C021503E4F4F4F5F4F09E050
:10A5B00055954795379527950A95D1F78091C7030B
:10A5C0009091C803820F931F9093C8038093C70391
:10A5D000D601C501D7FE03C00796A11DB11D13E02A
:10A5E000B595A795979587951A95D1F78093BB0355
:10A5F0009093BC03A093BD03B093BE0389589341CD
:10A60000A040B04064F088E893E1A0E0B0E080931F
:10A61000BB039093BC03A093BD03B093BE032091F2
:10A62000BB033091BC034091BD035091BE0357FF63
:10A6300004C021503F4F4F4F5F4F232F342F452FE2
:10A64000552747FD5A958091050390910603820F87
:10A65000931F909306038093050306C081E08093C7
:10A66000C90302C01092C90350E0A51650EFB50609
:10A670005FEFC5065FEFD5060CF073C08091CA038B
:10A68000882309F46AC0D601C501D7FE07C0882710
:10A690009927DC018A199B09AC09BD099C01AD0110
:10A6A000B7FF04C021503E4F4F4F5F4FF9E0559523
:10A6B000479537952795FA95D1F78091C7039091E3
:10A6C000C803820F931F9093C8038093C703D601DA
:10A6D000C501D7FE03C00796A11DB11DE3E0B595E6
:10A6E000A79597958795EA95D1F78093BB039093AB
:10A6F000BC03A093BD03B093BE0388579C4EAF4FDD
:10A70000BF4F64F488E79CEEAFEFBFEF8093BB03CD
:10A710009093BC03A093BD03B093BE032091BB03F1
:10A720003091BC034091BD035091BE0357FF04C05C
:10A7300021503F4F4F4F5F4F232F342F452F552729
:10A7400047FD5A958091050390910603820F931F50
:10A75000909306038093050311C081E08093CA03A0
:10A760000DC01092CA030AC01092C8031092C7030A
:10A7700088EE93E09093BA018093B9017BA5272FCF
:10A7800033278091C7039091C8032817390724F411
:10A790003093C8032093C703E0916408EE2379F057
:10A7A0002E2F332727FD30958091C7039091C80342
:10A7B0002817390724F43093C8032093C703409126
:10A7C000AC035091AD036091AE037091AF0341387B
:10A7D00051056105710574F08091840390918503A2
:10A7E0002091C7033091C803820F931F9093850374
:10A7F0008093840340585F4F6F4F7F4F74F4809174
:10A800008403909185032091C7033091C803821B74
:10A81000930B909385038093840381E090E0909361
:10A82000C8038093C703A090B003B090B103C09059
:10A83000B203D090B303D601C501D7FE07C0882765
:10A840009927DC018A199B09AC09BD098150924006
:10A85000A040B04034F084E090E09093C80380932F
:10A86000C7038091D1039091D203A091D303B091FB
:10A87000D4032091C3073091C4074091C50750917C
:10A88000C607821B930BA40BB50B815E914BAF4F98
:10A89000BF4F8F539C49A040B04018F0E9310CF4F1
:10A8A000FFC011E0A11610E1B10610E0C10610E0F2
:10A8B000D1060CF473C08091CB03882309F46AC0DD
:10A8C000D601C501D7FE07C088279927DC018A1960
:10A8D0009B09AC09BD099C01AD01B7FF04C0215023
:10A8E0003E4F4F4F5F4F69E05595479537952795F8
:10A8F0006A95D1F78091C7039091C803820F931F87
:10A900009093C8038093C703D601C501D7FE03C047
:10A910000796A11DB11D23E0B595A795979587953D
:10A920002A95D1F78093BF039093C003A093C103EE
:10A93000B093C20389589341A040B04064F088E8C6
:10A9400093E1A0E0B0E08093BF039093C003A09395
:10A95000C103B093C2032091BF033091C003409163
:10A96000C1035091C20357FF04C021503F4F4F4FC6
:10A970005F4F232F342F452F552747FD5A95809140
:10A98000070390910803820F931F9093080380930D
:10A99000070306C081E08093CB0302C01092CB0373
:10A9A00030E0A31630EFB3063FEFC3063FEFD30608
:10A9B0000CF073C08091CC03882309F46AC0D601DF
:10A9C000C501D7FE07C088279927DC018A199B0992
:10A9D000AC09BD099C01AD01B7FF04C021503E4F39
:10A9E0004F4F5F4F09E055954795379527950A9545
:10A9F000D1F78091C7039091C803820F931F909362
:10AA0000C8038093C703D601C501D7FE03C00796CC
:10AA1000A11DB11D13E0B595A795979587951A953A
:10AA2000D1F78093BF039093C003A093C103B09369
:10AA3000C20388579C4EAF4FBF4F64F488E79CEE2B
:10AA4000AFEFBFEF8093BF039093C003A093C10308
:10AA5000B093C2032091BF033091C0034091C10362
:10AA60005091C20357FF04C021503F4F4F4F5F4FDB
:10AA7000232F342F452F552747FD5A9580910703E3
:10AA800090910803820F931F90930803809307030C
:10AA900011C081E08093CC030DC01092CC030AC09A
:10AAA0001092C8031092C70388EE93E09093BA0106
:10AAB0008093B9015BA5252F33278091C70390911F
:10AAC000C8032817390724F43093C8032093C70319
:10AAD00080916408882379F0282F332727FD30954B
:10AAE0008091C7039091C8032817390724F4309345
:10AAF000C8032093C7034091B0035091B103609104
:10AB0000B2037091B303413851056105710574F0CA
:10AB100080918203909183032091C7033091C803F1
:10AB2000820F931F909383038093820340585F4F5B
:10AB30006F4F7F4FCCF480918203909183032091DB
:10AB4000C7033091C803821B930B909383038093B8
:10AB500082030AC0109208031092070310920603A2
:10AB600010920503109227038091C807882341F4AF
:10AB70001092080310920703109206031092050327
:10AB80008091BB079091BC07A091BD07B091BE0713
:10AB90008093CD039093CE03A093CF03B093D003C3
:10ABA0008091C3079091C407A091C507B091C607D3
:10ABB0008093D1039093D203A093D303B093D40393
:10ABC00010925F031092600310926103109262036F
:10ABD00010925B0310925C0310925D0310925E036F
:10ABE00010925703109258031092590310925A036F
:10ABF0001092BB071092BC071092BD071092BE07BF
:10AC00001092C3071092C4071092C5071092C6078E
:10AC10001092B2071092B3071092B4071092B507C2
:10AC20001092A4071092A5071092A6071092A707EA
:10AC30001092330210923202009115031091160304
:10AC4000C80117FF04C088279927801B910B4097E4
:10AC50006CF088EE93E09093BA018093B9018091F3
:10AC6000100684FD03C081E08093BA03F0901C06B7
:10AC7000AF2CBB24CC24DD24B801882777FD809538
:10AC8000982F980117FF04C022273327201B310B70
:10AC9000442737FD4095542F0E9459799B01AC0100
:10ACA000C601B5010E94597997FF04C061507E4FDB
:10ACB0008F4F9F4FF9E09595879577956795FA9512
:10ACC000D1F79B018F2D9927809FD001819FB00DD7
:10ACD000909FB00D1124CD01B7FD039695958795F2
:10ACE00095958795280F391F442737FD4095542F98
:10ACF0002093A0033093A1034093A2035093A30396
:10AD000080913F0390914003A0914103B091420391
:10AD1000821B930BA40BB50B80933F0390934003CE
:10AD2000A0934103B09342038155934CA040B0409F
:10AD300064F080E593ECA0E0B0E080933F03909353
:10AD40004003A0934103B093420380913F0390914D
:10AD50004003A0914103B0914203805B9C43AF4FFD
:10AD6000BF4F64F480EB9CE3AFEFBFEF80933F03F2
:10AD700090934003A0934103B0934203A0902D030E
:10AD8000B0902E03A114B10409F478C1809110068B
:10AD900083FF74C180916F0390917003A091710340
:10ADA000B0917203B7FF04C081509E4FAF4FBF4FA9
:10ADB00079E0B595A795979587957A95D1F76C0128
:10ADC00097FF04C0D094C194D108D39480916703B5
:10ADD00090916803A0916903B0916A03B7FF04C022
:10ADE00081509E4FAF4FBF4F69E0B595A79597959E
:10ADF00087956A95D1F7BC0197FF03C0709561955F
:10AE00007F4FC616D7060CF46B01B601D7FE02C001
:10AE1000695F7F4F2B0153E0559447945A95E1F7B2
:10AE200042E0E42EF12C4E0C5F1C0CE112E0A00E6F
:10AE3000B11E75010027F7FC0095102F24EE3DEFA1
:10AE4000A20EB31E8091F1079091F207A091F30733
:10AE5000B091F407609095017090960180909701F1
:10AE600090909801BC01CD01A40193010E94CD797D
:10AE7000E21AF30A040B150BC801B70128E631E00A
:10AE800040E050E00E94CD79DC01CB013CE4E32EB0
:10AE90003FEFF32EE80EF91E0091B9011091BA01AF
:10AEA0000115110589F539E1C316D1046CF58091BE
:10AEB0002503909126038E0D9F1D9093260380936A
:10AEC00025038091BA038823F9F0C501AA2797FDCD
:10AED000A095BA2FBC01CD01A40193010E9459791C
:10AEE000DC01CB018093F1079093F207A093F30765
:10AEF000B093F407BC01CD010E94CD7930932C03AF
:10AF000020932B031092BA03C70124E0880F991FE6
:10AF10002A95E1F7B2010E949879CB01AA2797FD03
:10AF2000A095BA2F2091F1073091F2074091F307D5
:10AF30005091F407280F391F4A1F5B1F2093F10718
:10AF40003093F2074093F3075093F407F090AA016F
:10AF50006F2D7727C69EC001C79E900DD69E900D7F
:10AF6000112497FD4F966C0195E0D594C7949A955E
:10AF7000E1F76C197D096B0177FD7AC001151105A8
:10AF800009F06FC00091EC021091ED028091EA028D
:10AF90009091EB02080F191F17FF02C0095F1F4FA6
:10AFA00083E0159507958A95E1F7005C1F4FCA016C
:10AFB000B901A40193010E94CD79DA01C901209160
:10AFC0002B0330912C03442737FD4095542F821BCF
:10AFD000930BA40BB50B845E9D4FAF4FBF4FBC01CD
:10AFE000CD0128E631E040E050E00E94CD79DC015F
:10AFF000CB01845B90408C9DA0018D9D500D9C9D4C
:10B00000500D1124CA01B8010E94987983E0F89E7E
:10B0100060011124C616D70614F4B60108C08827AB
:10B0200099278C199D09681779070CF4BC019B01BD
:10B03000442737FD4095542F80913F039091400362
:10B04000A0914103B0914203820F931FA41FB51F2B
:10B0500080933F0390934003A0934103B093420336
:10B060000DC0015010401093BA010093B90106C001
:10B0700084EF91E09093BA018093B9018091270306
:10B08000882381F010923303109234031092350319
:10B09000109236031092370310923803109239033E
:10B0A00010923A03709002037720F1F48091C80760
:10B0B000282F33274427552780916F0390917003E1
:10B0C000A0917103B0917203BC01CD010E94597926
:10B0D000DC01CB01BC01CD0128EF3AE240E050E0B9
:10B0E0000E94CD79290102C0442455249090010387
:10B0F0009920F1F48091C807282F3327442755273A
:10B100008091670390916803A0916903B0916A03ED
:10B11000BC01CD010E945979DC01CB01BC01CD01FC
:10B1200028EF3AE240E050E00E94CD79190102C0D8
:10B130002224332480919E0790919F07893C91059A
:10B140001CF088EC90E005C088539F4F34F488E3EE
:10B150009FEF90939F0780939E078091A9079091FE
:10B16000AA07893C91051CF088EC90E005C0885343
:10B170009F4F34F488E39FEF9093AA078093A90729
:10B180008091AB079091AC07AA2797FDA095BA2FA5
:10B190002091EF07A22EBB24CC24DD24BC01CD01DD
:10B1A000A60195010E9459799B01AC0180919E07EF
:10B1B00090919F07AA2797FDA095BA2F17E0880FB7
:10B1C000991FAA1FBB1F1A95D1F7280F391F4A1FB5
:10B1D0005B1F57FF04C0215C3F4F4F4F5F4FA6E0FE
:10B1E0005595479537952795AA95D1F77201E20EA7
:10B1F000F31EF092AC07E092AB0780919C07909110
:10B200009D07AA2797FDA095BA2FBC01CD01A601E5
:10B2100095010E9459799B01AC018091A9079091F9
:10B22000AA07AA2797FDA095BA2FF7E0880F991FC4
:10B23000AA1FBB1FFA95D1F7280F391F4A1F5B1FA2
:10B2400057FF04C0215C3F4F4F4F5F4FE6E05595DD
:10B25000479537952795EA95D1F78101020F131F7E
:10B2600010939D0700939C078091EA079091EB074C
:10B27000880F991FAA2797FDA095BA2F2091A307A1
:10B28000332744275527BC01CD010E9459795B0122
:10B290006C0197FF08C08FE390E0A0E0B0E0A80E3B
:10B2A000B91ECA1EDB1E76E0D594C794B794A79446
:10B2B0007A95D1F78091B807282F3327442755274F
:10B2C0008091530390915403A0915503B09156037C
:10B2D000BC01CD010E945979DC01CB01BC01CD013B
:10B2E00020EF35E540E050E00E94CD79B501620FD6
:10B2F000731F7093EB076093EA0791E0E91690E102
:10B30000F90634F080E090E19093AC078093AB07AE
:10B310008091AB079091AC078050904F34F480E05F
:10B3200090EF9093AC078093AB070150104134F03D
:10B3300080E090E190939D0780939C0780919C070B
:10B3400090919D078050904F34F480E090EF90935F
:10B350009D0780939C076150704134F080E090E13C
:10B360009093EB078093EA078091EA079091EB07AF
:10B370008050904F34F480E090EF9093EB078093EF
:10B38000EA0780910001482F552780911D01909177
:10B390001E014817590794F420911D0130911E0198
:10B3A00068A179A1649FC001659F900D749F900D65
:10B3B0001124B9010E94847979A368A388A199A175
:10B3C000880F991F880F991F99A388A34091100691
:10B3D00040FF92C6992009F08FC6772009F08CC6ED
:10B3E000CC24DD24460180910303909104039093C3
:10B3F000D9058093D80520918603309187032115C4
:10B40000310509F03FC080911301909114018959D1
:10B41000934058F087B5853F20F4809136028150E3
:10B4200011C081E08093E0034EC0809113019091A0
:10B4300014018436910508F587B58B30D0F08091E2
:10B4400036028F5F809336029AE0890290011124C0
:10B450008091FF05821B87BD8CE291E090932202D0
:10B46000809321028EE591E0909387038093860379
:10B470002AC081E08093DF0326C07092DF037092C0
:10B48000E00321C080910D0390910E03A0910F0362
:10B49000B091100354E0880F991FAA1FBB1F5A9543
:10B4A000D1F78093370290933802A0933902B0937A
:10B4B0003A02D0923502C09234022150304030938B
:10B4C0008703209386032091AD0141FF24C02233DE
:10B4D000D8F48091BF0181508093BF018F3FD9F58F
:10B4E0001092280380910D0390910E03A0910F03F9
:10B4F000B09110038093090390930A03A0930B0368
:10B50000B0930C0381E004C081E08093280388ECB1
:10B510008093BF0120C08091990190919A01820F80
:10B52000911D209115063327829FF001839FF00D16
:10B53000929FF00D1124CF01AA2797FDA095BA2F55
:10B540008093090390930A03A0930B03B0930C0319
:10B5500081E08093280380916F0390917003A09104
:10B560007103B0917203E0909501F0909601009103
:10B57000970110919801BC01CD01A80197010E948B
:10B58000CD7959016A018091670390916803A09178
:10B590006903B0916A03BC01CD01A80197010E9423
:10B5A000CD79B901C5010E9482773C01CC971CF08E
:10B5B0004CE3642E712CC3010E94BF6B3C0180E2FE
:10B5C0008093940180912803882309F421C48091F9
:10B5D000E70299279C012071307084FD19C46091A5
:10B5E000660660FD04C08091100681FD07C008A1B9
:10B5F00019A13093D6032093D50397C18091E70218
:10B6000081FF69C14091BB015091BC01CA010F96F5
:10B61000209113033091140382179307ACF58091A6
:10B62000DF03882389F58091E10381FF13C08D7FBB
:10B630008093E10380910D0390910E03A0910F037D
:10B64000B09110038093090390930A03A0930B0316
:10B65000B0930C038091E10381608093E103241B8C
:10B66000350B2F50304037FF03C0309521953F4FA9
:10B670008091D5039091D603820F931F9093D603A8
:10B680008093D5038BE26EC0CA010F972817390744
:10B69000ACF58091E003882389F58091E10380FF78
:10B6A00013C08E7F8093E10380910D0390910E0370
:10B6B000A0910F03B09110038093090390930A03A4
:10B6C000A0930B03B0930C038091E10382608093FD
:10B6D000E103241B350B215F3F4F37FF03C030953B
:10B6E00021953F4F8091D5039091D603821B930BF8
:10B6F0009093D6038093D5038DE234C02091E1036B
:10B70000822F992783709070892B59F12C7F209379
:10B71000E1031092D6031092D50320910D033091CE
:10B720000E0340910F0350911003209309033093AF
:10B730000A0340930B0350930C0361FF06C084EF90
:10B7400091E090932202809321028091110388233B
:10B7500041F423333105410551051CF081E080930C
:10B7600011038DE3809394012091D5033091D6038A
:10B77000C90137FF04C088279927821B930B81508A
:10B7800092400CF491C0809115069927289FA00142
:10B79000299F500D389F500D1124CA0160E075E0BB
:10B7A0000E949879CB01AA2797FDA095BA2F2091E6
:10B7B000090330910A0340910B0350910C03280FA9
:10B7C000391F4A1F5B1F2093090330930A034093DC
:10B7D0000B0350930C031092D6031092D503A09044
:10B7E0000D03B0900E03C0900F03D0901003D6014C
:10B7F000C50180509440A040B04082179307A40731
:10B80000B5075CF4D601C50180509C4FAF4FBF4FC8
:10B81000281739074A075B0744F080930903909380
:10B820000A03A0930B03B0930C038091660681FF7B
:10B8300006C08BE490E090932202809321028091D5
:10B840001906882389F5409103035091040357FF9B
:10B8500002C04D5F5F4F559547955595479580912F
:10B860001D0190911E01209100013327489FB001D6
:10B87000499F700D589F700D1124CB01B9010E9492
:10B8800098797093BC016093BB01663471051CF418
:10B8900086E490E005C06739710534F086E990E0F0
:10B8A0009093BC018093BB018091860390918703A4
:10B8B000892BB9F180910D0390910E03A0910F0394
:10B8C000B09110038093090390930A03A0930B0394
:10B8D000B0930C0326C080910D0390910E03A091AC
:10B8E0000F03B091100380599140A040B040809365
:10B8F000090390930A03A0930B03B0930C03809168
:10B900001906882311F0992702C088E790E09093E8
:10B91000BC018093BB0188A199A1909304038093FB
:10B9200003030091030310910403A0900D03B09052
:10B930000E03C0900F03D0901003209109033091A3
:10B940000A0340910B0350910C032A153B054C054B
:10B950005D0524F08091660680FD9CC2809186037F
:10B9600090918703892B39F0009103031091040310
:10B97000CC24DD24C9C0D601C501821B930BA40BC6
:10B98000B50B8093A4039093A503A093A603B09353
:10B99000A7038230E0E89E07EFEFAE07EFEFBE07A8
:10B9A0002CF481E090E8AFEFBFEF09C08F5F9F47B5
:10B9B000A040B04064F08FEF9FE7A0E0B0E080933C
:10B9C000A4039093A503A093A603B093A703C090EC
:10B9D000A403D090A5038091AC01282F33274427DE
:10B9E00055278091A4039091A503A091A603B0913F
:10B9F000A703BC01CD010E94597997FF04C0615E85
:10BA00007F4F8F4F9F4F25E0959587957795679549
:10BA10002A95D1F76093A4037093A5038093A6039E
:10BA20009093A70365302EEF72072FEF82072FEF59
:10BA300092072CF484E09EEFAFEFBFEF09C0605097
:10BA400074408040904064F080E094E0A0E0B0E07A
:10BA50008093A4039093A503A093A603B093A70398
:10BA60008090A4039090A503209134023091350278
:10BA700037FF02C0295F3F4F83E0359527958A95B0
:10BA8000E1F74FEF223834071CF421E83FEF05C0FF
:10BA90002038310514F020E830E0C901AA2797FDCD
:10BAA000A095BA2F2091AE01332744275527BC011A
:10BAB000CD010E94597997FF04C06D5F7F4F8F4F72
:10BAC0009F4FB2E09595879577956795BA95D1F791
:10BAD0009B015FEF613075071CF420E03FEF06C06B
:10BAE0006F3F710519F014F020E031E08091E1031F
:10BAF000882341F0C90137FD03969C0135952795B0
:10BB000035952795820E931E2091AB01222309F4CF
:10BB100054C060912F037091300380913103909154
:10BB2000320397FF04C061587F4F8F4F9F4FF7E05C
:10BB30009595879577956795FA95D1F7332744279B
:10BB400055270E94597997FF04C0615E7F4F8F4F40
:10BB50009F4FE5E09595879577956795EA95D1F79D
:10BB60006093A4037093A5038093A6039093A70307
:10BB70006138AFEF7A07AFEF8A07AFEF9A072CF47F
:10BB800080E89FEFAFEFBFEF0AC06F3F71058105FF
:10BB9000910569F064F080E091E0A0E0B0E080936E
:10BBA000A4039093A503A093A603B093A703809149
:10BBB000A4039091A503880E991E8091A901282FB6
:10BBC000332780916708992787FD9095289FF0017A
:10BBD000299FF00D389FF00D11249F01F7FF02C03F
:10BBE00021583F4F220F232F221F330BFFEF213805
:10BBF0003F071CF420E83FEF06C02F3F310519F046
:10BC000014F020E031E0820E931EC401AA2797FDB4
:10BC1000A095BA2FE0900303F09004039701442706
:10BC200037FD4095542FBC01CD010E94597997FFF3
:10BC300004C061507E4F8F4F9F4F59E09595879577
:10BC4000779567955A95D1F7061B170B8091D50309
:10BC50009091D603892B09F060C01E141F040CF0CC
:10BC60005CC09601D7FE03C0309521953F4F2D3320
:10BC7000310540F48091D9039091DA038017910740
:10BC800074F526C02C53304045E0369527954A95EB
:10BC9000E1F72031310510F02FE030E04091D90379
:10BCA0005091DA031C141D04E4F480E190E0821B3F
:10BCB000930B489F9001499F300D589F300D1124E0
:10BCC00094E0369527959A95E1F72017310720F5EE
:10BCD0008091BD019091BE0108171907F4F08C0105
:10BCE0001CC0205F3F4F8091BD019091BE01829F9B
:10BCF000B001839F700D929F700D11249B0184E011
:10BD0000369527958A95E1F74017510714F08A0177
:10BD100004C00217130708F08901C801AA2797FD7C
:10BD2000A095BA2F1DE0880F991FAA1FBB1F1A9557
:10BD3000D1F79301442737FD4095542FBC01CD0125
:10BD40000E94CD792093A8033093A9034093AA03BE
:10BD50005093AB030091A8031091A9038091D703DE
:10BD60009091D8039C01220F331F280F391F200FF9
:10BD7000311F37FF02C02D5F3F4FA90155954795F1
:10BD8000559547955093D8034093D703809111065A
:10BD9000282F3327220F331F220F331F2417350775
:10BDA0006CF48091E907282F3327220F331F220FCD
:10BDB000331F205530404217530724F03093D803E7
:10BDC0002093D7038091660680FF0DC08091D70332
:10BDD0009091D803A8A1B9A18A179B0724F0B0932A
:10BDE000D803A093D70328A139A12E193F0937FF03
:10BDF00002C02D5F3F4F3595279535952795E091EA
:10BE0000D703F091D803E20FF31FF9A3E8A342C0D0
:10BE100080911906882301F5609103037091040352
:10BE200077FF02C06D5F7F4F759567957595679534
:10BE300040911D0150911E0180910001282F332750
:10BE4000649FC001659F900D749F900D1124B901EE
:10BE50000E949879CB0101C099279093BC018093EF
:10BE6000BB018091BB019091BC01873491051CF40A
:10BE700086E490E005C08639910534F086E990E0CB
:10BE80009093BC018093BB01E8A0F9A0F092D80385
:10BE9000E092D7038091E70299279C0122703070CD
:10BEA00081FF1CC18091DB039091DC03A091DD0335
:10BEB000B091DE030097A105B10521F08091110337
:10BEC0008130B1F408A119A1C801AA2797FDA09556
:10BED000BA2F2EE0880F991FAA1FBB1F2A95D1F7F2
:10BEE0008093DB039093DC03A093DD03B093DE0328
:10BEF00080911103813019F482E08093110328A10D
:10BF000039A1C901AA2797FDA095BA2F930144270B
:10BF100037FD4095542FBC01CD010E945979DC01B9
:10BF2000CB018093A8039093A903A093AA03B09395
:10BF3000AB03B7FF04C08150904EAF4FBF4F5C01C1
:10BF40006D010DE0D594C794B794A7940A95D1F7E5
:10BF5000A092A803B092A903C092AA03D092AB0307
:10BF60006091E8027091E9023FE0603A730750F592
:10BF70008091DB039091DC03A091DD03B091DE039F
:10BF80009C01AD011AE056954795379527951A956E
:10BF9000D1F7821B930BA40BB50BA6019501F4E01E
:10BFA000220F331F441F551FFA95D1F7820F931F9D
:10BFB000A41FB51F8093DB039093DC03A093DD03E4
:10BFC000B093DE0360547F4118F58091DB039091BC
:10BFD000DC03A091DD03B091DE039C01AD01ECE038
:10BFE0005695479537952795EA95D1F7821B930B80
:10BFF000A40BB50BA601950172E0220F331F441F5D
:10C00000551F7A95D1F7820F931FA41FB51F29C022
:10C0100080913402909135028091340290913502E2
:10C0200097FF03C0909581959F4F843691050CF53D
:10C030008091DB039091DC03A091DD03B091DE03DE
:10C040009C01AD016EE056954795379527956A9509
:10C05000D1F7821B930BA40BB50B8A0D9B1DAC1D56
:10C06000BD1D8093DB039093DC03A093DD03B093AD
:10C07000DE038091DB039091DC03A091DD03B0919E
:10C08000DE032EE0B695A795979587952A95D1F76B
:10C09000909304038093030340911706442399F07F
:10C0A00055279C01BA010E949879C901861B970BFC
:10C0B0009093DA038093D903260F371F3093BE0184
:10C0C0002093BD0119C01092DA031092D9038FEFAB
:10C0D00093E09093BE018093BD010EC010921103B6
:10C0E0001092DB031092DC031092DD031092DE034A
:10C0F00030930403209303035091B00758AB252FCE
:10C100003327220F331F220F331F285D3F4F68A1B3
:10C1100079A12617370714F039A328A37091E907EE
:10C1200079AB872F9927880F991F880F991F805502
:10C130009040A8A1B9A18A179B0714F499A388A3DA
:10C1400080916C02882321F480916E088F3FA1F0CA
:10C150008091E8029091E9020297C09768F4E8A103
:10C16000F9A11E161F0644F481E090E09093E902C5
:10C170008093E80239A328A3E8A0F9A0F092BD05B6
:10C18000E092BC058091A0039091A103A091A2032D
:10C19000B091A30312E0880F991FAA1FBB1F1A9525
:10C1A000D1F7C090EA07D090EB07C81AD90A8701E7
:10C1B000013A11058CF0C701F7FC0196959587951A
:10C1C0008C159D050CF46C01909581959F4FC816B8
:10C1D000D90694F46C0110C011E5C116D1041CF00D
:10C1E000E0E5CE2ED12C20EBC2162FEFD20624F4A0
:10C1F00070EBC72E7FEFD72E49A9242F3327220FAC
:10C20000331F220F331FC90168A179A1861B970B29
:10C210008C159D050CF46C0188A199A1821B930BD0
:10C22000C816D9060CF46C018091AB079091AC074D
:10C230006091190370911A03861B970B9093BA07AC
:10C240008093B907A090C807209137033091380335
:10C250004091390350913A03AA2041F0461A570AF7
:10C26000C201AA2797FDA095BA2F04C0AA2797FD5F
:10C27000A095BA2F280F391F4A1F5B1F2093370341
:10C28000309338034093390350933A038091370336
:10C2900090913803A0913903B0913A0381509A4F9D
:10C2A000A040B04064F080E09AEFA0E0B0E080935E
:10C2B000370390933803A0933903B0933A038091E6
:10C2C000370390913803A0913903B0913A0380501D
:10C2D0009640AF4FBF4F64F480E096E0AFEFBFEF02
:10C2E0008093370390933803A0933903B0933A03B4
:10C2F000B09026062B2D33278091B9079091BA076D
:10C30000289F7001299FF00C389FF00C1124970191
:10C31000F7FE02C0295F3F4F790153E0F594E7949F
:10C320005A95E1F70091AF011091B00198014427AF
:10C3300037FD4095542F8091370390913803A09199
:10C340003903B0913A03BC01CD010E94CD79E20ED0
:10C35000F31E90909B01692D7727882799279601D6
:10C36000D7FE04C0222733272C193D0937FF02C00E
:10C370002F5F3F4F3595279548A159A1240F351FB1
:10C38000442737FD4095542F0E94597997FF04C0E8
:10C39000615C7F4F8F4F9F4F26E0959587957795EE
:10C3A00067952A95D1F79B016E157F050CF47B01EB
:10C3B000309521953F4FE216F3060CF479018091F8
:10C3C0009C0790919D076091170370911803861B3D
:10C3D000970B90939B0780939A072091330330919A
:10C3E00034034091350350913603AA2041F0261AB8
:10C3F000370AC101AA2797FDA095BA2F04C0AA2722
:10C4000097FDA095BA2F280F391F4A1F5B1F209355
:10C4100033033093340340933503509336038091B4
:10C42000330390913403A0913503B09136038150CA
:10C430009A4FA040B04064F080E09AEFA0E0B0E0F6
:10C440008093330390933403A0933503B093360362
:10C450008091330390913403A0913503B09136035A
:10C4600080509640AF4FBF4F64F480E096E0AFEF4E
:10C47000BFEF8093330390933403A0933503B093BD
:10C4800036032B2D332780919A0790919B07289F85
:10C49000D001299FB00D389FB00D11249D01B7FF29
:10C4A00002C0295F3F4F5901B3E0B594A794BA95F4
:10C4B000E1F79801442737FD4095542F80913303CD
:10C4C00090913403A0913503B0913603BC01CD01A6
:10C4D0000E94CD79A20EB31E692D77278827992750
:10C4E0009601D7FE04C0222733272C193D0937FFB8
:10C4F00002C02F5F3F4F35952795E8A1F9A12E0F78
:10C500003F1F442737FD4095542F0E94597997FFCC
:10C5100004C0615C7F4F8F4F9F4FF6E095958795E4
:10C5200077956795FA95D1F79B016A157B050CF411
:10C530005B01309521953F4FA216B3060CF45901CB
:10C54000EAEC6E2EE6E07E2E71E8872E76E0972EDE
:10C550006BE0362E59EC452E57E0552ED4012C9128
:10C5600012160CF0DFC0203419F408A119A11EC066
:10C57000E8A1F9A1CF01AA2797FDA095BA2F3327EB
:10C5800027FD3095432F532FBC01CD010E945979CF
:10C5900097FF04C0615C7F4F8F4F9F4F46E095959A
:10C5A0008795779567954A95D1F78B01F40121819D
:10C5B000203419F40E0D1F1D22C0203C19F40E1951
:10C5C0001F091DC0C701AA2797FDA095BA2F3327C1
:10C5D00027FD3095432F532FBC01CD010E9459797F
:10C5E00097FF04C0615C7F4F8F4F9F4F36E095955A
:10C5F0008795779567953A95D1F7060F171FF40140
:10C600002281203419F40A0D1B1D22C0203C19F48C
:10C610000A191B091DC0C501AA2797FDA095BA2FAD
:10C62000332727FD3095432F532FBC01CD010E94A6
:10C63000597997FF04C0615C7F4F8F4F9F4F26E071
:10C6400095958795779567952A95D1F7060F171FCA
:10C65000F4012381203419F40C0D1D1D22C0203C4F
:10C6600019F40C191D091DC0C601AA2797FDA09534
:10C67000BA2F332727FD3095432F532FBC01CD010F
:10C680000E94597997FF04C0615C7F4F8F4F9F4F85
:10C69000B6E09595879577956795BA95D1F7060F8A
:10C6A000171FD2018D919C91801791075CF4BC01FA
:10C6B000600F711F77FF02C06F5F7F4F8B01159571
:10C6C000079504C0000F111F081B190BB8A98B2F69
:10C6D0009927880F991F880F991F8017910754F485
:10C6E000E9A98E2F9927880F991F880F991F08177E
:10C6F00019070CF08C01C80117FD039695958795D5
:10C7000095958795F3018183880F991F880F991F4D
:10C710009801281B390BC901880F8283D2010D9320
:10C720001C9303C0F301118212823A9402E010E0DC
:10C73000400E511E24E030E0820E931E48E050E08F
:10C74000640E751E37FE0ACFE2E1CB5C0C94047ACE
:10C750008091EE039091EF03A091F003B091F1036B
:10C760008093E6039093E703A093E803B093E90373
:10C770008091EA039091EB03A091EC03B091ED035B
:10C780008093E2039093E303A093E403B093E50363
:10C7900008951092F9031092F8031092F703109283
:10C7A000F603089584B1806A84B93D9A82E58CBD10
:10C7B0001DBC459A81E08093FB078AEA80930C08B0
:10C7C00083E880930D088AE080930E081092100889
:10C7D00010920F0810921208109211081092660819
:10C7E00010922E0808953091FB07332309F085C07D
:10C7F0000DB407FE82C084E080932002459A2EB5D6
:10C800008091FD0399278130910589F0823091054F
:10C810001CF4892B21F03EC00297B9F03BC0309345
:10C820002D082093FE032138A9F581E008C02535A5
:10C8300049F48091FE03820F8093FE0382E080938F
:10C84000FD0328C03093FD0325C080912D08E82FFB
:10C85000FF27E75BF74F20838F5F80932D08909130
:10C86000FE038A31A0F0291769F48AE1A9E4B8E04F
:10C87000EFE2F8E00D9001928A95E1F781E0809374
:10C880002E0802C030932E081092FD0303C0920FB1
:10C890009093FE0320910B08203208F028C04598A1
:10C8A0000000000000000000000000000000000088
:10C8B0000000000000000000000000000000000078
:10C8C0000000000000000000000000000000000068
:10C8D000E0910408F0910508E20FF11D80818EBD02
:10C8E00080912B089081890F80932B0803C081E0F1
:10C8F0008093FB072F5F20930B080895EF92FF9220
:10C900000F931F9380911F069927880F991F880FF7
:10C91000991F7C010027F7FC0095102F80916F0371
:10C9200090917003A0917103B0917203BC01CD018D
:10C93000A80197010E94CD793093100820930F0829
:10C940008091670390916803A0916903B0916A0395
:10C95000BC01CD01A80197010E94CD793093120846
:10C96000209311082091F1073091F2074091F307CD
:10C970005091F407DA01C901E3E0880F991FAA1F5B
:10C98000BB1FEA95D1F7820F931FA41FB51F820F1B
:10C99000931FA41FB51F20919501309196014091DE
:10C9A000970150919801BC01CD010E94CD7930933F
:10C9B000180820931708809180039091810320919B
:10C9C000420230914302821B930B90931E08809386
:10C9D0001D08E0917603F09177038091C007909154
:10C9E000C107BF010E949879CB019B01220F331F21
:10C9F000220F331F280F391F280F391F37FF02C09E
:10CA00002D5F3F4F35952795359527953093140821
:10CA1000209313088091ED079091EE07BF010E94CB
:10CA200098799B01220F331F220F331F260F371FC8
:10CA3000260F371F37FF02C02D5F3F4F35952795D3
:10CA40003595279530931608209315081092770393
:10CA5000109276031092C1071092C0071092EE0751
:10CA60001092ED0780910E0899278D30910509F4F9
:10CA700066C08E3091055CF48B30910509F48EC050
:10CA80008C3091050CF00FC10A9761F0A8C18F306E
:10CA9000910509F47CC18F3091050CF45CC140977D
:10CAA00099F19DC18091FC0280931F088091FB0247
:10CAB000809320088091FA02809321088091F902E6
:10CAC000809322088091F802809323088091F702D6
:10CAD000809324088091F602809325088091F502C6
:10CAE000809326088091E702809327088091E702CF
:10CAF000837F8093E7020E94852F8093280880918E
:10CB00007303809329086BC180916808909169082C
:10CB10009093200880931F0880916C0890916D0875
:10CB2000909322088093210880911D0190911E010D
:10CB300080932308809100018093240850C1809144
:10CB4000510680931F08809152068093200880919F
:10CB50005306809321088091540680932208809187
:10CB6000550680932308809159068093240880916C
:10CB70005A068093250880915B0680932608809151
:10CB80005E068093270880915C0680932808809138
:10CB90005D068093290880915F06DAC0F894809141
:10CBA0000606E82FFF27EE0FFF1FE55DF84F019007
:10CBB000F081E02DE038F1051CF0EFE7F0E006C071
:10CBC0002FEFE138F20714F4E1E8FFEFE0931F08DC
:10CBD00080910706E82FFF27EE0FFF1FE55DF84F56
:10CBE0000190F081E02DE038F1051CF0EFE7F0E076
:10CBF00006C06FEFE138F60714F4E1E8FFEFE093C9
:10CC0000200880910506E82FFF27EE0FFF1FE55D46
:10CC1000F84F0190F081E02DE038F1051CF0EFE7CE
:10CC2000F0E006C08FEFE138F80714F4E1E8FFEF19
:10CC3000E093210880910406E82FFF27EE0FFF1FE5
:10CC4000E55DF84F0190F081E02DE038F1051CF032
:10CC5000EFE7F0E006C02FEFE138F20714F4E1E867
:10CC6000FFEF7894E093220880911C0380932308BF
:10CC700080911D038093240880911E0380932508D2
:10CC800080911F03809326088091200380932708BA
:10CC900080912103809328088091220380932908A2
:10CCA0008091230355C080915B04863018F0109268
:10CCB0005B0485E080931F088091600680932008C4
:10CCC00080910D0390910E03A0910F03B09110037A
:10CCD000BC01CD0125E030E040E050E00E94CD797C
:10CCE00030932208209321088091090390910A0330
:10CCF000A0910B03B0910C03BC01CD0125E030E005
:10CD000040E050E00E94CD7930932408209323081E
:10CD100080915606809325088091570680932608B7
:10CD2000809158068093270880911B0380932808E0
:10CD300080912B0790912C07809329088091BC0546
:10CD40009091BD0597FD0396959587959595879547
:10CD500080932A0844C010921F0880E58093200821
:10CD600083E0809321088EE0809322088091020165
:10CD7000809323088091400480932408809141048B
:10CD800080932508809142048093260828C08091D2
:10CD9000380680931F088091650680932008809153
:10CDA000A10180932108809131068093220880910F
:10CDB0003206809323088091330680932408809163
:10CDC000A0018093250880913506809326088091E4
:10CDD0003606809327088091370680932808809133
:10CDE0002E08882309F4CFC08AEF8093E801409190
:10CDF000300850913108CA0181509E4F8F5F934097
:10CE0000B0F42091320830913308C90181509E4F0F
:10CE10008F5F934060F48091100685FF08C05093A7
:10CE2000F9034093F8033093F7032093F6038091BE
:10CE300036089091370821E08936920724F49093C0
:10CE40002E0380932D0380912D0390912E0320912A
:10CE50002B0330912C03821B930B845E9D4F68E65D
:10CE600071E00E949879845B904090932A038093AC
:10CE7000290320913A0830913B088091210290913A
:10CE800022028217930740F480915B04882321F4E7
:10CE9000309322022093210280912F08992788360F
:10CEA000910549F18936910524F48736910531F0D1
:10CEB00072C08936910509F445C06DC080913C0867
:10CEC0008093630880913D088093650880913E08B7
:10CED0008093640880913F088093660880914008A1
:10CEE00080936708809141088093E901809142080E
:10CEF0008093FC0350C080913C0880930608809189
:10CF00003D088093070880913E088093080880912F
:10CF10003F08809309088091400880930A08809117
:10CF2000AC0590914108892B8093AC059091420803
:10CF30009093FA038091AD0583709C70892B809348
:10CF4000AD0529C080913C088093FC0780913D0885
:10CF50008093FD0780913E088093FE0780913F08F3
:10CF60008093FF07809140089091410890930108B9
:10CF700080930008809142089091430890930308A1
:10CF80008093020808C01092F9031092F8031092DF
:10CF9000F7031092F6031F910F91FF90EF90089501
:10CFA0008091FB07882309F43BC045988CE098E00A
:10CFB00090930508809304089091FB03E92FFF27C5
:10CFC000E152FE4F9F5F9093FB03808180930E0898
:10CFD000993010F01092FB031092FB070E947E64C0
:10CFE00081E080930B0800000000000000000000BA
:10CFF0000000000000000000000000000000000031
:10D000000000000000000000000000000000000020
:10D0100000000000000080910C0880932B088EBD5A
:10D02000089587B18C6087B94298439810920004A4
:10D0300080E88093EB011092FF038093EA0108954A
:10D04000809105048150809305048F3F09F0F4C05E
:10D0500094E0909305048091E702807BE1F0809159
:10D060004F06882349F080910804882311F4909397
:10D07000000481E080930804809150068823B9F071
:10D0800080910904882319F484E08093FF0381E0F0
:10D09000809309040CC08093080480930904809154
:10D0A0004B068093060480914D068093070480917F
:10D0B0000804882309F040C080916406282F332794
:10D0C00024FF07C080911203882319F425FD4DC069
:10D0D0004EC090914C06983F50F08091C2078D3D14
:10D0E00030F08091060488230CF43FC040C0983F84
:10D0F00048F08091C2078A3028F480910604882382
:10D10000B4F133C0809100048150809300048F3FBC
:10D1100079F58091C2078150809300048091EB01E2
:10D12000813011F480E801C086958093EB018091F5
:10D13000EB019091060417C0809100048150809308
:10D1400000048F3FA9F489E0809300048091EB01F3
:10D15000813011F480E801C086958093EB018091C5
:10D16000EB0190914F06892311F0429A01C0429839
:10D1700080910904882309F043C080916406282F18
:10D18000332724FF07C080911203882319F426FD5A
:10D1900050C034C090914E06983F50F08091E807FF
:10D1A0008D3D30F08091070488230CF442C026C0E6
:10D1B000983F48F08091E8078A3028F4809107046E
:10D1C0008823E4F036C08091FF0381508093FF03F1
:10D1D0008F3F91F58091E80781508093FF03809104
:10D1E000EA01813011F480E801C086958093EA015C
:10D1F0008091EA01909107048923D9F44398089516
:10D200008091FF0381508093FF038F3FA9F489E051
:10D210008093FF038091EA01813011F480E801C01E
:10D2200086958093EA018091EA01909150068923C6
:10D2300011F0439A0895439808954FB724E130E0E0
:10D24000F8948091C9008F778093C9008091C900BC
:10D250008F7B8093C9008091C9008F7D8093C90026
:10D260005A9A52985B9A539A832F99278093CD00AC
:10D270002093CC008091C80082608093C80080E138
:10D280008093C9008091CA008F778093CA008091F3
:10D29000CA008F7B8093CA008091CA008F7D8093E3
:10D2A000CA008091CA008F7E8093CA008091CA0014
:10D2B000877F8093CA008091C9008B7F8093C900CB
:10D2C0008091CA0084608093CA008091CA00826005
:10D2D0008093CA008091C80087FF03C08091CE0070
:10D2E000F9CF8091C90080688093C9004FBF08952D
:10D2F000FF920F931F93CF93DF9380E197E20E94F9
:10D300008C16EC01FF248091C9008F778093C900AF
:10D310008091C9008F7E8093C9005A988FE29AE06D
:10D320009F938F9309E612E11F930F93E0912704D7
:10D33000F091280409950F900F900F900F9002C064
:10D340004A996CC0CE010E9495168823C9F3E091DA
:10D350002704F0912804FF2009F468C085E69AE0CC
:10D360009F938F931F930F930995529A0F900F904D
:10D370000F900F90CE010E9495168823D9F383E673
:10D3800090E05A9A019797FFFCCF8FE891E05A9866
:10D39000019797FFFCCF89E090E05A9A019797FF99
:10D3A000FCCF89E090E05A98019797FFFCCF8FE877
:10D3B00091E05A9A019797FFFCCF8FE891E05A9835
:10D3C000019797FFFCCF89E090E05A9A019797FF69
:10D3D000FCCF89E090E05A98019797FFFCCF8FE847
:10D3E00091E05A9A019797FFFCCF8FE891E05A9805
:10D3F000019797FFFCCF89E090E05A9A019797FF39
:10D40000FCCF89E090E05A98019797FFFCCF8FE816
:10D4100091E05A9A019797FFFCCF13C08AE590E0FC
:10D420000E948C16EC0191E0F92E91CF8BE69AE0E8
:10D430009F938F931F930F9309950F900F900F90C9
:10D440000F9052985A980E941D69E5E0CDB7DEB75B
:10D450000C94117AEF92FF920F931F93CF93DF9367
:10D46000482F00E010E08091EC01813061F41092CF
:10D47000EC0184E480930A0410920C0410920B04D3
:10D4800010920D042BC180910A04882319F421E025
:10D4900030E001C0980190910B04992371F4232B83
:10D4A00011F081E010C084E480930A0490930C048E
:10D4B00090930B0490930D04FAC0913069F4232BE0
:10D4C00009F0EBC082E080930B0480910C048F5F25
:10D4D00080930C0483E0E9C09230D1F4232B09F04F
:10D4E000DCC083E080930A0440930D0490910C0407
:10D4F000923039F410920E0447FF03C081E080930C
:10D500000E0483E080930B049F5F90930C04CFC0C4
:10D51000933009F0C2C0232B09F0BFC090930A04D6
:10D5200082E080930B0480910C048F5F80930C0445
:10D5300020910D04822F9927782F6627842F992711
:10D54000682B792B80912A06813049F47370CB01C6
:10D550008050924063E070E00E94987917C082305A
:10D5600061F47770CB018050944066E070E00E94D7
:10D5700098792695269526950BC07370685671404C
:10D58000CB0177FD0196BC0175956795269526958B
:10D59000022F11270F7010700F5F1F4F0D301105F4
:10D5A00008F074C07801E00EF11EF701E55DF84F58
:10D5B000808191819B01281B390BC90137FF03C072
:10D5C000909581959F4F069794F480911B03883C1A
:10D5D00030F480911B03865F80931B0308C088ECA6
:10D5E00080931B0380916F008F7D80936F00F70104
:10D5F000E55DF84F808191819C01220F331F280F38
:10D60000391F260F371F37FF02C02D5F3F4FE9013B
:10D61000D595C795D595C795CB0101968C179D07D4
:10D6200014F4219706C061507040C617D7070CF458
:10D63000219680911B03843BD0F0F701E55DF84F04
:10D6400080819181FE01E81BF90BCF0163E070E05E
:10D650000E949879CB01880F991F860F971F2FE59D
:10D6600037E0E20EF31EF7019183808307C02FE5B8
:10D6700037E0E20EF31EF70111821082000F111F36
:10D68000055D184FF801D183C08311C00231110527
:10D6900070F081E08093EC010AC081E08093EC019E
:10D6A00010920C0410920E0484E480930A0480917A
:10D6B0000C04803198F080910E04882331F480911D
:10D6C000EC01882311F48093930110920C041092C2
:10D6D0000E0410920B0484E480930A04E6E0CDB7B4
:10D6E000DEB70C94107ACF93FC0197FF05C0CFEF03
:10D6F000F095E195FF4F01C0C1E028E631E0CF0190
:10D70000B9010E949879FC018B35910554F08B5535
:10D7100090408A35910538F484EB90E08E1B9F0B86
:10D72000FC0141E00DC0CF01855B90408A35910539
:10D7300018F4E45BF04003C02E1B3F0BF9014FEFE0
:10D74000EE0FFF1FEA58F54F259134918C2F992742
:10D7500087FD9095289FB001299F700D389F700D0F
:10D760001124842F992787FD9095689FA001699FB8
:10D77000500D789F500D1124CA01CF9108952AE5CC
:10D7800030E0281B390BC9010E94736B0895CF93B9
:10D79000DF9380E00E94287180911D0190911E010D
:10D7A0006AE070E00E9498799F938F9380911D01A9
:10D7B00090911E016AE070E00E9498797F936F93C8
:10D7C00084E49BE09F938F93CBE1D1E7DF93CF93EA
:10D7D000E0912704F091280409952DB73EB7285F02
:10D7E0003F4F2DBF8091E8018823B9F186E00E9468
:10D7F000287180910008909101086AE070E00E9411
:10D8000084797F936F938FED90E09F938F938091B6
:10D81000F1079091F207A091F307B091F4072091DE
:10D820009501309196014091970150919801BC016A
:10D83000CD010E94CD793F932F938DE49BE09F9380
:10D840008F93DF93CF93E0912704F09128040995FB
:10D850008DB79EB70A968DBF12C086E00E942871D0
:10D8600089E59BE09F938F93DF93CF93E09127040B
:10D87000F091280409950F900F900F900F908091D0
:10D88000FA038823C1F086E00E9428718091FA0390
:10D8900099279F938F9380E69BE09F938F93DF93CD
:10D8A000CF93E0912704F091280409952DB73EB756
:10D8B0002A5F3F4F2DBF80E10E9428718091F301C4
:10D8C0009091F4016CE370E00E9484799F938F93B0
:10D8D0008091F3019091F4016CE370E00E948479EF
:10D8E0007F936F9380916C0890916D089F938F93B5
:10D8F0008BE69BE09F938F93CBE1D1E7DF93CF93B0
:10D90000E0912704F09128040995809110062DB725
:10D910003EB7265F3F4F2DBF80FF29C08AE10E949E
:10D9200028718091940199279F938F9380910D0383
:10D9300090910E03A0910F03B0911003BC01CD0193
:10D9400024E630E040E050E00E94CD793F932F93F1
:10D9500088E79BE09F938F93DF93CF93E091270419
:10D96000F091280409958DB79EB708968DBFDF9179
:10D97000CF910895CF93DF9380E00E94287180912A
:10D98000E906992787FD90959F938F938091E106F3
:10D99000992787FD90959F938F938091D90699271A
:10D9A00087FD90959F938F938091D106992787FD4E
:10D9B00090959F938F938FE79BE09F938F93CBE1FD
:10D9C000D1E7DF93CF93E0912704F09128040995E4
:10D9D00080E10E9428712DB73EB7245F3F4F2DBFD5
:10D9E00080910907992787FD90959F938F93809148
:10D9F0000107992787FD90959F938F938091F90652
:10DA0000992787FD90959F938F938091F106992791
:10DA100087FD90959F938F938FE89BE09F938F93C3
:10DA2000DF93CF93E0912704F0912804099580912A
:10DA300002062DB73EB7245F3F4F2DBF853098F4C7
:10DA400080E10E9428718FE99BE09F938F93DF9381
:10DA5000CF93E0912704F091280409950F900F903F
:10DA60000F900F9018C08730B0F488E10E942871A1
:10DA70008FED90E09F938F9380EB9BE09F938F932C
:10DA8000DF93CF93E0912704F091280409958DB797
:10DA90009EB706968DBFDF91CF9108950F931F9388
:10DAA00080E00E9428712AE030E08091680890911F
:10DAB0006908B9010E9484799F938F9380916808C7
:10DAC00090916908B9010E9484797F936F93809146
:10DAD0001D0190911E01B9010E9498799F938F9327
:10DAE00080911D0190911E01B9010E9498797F9348
:10DAF0006F9389EB9BE09F938F930BE111E71F934B
:10DB00000F93E0912704F0912804099580E10E9489
:10DB100028718DB79EB70C968DBF80916C0890913F
:10DB20006D089F938F9380916A0890916B089F93E3
:10DB30008F938CEC9BE09F938F931F930F93E091B7
:10DB40002704F091280409958DB79EB708968DBFDC
:10DB50001F910F9108950F931F93CF93DF9380919F
:10DB6000E801CBE1D1E7882309F478C080E00E9486
:10DB700028718091FD0799279F938F938091FF07CC
:10DB800099279F938F9388ED9BE09F938F938E01AE
:10DB9000DF93CF93E0912704F091280409958DB786
:10DBA0009EB708968DBF8091FE07833031F48CE0DC
:10DBB0000E94287187EE9BE005C08CE00E942871CE
:10DBC0008CEE9BE09F938F93DF93CF93E09127049C
:10DBD000F091280409950F900F900F900F9080916D
:10DBE000FC0781FF12C08CE00E94287181EF9BE04E
:10DBF0009F938F931F930F93E0912704F091280434
:10DC000009950F900F900F900F9080E10E9428715E
:10DC10008FED90E09F938F9380910208909103087D
:10DC20009F938F9380910008909101086AE070E0C3
:10DC30000E9484797F936F9386EF9BE09F938F93ED
:10DC40008BE191E79F938F93E0912704F091280453
:10DC500009958DB79EB70A968DBF12C082E00E94CB
:10DC6000287186E09CE09F938F93DF93CF93E091A0
:10DC70002704F091280409950F900F900F900F90B2
:10DC8000DF91CF911F910F910895CF93C82F2091CD
:10DC90000F042093100499278F32910509F18033E6
:10DCA00091051CF44F97A1F02CC08F34910501F120
:10DCB0008F38910531F5222319F481E090E038C0C6
:10DCC00086E0289FF0011124E45DF44F849117C091
:10DCD00086E0289FF0011124E35DF44F84910FC08A
:10DCE00086E0289FF0011124E25DF44F849107C083
:10DCF00086E0289FF0011124E15DF44F8491809328
:10DD00000F0490910F04809110049813C0E00E94BA
:10DD10002E7190910F0486E0989FF0011124E05D30
:10DD2000F44F259134918C2FF901099580E090E012
:10DD3000CF910895109269081092680810926D08AA
:10DD400010926C0810926B0810926A0810926E087C
:10DD50008AE090E00E948C16909312048093110444
:10DD60000895CF93DF9380911104909112040E9443
:10DD70009516882309F4AFC0809111049091120484
:10DD80000A969093120480931104E0E0F0E09F0162
:10DD900090E05FEFAAECB6E04BE0ED018B8187FFEE
:10DDA0000BC09F5F8D81E80FF11D8981280F311D08
:10DDB0008E81851708F4582F4150189647FFEDCFF4
:10DDC00050936E08232B41F52091170430911804CD
:10DDD0004091190450911A04BB27A52F942F832F2B
:10DDE0009093160480931504AA27BB27281B390B90
:10DDF0004A0B5B0BCF01AA27BB27280F391F4A1FED
:10DE00005B1F209317043093180440931904509318
:10DE10001A04E5E0F0E013C02091150430911604D7
:10DE20002E173F0718F4E21BF30B02C0E0E0F0E00E
:10DE3000892F9927880F991FE80FF91F3596F093BE
:10DE40006908E0936808EF3FF10578F480911D01BF
:10DE500090911E018E9F90018F9F300D9E9F300DDF
:10DE60001124C90164E670E013C0CF01969587952F
:10DE70009695879520911D0130911E01289FA00144
:10DE8000299F500D389F500D1124CA0169E170E09F
:10DE90000E94847970936B0860936A082091130440
:10DEA000309114042E0F3F1F309314042093130459
:10DEB0005EE02131350778F080916C0890916D0813
:10DEC000019690936D0880936C0820513E403093EA
:10DED000140420931304DF91CF9108954FB720E4E9
:10DEE00030E0F8948091C9008F778093C9008091C9
:10DEF000C9008F7B8093C9008091C9008F7D80937A
:10DF0000C9005A9A52985B9A539A832F9927809303
:10DF1000CD002093CC008091C80082608093C8001F
:10DF200088E18093C9008091CA008F778093CA00EE
:10DF30008091CA008F7B8093CA008091CA008F7D38
:10DF40008093CA008091CA008F7E8093CA0080911E
:10DF5000CA00877F8093CA008091C9008B7F80931D
:10DF6000C9008091CA0084608093CA008091CA0071
:10DF700082608093CA008091C80087FF03C08091AF
:10DF8000CE00F9CF8091C90080688093C9004FBF4F
:10DF900008950F931F93CF93DF93482F4F5F8931DD
:10DFA00008F089C080912A07841710F440932A074B
:10DFB000CB0183539B4268E170E00E949879A42FC3
:10DFC000BB27FD01EA0FFB1FE55DF84F80819181C2
:10DFD0009B01281B390BC90137FF03C09095819520
:10DFE0009F4F069794F480911B03883C30F48091F6
:10DFF0001B03865F80931B0308C088EC80931B0380
:10E0000080916F008F7D80936F00FD01EA0FFB1FF1
:10E01000E55DF84F808191819C01220F331F280F0D
:10E02000391F260F371F37FF02C02D5F3F4FE90111
:10E03000D595C795D595C795CB0101968C179D07AA
:10E0400014F4219706C061507040C617D7070CF42E
:10E05000219680911B03843BD8F08D010A0F1B1F72
:10E06000F801E55DF84F80819181FE01E81BF90B15
:10E07000CF0163E070E00E949879CB01880F991F6F
:10E08000860F971F015A184FF8019183808307C0AC
:10E09000AA0FBB1FA15AB84F11961C921E92E42FD3
:10E0A000FF27EE0FFF1FE55DF84FD183C08344309B
:10E0B00011F410929301DF91CF911F910F91089568
:10E0C000CF93DF9320916F08822F9927807F9070E4
:10E0D000409709F06CC02F3109F046C0809170085C
:10E0E00080931F042091720820932104809173086B
:10E0F00080932004822F992790932C0780932B07DD
:10E10000222309F054C080910406282F3327220FC0
:10E11000331FF901E15AF84F1182108280910506F0
:10E12000A82FBB27AA0FBB1FFD01E15AF84F118290
:10E13000108280910706E82FFF27EE0FFF1FCF0107
:10E14000815A984FEC0119821882255D384FE901F8
:10E1500019821882A55DB84F11961C921E92E55D3A
:10E16000F84F1182108223C0C22FCF70CA30F8F44A
:10E170008091700880939908809171088093980825
:10E180008091720880939B088091730880939A080D
:10E1900060919808709199088C2F0E94C96F6091C6
:10E1A0009A0870919B088C2F8F5F0E94C96FDF9136
:10E1B000CF910895CF93C82F8F3F49F480912204C7
:10E1C0008F3F29F4109224041092230432C020912E
:10E1D0002404222339F4CF3111F485E001C084E016
:10E1E0008093250480912504909123048217A0F444
:10E1F000892F8095809323048F3F19F48EEF8093AD
:10E20000230480912304C81711F40E9460701092B7
:10E210002404109223040BC0E22FFF27E159F74F8B
:10E22000C0832F5F209324049C0F90932304C093FA
:10E230002204CF91089590911E04933240F4E92F67
:10E24000FF27EB58F74F80839F5F90931E0408953C
:10E25000833218F48D5F80931E04089590E2E8E7FE
:10E26000F8E08FE19193815087FFFCCF0895CF9321
:10E27000CFB723E031E0F8948091C9008F77809385
:10E28000C9008091C9008F7B8093C9008091C9002B
:10E290008F7D8093C9005A9A52985B9A539A832F24
:10E2A00099278093CD002093CC008091C800826094
:10E2B0008093C80088E18093C9008091CA008F775D
:10E2C0008093CA008091CA008F7B8093CA0080919E
:10E2D000CA0080628093CA008091CA0080618093E6
:10E2E000CA008091CA0088608093CA008091C900EA
:10E2F00084608093C9008091CA0084608093CA00C2
:10E300008091CA0082608093CA008091C80087FF14
:10E3100003C08091CE00F9CF8091C90080688093BE
:10E32000C9008091C90080648093C9000E942E7149
:10E33000CFBFCF910895282F99278F709070892B88
:10E3400031F4209580911D04822B80931D04089543
:10E350008091EF01882309F441C08091E70285FF95
:10E360000AC082E98093750883E28093760885E588
:10E370008093770802C0109275088091F0018F3069
:10E3800071F480911D040E94456E882341F081E95B
:10E39000809375088093760881E3809377081092C4
:10E3A000EF018091C80085FFFCCF8091C9008F7E6E
:10E3B0008093C9008091C9008E7F8093C9008091AD
:10E3C0007508882311F48EEF01C08EE78093CE008C
:10E3D00080911D048093F00110921D0408951F92F6
:10E3E0000F920FB60F9211248F939F93EF93FF9389
:10E3F0009091EF01992309F040C080912604882371
:10E4000061F480917508882311F483E003C0813999
:10E4100099F481E0809326040FC0833099F48091B1
:10E420007508882349F0909375088091C9008E7F04
:10E430008093C9008EEF1EC08091C90081608093D7
:10E44000C9000EC0833261F48091C9008E7F809331
:10E45000C9008FEF8093CE0081E08093EF0114C05C
:10E4600080912604E82FFF27EB58F74F8F5F8093AA
:10E47000260480818093CE0007C0109226048091EC
:10E48000C90080618093C900FF91EF919F918F91A6
:10E490000F900FBE0F901F901895EF92FF920F9361
:10E4A0001F93CF93DF937C018B01EA01452B39F059
:10E4B000F80181918F01F70109952197C9F7E6E0ED
:10E4C000CDB7DEB70C94107AEF92FF920F931F93A3
:10E4D000CF93DF937C018B01EA01452B41F0F801DA
:10E4E0000F5F1F4F8491F70109952197C1F7E6E06F
:10E4F000CDB7DEB70C94107A0F931F93CF938C0196
:10E50000C62F161634F480E2F8010995C1501C1686
:10E51000D4F3CF911F910F9108950F931F93CF9331
:10E520008C01C62F161634F480E3F8010995C1500A
:10E530001C16D4F3CF911F910F910895A5E3B0E07D
:10E54000E4EAF2E70C94E8792E96EEADFFAD2E9753
:10E5500088249924540180911C04882321F42C964A
:10E560001FAE1EAE2C975EE4452E512C4C0E5D1E48
:10E570006F01B60105C0153239F00894C11CD11CD9
:10E58000F60114911123B9F7A601461B570B31F080
:10E590002C968EAD9FAD2C970E946472112309F4C6
:10E5A0006AC20894C11CD11CFF24FDA6FCA64FEF33
:10E5B000E42EF9A6F6010894C11CD11C149115375C
:10E5C00021F0812F80628837B1F4F0FE0AC0F20199
:10E5D00024E030E0420E531E80809180A280B38000
:10E5E0000AC0F20142E050E0440E551E8081918144
:10E5F0004C01AA24BB24103221F489A58823D1F62A
:10E600001DC0133219F458E0F52AD4CF1A3211F094
:10E610001D3291F41A3259F4F20182E090E0480E72
:10E62000591EE081ECA7EE232CF6E195ECA790E1D2
:10E63000F92AAFEDFA22BECF1B3211F419A7BACFD7
:10E640001E32C1F5F6010894C11CD11C14911A3276
:10E6500079F4F20122E030E0420E531E40815181F4
:10E660003FEF4F3F530714F44FEF5FEFE42EA2CF7D
:10E6700040E050E0812F80538A30A0F4CA0133E09B
:10E68000880F991F3A95E1F7840F951F480F591F7E
:10E69000410F511D40535040F6010894C11CD11C3C
:10E6A0001491E8CF8FEF4F3F580714F44FEF5FEF0F
:10E6B000E42E85CF103329F4F4FC7CCF90E2F92AC4
:10E6C00079CF812F81538930D8F440E050E0CA01DE
:10E6D00023E0880F991F2A95E1F7840F951F480FB3
:10E6E000591F410F511D40535040F6010894C11C61
:10E6F000D11C1491812F80538A3048F34CA75FCFEF
:10E70000183619F4A4E0FA2A55CF1C3619F4B1E0F2
:10E71000FB2A50CF133661F43E010894611C711C32
:10E72000F20122E030E0420E531E808189833CC119
:10E73000143421F0143611F0193651F5143411F453
:10E7400031E0F32AF0FE0AC0F20144E050E0440E4A
:10E75000551E80809180A280B3800CC0F20182E0BF
:10E7600090E0480E591E808191814C01AA2497FCAB
:10E77000A094BA2CB7FE0AC0B094A0949094809450
:10E78000811C911CA11CB11C8DE289A70AE06FC0FD
:10E790001F3411F01F3631F41F3411F491E0F92ABF
:10E7A00008E064C0103779F4F201A2E0B0E04A0E4C
:10E7B0005B1E808191814C01AA24BB2400E1B0E45E
:10E7C000FB2A18E753C01337C1F5F20122E030E00D
:10E7D000420E531E608071806114710489F43E0101
:10E7E0000894611C711C88E289838EE6F3018183A1
:10E7F00085E78B838CE68C838D8389E28E831F82F1
:10E80000E7FC13C08E2D992787FD9095AC0160E041
:10E8100070E0C3010E94B577009729F0382E3618B2
:10E82000E3140CF0C3C03E2CC1C0F30101900020E2
:10E83000E9F731973E2E3618B9C0153511F0153766
:10E8400031F4153511F4F1E0FF2A0AE00FC0183554
:10E8500019F0183709F0A0C000E1F3FE07C08114D9
:10E860009104A104B10411F020E4F22A19A6EDA646
:10E87000E7FC02C03FEDF32289E2682E712C6C0E9A
:10E880007D1E81149104A104B10421F44DA54423FB
:10E8900009F47BC0802F9927AA27BB278EA79FA7A3
:10E8A000A8ABB9AB202E332490E0891690E09906EE
:10E8B00091E0A90690E0B90648F0C501B4012EA583
:10E8C0003FA548A959A90E94AB7917C0AFEF8A1696
:10E8D0009104A104B10449F040F0C401B1010E94C7
:10E8E00084799B014427552708C0882D602F0E94FA
:10E8F0007879282F3327442755272AAB3BAB4CABDD
:10E900005DAB0A3059F48AA9880F880F880F9AA93D
:10E91000990F890F382D381B832F10C0003139F41F
:10E920008AA98295807F482D481B842F07C08AA919
:10E93000880F880F880F582D581B852F90E02EA523
:10E940003FA548A959A982169306A406B50608F062
:10E9500091E08AA89BA8ACA8BDA88A3010F4805D7D
:10E9600004C0895A183509F48F7DD3018E933D0177
:10E97000992309F099CF083041F4F3FE06C08033A3
:10E9800021F080E3FD0182933F01CE010196382EF4
:10E990003618F8E23F0E0BC0112309F46CC03E019B
:10E9A0000894611C711C1983B1E03B2E19A6032D3C
:10E9B0002DA4231827FC222489A5882311F00F5F9A
:10E9C00002C0F6FC0E5F020DEF2CFF24C70180731E
:10E9D0009070892B49F48CA5801B682F2C968EADE6
:10E9E0009FAD2C970E947C7289A5882331F041E06D
:10E9F00050E0BE01675D7F4F0AC0E6FE0EC080E3B7
:10EA00008AA71BA742E050E0BE01665D7F4F2C96AF
:10EA10008EAD9FAD2C970E944D72C7018073907090
:10EA2000809749F48CA5801B682F2C968EAD9FADE6
:10EA30002C970E948D72622D2C968EAD9FAD2C97D7
:10EA40000E948D72832D992787FD9095AC01B301AB
:10EA50002C968EAD9FAD2C970E944D72E4FE89CD11
:10EA60002CA5201B2CA7622F2C968EAD9FAD2C972A
:10EA70000E947C727ECDE2E1CB5C0C94047A2FB7CD
:10EA800040E0F894E0E0F0E081E280935700949158
:10EA9000E2E0F0E0809357003491E4E0F0E080930E
:10EAA000570084912FBF9E3199F4363941F4893053
:10EAB00011F441E00DC08A3059F442E009C0373901
:10EAC00039F4863011F443E003C0853009F444E0A2
:10EAD000842F992708959FB7F8948091C900877F64
:10EAE0008093C9008091C9008F7E8093C900809176
:10EAF000C9008F778093C9008091C9008F7B809374
:10EB0000C9008091C9008F7D8093C90052985A9A9C
:10EB100053985B9A9FBF08951F93CF93DF93182F4D
:10EB200080911C04882309F48DC08091EE01181790
:10EB300009F488C080911B04882321F40E943F754A
:10EB400080931B048FEF9CE09F938F93C9E6D2E1E3
:10EB5000DF93CF93E0912704F091280409950F905B
:10EB60000F900F900F90812F99278230910501F11E
:10EB7000833091052CF4009761F0019769F024C06F
:10EB800084309105D9F084309105ACF00597C9F037
:10EB90001BC08FEE9CE002C08DED9CE09F938F9395
:10EBA000DF93CF93E0912704F0912804099518C0D2
:10EBB00084EC9CE0F3CF81EA9CE0F0CF83E99CE019
:10EBC000EDCF8BE89CE0EACF8CE09DE09F938F93A4
:10EBD000DF93CF93E0912704F0912804099510E08A
:10EBE0000F900F900F900F9080911B04843011F0C4
:10EBF000823099F40E946B75812F8150833018F414
:10EC00000E941D691DC0143019F40E94377118C08C
:10EC10001530B1F40E946E6F13C0112389F082E2A7
:10EC20009DE09F938F9389E692E19F938F93E0916C
:10EC30002704F091280409950F900F900F900F90E2
:10EC40001093EE01DF91CF911F9108950F931F93C1
:10EC500081E080931C044091ED01EBE3FCE020E0B7
:10EC600030E05FE4849199272F5F3F4F829FB0018E
:10EC7000839F700D929F700D11244627515031963D
:10EC800057FFF0CF4093ED01E3E1FCE020E030E0FE
:10EC900057E2849199272F5F3F4F829FB001839F56
:10ECA000700D929F700D112446275150319657FFD9
:10ECB000F0CF4093ED0180911B04882321F40E9442
:10ECC0003F7580931B048091ED01833459F088E1F6
:10ECD00090E029E20FB6F894A895809360000FBEEB
:10ECE000209360008EE992E7909328048093270494
:10ECF0008DE39DE09F938F9309E612E11F930F939D
:10ED0000E0912704F091280409950F900F900F903F
:10ED10000F9084E690E09F938F9380E590E09F931F
:10ED20008F931F921F92809102016AE00E9478796E
:10ED3000892F99279F938F93809102010E94787960
:10ED400099279F938F9383E69DE09F938F931F93C3
:10ED50000F93E0912704F091280409958BE39CE040
:10ED60009F938F931F930F93E0912704F0912804B2
:10ED7000099583E19CE09F938F931F930F93E091FC
:10ED80002704F091280409958DB79EB746968DBF4C
:10ED900087E99DE09F938F931F930F93E091270442
:10EDA000F0912804099583EC8093810080916F0095
:10EDB000806280936F000F900F900F900F901F91C3
:10EDC0000F91089580911C04882361F08091EE01D9
:10EDD000843011F40E94A8718091ED01833411F008
:10EDE00010921C0408951F920F920FB60F921124D7
:10EDF0002F933F934F935F936F937F938F939F9343
:10EE0000AF93BF93EF93FF932091CE009091EE01CB
:10EE1000892F8150833020F4822F0E942A6A0BC0F0
:10EE2000943021F4822F0E949B7105C0953019F413
:10EE3000822F0E94DA70FF91EF91BF91AF919F9165
:10EE40008F917F916F915F914F913F912F910F9093
:10EE50000FBE0F901F9018950024222733274427B8
:10EE600051E0BB27EE27FF27A0E1660F771F881F21
:10EE7000991F001C221F331F441F660F771F881F16
:10EE8000991F001C221F331F441F2AF4050E2B1F3D
:10EE90003E1F4F1F04C0051A2B0B3E0B4F0B550F87
:10EEA000BB1FEE1F587F556047FD5250AA95E9F6EB
:10EEB000E695B7955795E695B7955795852F9B2F6E
:10EEC00008952227332741E0552768E0880F991FCE
:10EED000221F331F880F991F221F331F1AF4240F7C
:10EEE000351F02C0241B350B440F551F487F45605A
:10EEF00037FD42506A9551F7569547955695479577
:10EF0000842F0895AA2797FF04C0809590958A1FA3
:10EF10009A1F77FF04C0609570956A1F7A1F669FDD
:10EF20009001779FA001679F300D411D5A1F300D42
:10EF3000411D5A1F889FF001999F2E0F3F1F401DB2
:10EF4000511D899F300D411D5A1F300D411D5A1F03
:10EF5000CA01B901112480CFFB01DC0102C0059078
:10EF60000D9241505040D8F70895FC014150504057
:10EF700030F001900616D1F73197CF010895882718
:10EF800099270895A0E0B0E0E8ECF7E70C94F07959
:10EF90006C017B01EA01590121978FEFCF3FD80720
:10EFA00089F086010894C11CD11CC7010894E11C9A
:10EFB000F11CF5010995F80180832197FFEFCF3F00
:10EFC000DF0779F7EAE0CDB7DEB70C940C7ACF9281
:10EFD000DF92EF92FF920F931F937C016B01FB0175
:10EFE0000995082FC7010196F6010995182FC80148
:10EFF0001F910F91FF90EF90DF90CF900895A0E0C8
:10F00000B0E0E5E0F8E70C94F2798C017B01EA01CD
:10F01000690121978FEFCF3FD80771F0F701219158
:10F020007F01C8010F5F1F4F622FF60109952197DD
:10F03000FFEFCF3FDF0791F7E8E0CDB7DEB70C94E5
:10F040000E7ACF92DF92EF92FF920F931F936C0193
:10F050008B017A01FA010995812F9927682FC60142
:10F060000196F70109951F910F91FF90EF90DF90A6
:10F07000CF9008955058BB27AA270ED0E0C0D1D01A
:10F0800030F0D6D020F031F49F3F11F41EF4C6C00A
:10F090000EF4E095E7FBBCC0E92FE2D080F3BA178D
:10F0A000620773078407950718F071F49EF5FAC09C
:10F0B0000EF4E0950B2EBA2FA02D0B01B901900193
:10F0C0000C01CA01A0011124FF27591B99F0593FD7
:10F0D00050F4503E68F11A16F040A22F232F342F1F
:10F0E0004427585FF3CF469537952795A795F0406D
:10F0F0005395C9F77EF41F16BA0B620B730B840B82
:10F10000BAF09150A1F0FF0FBB1F661F771F881F39
:10F11000C2F70EC0BA0F621F731F841F48F4879591
:10F1200077956795B795F7959E3F08F0B3CF939580
:10F13000880F08F09927EE0F97958795089598D036
:10F1400088F09F5790F0B92F9927B751A0F0D1F0D0
:10F15000660F771F881F991F1AF0BA95C9F712C05A
:10F16000B13081F09FD0B1E008959CC0672F782F17
:10F170008827B85F39F0B93FCCF3869577956795C6
:10F18000B395D9F73EF490958095709561957F4F32
:10F190008F4F9F4F0895E89409C097FB3EF49095D8
:10F1A0008095709561957F4F8F4F9F4F9923A9F060
:10F1B000F92F96E9BB279395F695879577956795EF
:10F1C000B795F111F8CFFAF4BB0F11F460FF1BC033
:10F1D0006F5F7F4F8F4F9F4F16C0882311F096E9C6
:10F1E00011C0772321F09EE8872F762F05C0662374
:10F1F00071F096E8862F70E060E02AF09A95660F2D
:10F20000771F881FDAF7880F9695879597F90895E5
:10F2100097F99F6780E870E060E008959FEF80ECC9
:10F22000089500240A94161617061806090608956C
:10F2300000240A9412161306140605060895092ED2
:10F240000394000C11F4882352F0BB0F40F4BF2B41
:10F2500011F460FF04C06F5F7F4F8F4F9F4F089581
:10F2600057FD9058440F551F59F05F3F71F0479577
:10F27000880F97FB991F61F09F3F79F0879508955C
:10F28000121613061406551FF2CF4695F1DF08C07B
:10F29000161617061806991FF1CF86957105610598
:10F2A00008940895E894BB2766277727CB0197F940
:10F2B0000895629FD001739FF001829FE00DF11DC0
:10F2C000649FE00DF11D929FF00D839FF00D749FE0
:10F2D000F00D659FF00D9927729FB00DE11DF91F8C
:10F2E000639FB00DE11DF91FBD01CF0111240895E9
:10F2F000991B79E004C0991F961708F0961B881F88
:10F300007A95C9F780950895AA1BBB1B51E107C0E8
:10F31000AA1FBB1FA617B70710F0A61BB70B881FA5
:10F32000991F5A95A9F780959095BC01CD01089534
:10F3300097FB092E07260AD077FD04D0E5DF06D01B
:10F3400000201AF4709561957F4F0895F6F7909517
:10F3500081959F4F0895A1E21A2EAA1BBB1BFD01A8
:10F360000DC0AA1FBB1FEE1FFF1FA217B307E407A4
:10F37000F50720F0A21BB30BE40BF50B661F771FFC
:10F38000881F991F1A9469F76095709580959095DC
:10F390009B01AC01BD01CF01089597FB092E052605
:10F3A0000ED057FD04D0D7DF0AD0001C38F450959A
:10F3B0004095309521953F4F4F4F5F4F0895F6F799
:10F3C00090958095709561957F4F8F4F9F4F0895D1
:10F3D0002F923F924F925F926F927F928F929F9265
:10F3E000AF92BF92CF92DF92EF92FF920F931F9353
:10F3F000CF93DF93CDB7DEB7CA1BDB0B0FB6F89404
:10F40000DEBF0FBECDBF09942A88398848885F8443
:10F410006E847D848C849B84AA84B984C884DF80B4
:10F42000EE80FD800C811B81AA81B981CE0FD11D98
:10F430000FB6F894DEBF0FBECDBFED010895EE0FFD
:0CF44000FF1F0590F491E02D0994FFCF10
:10F44C005E010A010164FF01FFFF01FC01FC0101E7
:10F45C00737373FF03007D0000C409C409640011B9
:10F46C0048656C6C6F20576F726C64000000000074
:10F47C000000000000000000000000000000000080
:10F48C000000000000000000000000000000000070
:10F49C000000000000000000000000000000000060
:10F4AC000000000000000000000000000000000050
:10F4BC0053706F727400004E6F726D616C0000427D
:10F4CC006567696E6E6572000051756164726F00DC
:10F4DC0000640001200B050000ECFF6440415A461B
:10F4EC0064640A02969696960840403A10FB3038AF
:10F4FC000190D0030090D00300F4017800FF036466
:10F50C0000020406070808080706040200FEFCFABD
:10F51C00F9F8F8F8F9FAFCFE000204060708080BE3
:10F52C000A0D0B0C0E0B0F10FA2001010170FF01DC
:02F53C000F00BE
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/Flight-Ctrl_MEGA644_V0_80d_S3D.hex
0,0 → 1,3877
:100000000C94DF060C9425070C9425070C94250707
:100010000C9425070C9425070C9425070C942507B0
:100020000C9425070C940C170C9425070C942507A9
:100030000C942D350C9425070C9425070C9425075A
:100040000C9425070C9425070C9485150C94250712
:100050000C94550C0C9425070C941F0C0C9425073C
:100060000C94211C0C9425070C94D1300C9425077A
:100070000C946B750C9425070C9467704C1C511CE8
:10008000561C5F1C761C8D1C9D1CAD1CCA1CB61E0C
:100090008D1C781D891DB81DD61DF31D4D1EA81E73
:1000A00086201821D5215522BE226E237925D625FA
:1000B00043268D26D82625277627D0272F28C928FE
:1000C00064295E2AF93020316331D331EB312C328F
:1000D000DF329F339F339F339F339F339F339F3351
:1000E0009F339F339F339F33563358335D3375337C
:1000F00077330A0D426174743A0020256420436509
:100100006C6C732000204C6F77207761726E696E83
:1001100067206C6576656C3A2025642E2564000A9C
:100120000D466F756E6420424C2D4374726C3A20FC
:10013000002564000A0D0A0D2121204D4953534921
:100140004E4720424C2D4354524C3A2025642021E6
:1001500021000A0D3D3D3D3D3D3D3D3D3D3D3D3D8B
:100160003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DBF
:100170003D3D3D3D3D3D3D000A0D43616C69627270
:100180006174696E67207072657373757265207330
:10019000656E736F722E2E004F4B0A0D000A0D46CE
:1001A0006C696768742D74696D65202575206D69AB
:1001B0006E2020546F74616C3A2575206D696E0055
:1001C0000A0D436F6E74726F6C3A2000486561646B
:1001D000696E67486F6C64004E6F726D616C2028A9
:1001E0004143432D4D6F646529000A0D3D3D3D3D62
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A51
:100210000D00416E676C654E69636B2020202020C5
:100220002020416E676C65526F6C6C20202020206E
:1002300020204163634E69636B2020202020202012
:100240002020416363526F6C6C20202020202020EE
:1002500020205961774779726F20202020202020AC
:1002600020204865696768742056616C7565202098
:1002700020204163635A202020202020202020209D
:1002800020204761732020202020202020202020B3
:100290002020436F6D706173732056616C7565200B
:1002A0002020566F6C74616765205B302E31565D7F
:1002B00020205265636569766572204C6576656CB1
:1002C00020204779726F20436F6D70617373202017
:1002D00020204D6F746F722031202020202020209C
:1002E00020204D6F746F722032202020202020208B
:1002F00020204D6F746F722033202020202020207A
:1003000020204D6F746F7220342020202020202068
:1003100020203136202020202020202020202020B6
:1003200020203137202020202020202020202020A5
:100330002020313820202020202020202020202094
:100340002020313920202020202020202020202083
:100350002020536572766F2020202020202020202E
:100360002020486F7665726761732020202020204E
:10037000202043757272656E74205B302E31415DB2
:1003800020204361706163697479205B6D41685D11
:100390002020323420202020202020202020202037
:1003A0002020323520202020202020202020202026
:1003B0002020323620202020202020202020202015
:1003C0002020323720202020202020202020202004
:1003D00020204932432D4572726F72202020202048
:1003E0002020424C204C696D697420202020202060
:1003F00020204750535F4E69636B2020202020202F
:1004000020204750535F526F6C6C2020202020200A
:10041000202021212120494E434F4D504154494233
:100420004C4520212121002E000A0D20444143206B
:100430006F7220493243204552524F522120436867
:1004400065636B204932432C2033567265662C203D
:1004500044414320616E6420424C2D4374726C0011
:100460005B25695D005B25695D002B204D696B7222
:100470006F4B6F70746572202B0048573A56256495
:100480002E25642053573A25642E25642563005396
:10049000657474696E673A2564202573004861723B
:1004A0006477617265204572726F7220313A2564FB
:1004B000202121004D697373696E6720424C2D43E2
:1004C00074726C3A25642121004D6978657220456B
:1004D00072726F722100493243204552524F5221AD
:1004E0002121004865696768743A20202535690034
:1004F000536574706F696E743A2535690050726582
:1005000073737572653A253569004F666673657455
:100510003A20202535690048656967687420636F53
:100520006E74726F6C0044495341424C454400481C
:10053000656967687420636F6E74726F6C004449FC
:100540005341424C4544006163742E2062656172E0
:10055000696E67004E69636B3A20202020202025B9
:10056000356900526F6C6C3A202020202020253500
:100570006900436F6D706173733A202020253569DF
:10058000004B313A25346920204B323A253469201A
:10059000004B333A25346920204B343A2534692006
:1005A000004B353A25346920204B363A25346920F2
:1005B000004B373A25346920204B383A25346920DE
:1005C000004E693A2534692020526F3A253469205B
:1005D0000047733A253469202047693A2534692059
:1005E0000050313A253469202050323A25346920B0
:1005F0000050333A253469202050343A253469209C
:10060000004779726F202D2053656E736F72004E14
:1006100069636B25346920282533692E25692900F3
:10062000526F6C6C25346920282533692E25692981
:100630000047696572253469202825336929004EF1
:1006400069636B2025346920282533692E25782994
:1006500000526F6C6C2025346920282533692E25C3
:1006600078290059617720202534692028253369AD
:1006700029004E69636B20253469202825336929B8
:10068000282533692900526F6C6C20253469202895
:1006900025336929282533692900596177202025C8
:1006A00034692028253369292825336929004143E5
:1006B00043202D2053656E736F72004E69636B206B
:1006C00025346920282533692900526F6C6C202558
:1006D0003469202825336929005A20202020253418
:1006E0006920282533692900566F6C746167653A63
:1006F0002020202533692E253169560043757272FA
:10070000656E743A2020202533692E253169410019
:10071000506F7765723A20202020202534695700D9
:100720004469736368617267653A202535696D4174
:10073000680052656365697665720052432D5253B5
:1007400053493A202020202534690052432D517509
:10075000616C6974793A202534690052432D4368ED
:10076000616E6E656C733A25346900436F6D70611C
:1007700073730048656164696E673A2020253569A6
:100780000056616C75653A2020202025356900539C
:10079000746172743A2020202025356900506F74EE
:1007A00069313A202025336900506F7469323A204C
:1007B0002025336900506F7469333A20202533694E
:1007C00000506F7469343A202025336900506F74EB
:1007D00069353A202025336900506F7469363A2014
:1007E0002025336900506F7469373A20202533691A
:1007F00000506F7469383A202025336900536572C0
:10080000766F202000536574706F696E7420202508
:10081000336900506F736974696F6E3A20253369CC
:100820000052616E67653A2533692D2533690045AD
:10083000787465726E436F6E74726F6C2020004E18
:10084000693A2534692020526F3A253469200047DF
:10085000733A253469202047693A253469200048D5
:10086000693A253469202043663A253469200042DC
:100870004C2D4374726C204572726F727320002588
:10088000336420253364202533642025336420001D
:1008900025336420253364202533642025336420E8
:1008A00000253364202533642025336420253364F8
:1008B0002000424C2054656D7065726174757265DC
:1008C00000253369202533692025336920253369C4
:1008D00020002533692025336920253369202533FD
:1008E00069200025336920253369202533692025B7
:1008F00033692000424C2D4374726C20666F756E14
:1009000064200020256320202025632020202563EB
:10091000202020256320002025632020202563201F
:10092000202025632020202563200020256320200F
:10093000202D2020202D2020202D2000313000319E
:100940003100313200466C696768742D54696D65F9
:10095000202000546F74616C3A2535756D696E0006
:100960004163743A20202535756D696E00287265E3
:1009700073657429000A0D47656E65726174696E4E
:10098000672064656661756C7420506172616D6585
:1009900074657220536574202564000A0D557369CF
:1009A0006E6720506172616D657465722053657465
:1009B000202564000A0D47656E65726174696E6773
:1009C0002064656661756C74204D69786572205489
:1009D00061626C65000A0D4D697865722D436F6E1A
:1009E0006669673A202725732720282575204D6FD3
:1009F000746F727329000A0D3D3D3D3D3D3D3D3D07
:100A00003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D16
:100A10003D3D3D3D3D3D000A0D414343206E6F7419
:100A20002063616C69627261746564210D0A000A59
:100A30000D506C6561736520636F6E6E6563742025
:100A40005370656B7472756D207265636569766548
:100A50007220666F722062696E64696E67204E4F05
:100A6000572E2E2E006F6B2E0A0D0054696D656F88
:100A700075742E0A0D0000008F001E01AD013B02AF
:100A8000CA025803E603740402058F051B06A70675
:100A90003307BE074808D2085B09E3096B0AF20A6C
:100AA000780BFD0B810C040D860D070E870E060FCB
:100AB000840F00107B10F5106E11E5115B12CF1240
:100AC0004213B31323149214FE146A15D3153B1664
:100AD000A11605176717C81727188318DE183719C6
:100AE0008E19E319361A871AD61A231B6E1BB61BEA
:100AF000FD1B411C831CC31C001D3C1D751DAB1D33
:100B0000E01D121E421E6F1E9A1EC31EE91E0D1FFF
:100B10002E1F4D1F691F841F9B1FB01FC31FD31F94
:100B2000E11FEC1FF51FFB1FFF1F0020030100004A
:100B30003F6A00020101326B01030202C66B020030
:100B40000303236C2532692E253169560025336451
:100B5000256320253033646D005374617475730010
:100B60004552524F523A20253264002534692025DF
:100B700032693A25303269002534696D25630025D4
:100B80003369202533692025336920253369002501
:100B900033692025336920253369202533690054C2
:100BA000656D706572617475726573202020200018
:100BB0002563432020202020002532692E2531691D
:100BC0005620202533692E25316941002534695787
:100BD000202536696D4168002532756D2F732053CD
:100BE00061743A2564200020203344004E6F46781B
:100BF000004447505300486F6D653A2533646D20BB
:100C00002533642563004E6F204E6176694374720C
:100C10006C21000A0D7777772E4D696B726F4B6FE1
:100C2000707465722E6465202863292048695379A1
:100C30007374656D7320476D6248000A0D746865B2
:100C400020757365206F66207468697320736F6602
:100C50007477617265206973206F6E6C792070659E
:100C6000726D6974746564200A0D6F6E206F72690D
:100C700067696E616C204D696B726F4B6F70746544
:100C8000722D48617264776172650041435420445B
:100C9000534C004A65746920736174656C6C6974A7
:100CA000005370656B7472756D20736174656C6C44
:100CB000697420284C6F77207265736F6C75746946
:100CC0006F6E29005370656B7472756D207361745B
:100CD000656C6C6974202832303438290053706593
:100CE0006B7472756D20736174656C6C6974004D02
:100CF000756C74697369676E616C2050504D000AA1
:100D00000D52656365697665723A2000756E6B6E8B
:100D10006F776E2E205573696E672050504D2E2EC2
:100D20002E006E6F7420737570706F72746564201E
:100D3000627920686172647761726521000A0D3DF5
:100D40003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DD3
:100D50003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC3
:100D60003D3D000A0D466C69676874436F6E74728E
:100D70006F6C0A0D48617264776172653A25642E62
:100D800025640A0D536F6674776172653A5625645F
:100D90002E2564256320000A0D3D3D3D3D3D3D3D32
:100DA0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D73
:100DB0003D3D3D3D3D3D3D3D3D3D3D3D0000112422
:100DC0001FBECFEFD0E1DEBFCDBF11E0A0E0B1E0AC
:100DD000ECE3F1EF02C005900D92A23FB107D9F705
:100DE00018E0A2EFB1E001C01D92A033B107E1F716
:100DF0006AEAE2E0F0E081E2809357007491AE018C
:100E00004F5F5F4F20EF37EFDA019FE0F9012F5F6F
:100E10003F4F84918D93915097FFF8CF773911F41C
:100E20000000FECFFA019EE0819168276095915005
:100E300097FFFACF8889681721F0773911F40000FD
:100E4000FECF0E94E6070C949D780C9400008091E0
:100E50009805E82FFF27EE0FFF1FE154F94F80811F
:100E600091818D5E9F4F14F01092030180819181DA
:100E70008A5B9F4FCCF4809103018823A9F481E021
:100E8000809303018091EF038F5F8093EF038530A0
:100E900038F088EE93E0909322028093210204C000
:100EA00066E970E00E940F378091EF0399279093D5
:100EB00069058093680508951F93CF93DF93182FDA
:100EC000882389F082EF90E09F938F9389E692E1E7
:100ED0009F938F93E091BB03F091BC0309950F9012
:100EE0000F900F900F908091BB05823308F044C0A3
:100EF00084EF91E00E948C16EC01112329F0CE01C1
:100F00000E9495168823D9F3C2E0D0E026E530E0B0
:100F100080911D0190911E018217930730F0219658
:100F2000255D3F4FC730D10598F38091BB059927C8
:100F3000C89F9001C99F300DD89F300D1124209378
:100F400000011123D9F068EC70E08C2F0E940F375C
:100F5000DF93CF938AEF90E09F938F9389E692E19E
:100F60009F938F93E091BB03F091BC0309958DB7DC
:100F70009EB706968DBF02C080930001112311F128
:100F8000809100016AE00E94F077892F99279F9352
:100F90008F93809100010E94F07799279F938F9300
:100FA00085E091E09F938F9389E692E19F938F93E1
:100FB000E091BB03F091BC0309952DB73EB7285FC4
:100FC0003F4F2DBFDF91CF911F910895CFEFD0E11B
:100FD000DEBFCDBF8824992414B815B807EE13E0FE
:100FE0000253104017FFFCCF189B06C0199B02C08C
:100FF0008DE007C08BE005C0199B02C084E101C0F1
:101000008AE08093020181E887B93E9A8FEF88B920
:101010008BE184B981E085B98EE38AB987E48BB925
:10102000469A84B7877F84BF8091600088618093EF
:1010300060001092600084EC99E09093220280930B
:1010400021021092AA021092A9021092C4061092D4
:10105000C3061092AC021092AB021092AE02109234
:10106000AD0220910201243128F084EC94E0A0E04C
:10107000B0E004C08BE095E0A0E0B0E08093950183
:1010800090939601A0939701B09398012A3011F0A4
:10109000243110F0289801C0289A0E94F5160E9469
:1010A000C6160E9471120E9411350E94DA1A0E941F
:1010B00088300E944A620E94126D0E949E74809144
:1010C00002018C3010F4299A01C0299878940E946A
:1010D000A22F80916B02826080936B0210926D024E
:1010E0000E94774284EF91E00E948C168C018091DF
:1010F0006B0280FD05C0C8010E9495168823B9F3D4
:101100008FE191E09F938F93B9E6AB2EB2E1BB2EB6
:10111000BF92AF92E091BB03F091BC03099580EAC6
:101120009FE00E948C168C01C0E0D0E00F900F90E1
:101130000F900F90A1E6EA2EA6E0FA2EF5E1CF2E51
:10114000F6E0DF2E0E94774280916B0280FD05C0A1
:10115000C8010E9495168823B9F3F60180811816FC
:10116000ACF40BC00E94774280916B0280FD05C0F9
:10117000C8010E9495168823B9F3C8010E949516EC
:10118000882321F4F7018081882364F7F7018081A7
:1011900087FF18C02196DF93CF93219781E391E0D9
:1011A0009F938F93BF92AF92E091BB03F091BC03EA
:1011B00009958091F2018F5F8093F2018DB79EB700
:1011C00006968DBF2196E4E0F0E0CE0EDF1E88E0AB
:1011D00090E0E80EF91ECC30D10508F4B3CFC0E0A2
:1011E000D0E00EE516E0E5E1EE2EE6E0FE2EF80199
:1011F000838187FD1CC0F70180811816C4F42196F5
:10120000DF93CF93219784E391E09F938F9389E6B7
:1012100092E19F938F93E091BB03F091BC030995FA
:1012200082E080931F028DB79EB706968DBFF801AE
:10123000838180788383219684E090E0E80EF91E14
:10124000085F1F4FCC30D10590F282E591E09F936B
:101250008F93C9E6D2E1DF93CF93E091BB03F09186
:10126000BC030995909196058091F2010F900F9023
:101270000F900F90981728F48091D5038061809388
:10128000D50388E791E09F938F93DF93CF93E0910D
:10129000BB03F091BC03099588EE93E00E948C1685
:1012A0008C010E94E01A0F900F900F900F90C801D0
:1012B0000E9495168823D9F388E991E09F938F9334
:1012C000DF93CF93E091BB03F091BC03099580E0DD
:1012D0000E94D137809102010F900F900F900F90D4
:1012E0008A3011F0843110F0289801C0289A80EDDE
:1012F00097E0909322028093210285E58093F10389
:101300008EE090E00E941A2E9927182F00278FE078
:1013100090E00E941A2E080F111D1093F8010093FF
:10132000F7018AE090E00E941A2E9927182F0027D3
:101330008BE090E00E941A2E080F111D1093F60109
:101340000093F5010F5F1F4F39F08091F7019091E5
:10135000F8018F5F9F4F41F41092F8011092F7014E
:101360001092F6011092F5018091F5019091F6012D
:101370009F938F938091F7019091F8019F938F93A2
:101380008DE991E09F938F93DF93CF93E091BB031F
:10139000F091BC0309958DB79EB708968DBF80EC80
:1013A00091E09F938F93DF93CF93E091BB03F091F4
:1013B000BC0309958091A4050F900F900F900F909A
:1013C000E091BB03F091BC0382FF07C08CEC91E07D
:1013D0009F938F93DF93CF9308C088ED91E09F9305
:1013E0008F9389E692E19F938F9309950F900F90C9
:1013F0000F900F900E94FD1F88E893E19093920157
:101400008093910181E08093F0030E945C078091BA
:10141000BE050E9404748AEE91E09F938F93DF9340
:10142000CF93E091BB03F091BC03099580ED97E069
:101430000E948C168C018AEF90E00E948C16EC01C1
:1014400083E0809340050F900F900F900F90CE0196
:101450000E949516882339F084E690E00E948C164D
:10146000EC010E945A7580912502882309F4DFC19E
:1014700080910F01882309F4DAC11092250280912E
:10148000EF03882319F00E94270702C00E940B4532
:101490000E947742209102012A3011F0243110F08D
:1014A000289801C0289A8091AF029091D503882393
:1014B00039F08091AF0281508093AF02977F0AC0CC
:1014C00080916F00806280936F001092C00610922E
:1014D000BF0698609093D5038091910190919201FD
:1014E0000197909392018093910180919101909145
:1014F0009201892B29F080916C02882309F43EC067
:101500008091910190919201892B01F50E94AE305A
:1015100085E090E0909392018093910180917A050B
:1015200090917B05019690937B0580937A0580913D
:101530007B02806880937B028091D50381608093D9
:10154000D503809141058260809341058091080117
:10155000909109018F5F9F4F19F58091A602882312
:10156000F9F080E197E2909322028093210280E8D3
:1015700090E0909309018093080112C02A3011F085
:10158000243110F0289801C0289A8091210290916E
:101590002202892B29F480917B028F7780937B0232
:1015A00080912502882309F042C10E94B5120E9451
:1015B000930EC8010E949516882309F434C10C5E6D
:1015C0001F4F80916C029091D503882339F092606F
:1015D0009093D5038091410582600CC09D7F9093CC
:1015E000D5038091910190919201079728F0809105
:1015F00041058D7F809341058091910190919201E9
:10160000079728F08091D5038E7F8093D503809132
:101610000501882321F081508093050125C0809326
:10162000FB0310928702109286021092850210929C
:10163000840210928302109282028091080190919C
:1016400009018F5F9F4F81F48091AF02882361F47D
:1016500088E99AE3909322028093210280E09CE043
:1016600090930901809308018091E801893C70F012
:1016700081508093E80180917B028F7B80937B0275
:101680008091D5038B7F8093D50335C080919D07D2
:10169000882309F180917B02806480937B02809192
:1016A000D50384608093D50380910801909109014E
:1016B0008F5F9F4F81F48091A602882361F088E9B3
:1016C0009AE3909322028093210280E098EA90931B
:1016D00009018093080110928D0310928C031092DF
:1016E0008B0310928A038FEF9FEF9093CB07809329
:1016F000CA071092E80180910001282F33278091BA
:101700001D0190911E0182179307CCF480917B02FA
:10171000806280937B0280910801909109018F5F24
:101720009F4FC1F480E797E19093220280932102BA
:1017300080E093E090930901809308010BC08091B1
:10174000210290912202892B29F480917B028F7DC6
:1017500080937B020E94486684E0809320028091FF
:10176000A602882329F45AEA852E55E0952E12C048
:101770008091F9018F5F8093F901813359F41092C0
:10178000F9018091F3019091F40101969093F40195
:101790008093F3010894811C911CF2E78F16FBE003
:1017A0009F0609F040C0882499242091F7013091C8
:1017B000F8012F5F3F4F3093F8012093F70180919C
:1017C000F5019091F60101969093F6018093F50151
:1017D000832F9927682F8EE090E00E94222E80911F
:1017E000F7019091F8019070682F8FE090E00E94CF
:1017F000222E8091F5019091F601892F9927682F6B
:101800008AE090E00E94222E8091F5019091F601ED
:101810009070682F8BE090E00E94222E84E190E08F
:101820000E948C168C010E9498660E94296D8091FE
:101830002002882309F00BCE0E946B6208CE1F9213
:101840000F920FB60F9211248F939F93EF93FF93F4
:10185000809107018823E1F4809113029091140292
:1018600001969093140280931302FC01E056FB4F03
:10187000E081ED3019F0803A910539F410921402AC
:101880001092130281E080930701E093C60004C028
:101890001092140210921302FF91EF919F918F9179
:1018A0000F900FBE0F901F9018951F920F920FB6BA
:1018B0000F9211242F933F934F935F936F937F93D6
:1018C0008F939F93AF93BF93CF93EF93FF9390E04A
:1018D0008091C60080930B0250911902503A10F08B
:1018E00090931A0280910B028D3009F065C08091AF
:1018F0001A02823009F060C090931A02852F99274E
:1019000082509C4FFC01329740812091150230910A
:101910001602241B3109DC0111978C91281B310917
:10192000C9019F70909316028093150246E0969528
:1019300087954A95E1F7982F935C909317022F7340
:101940003070235C209318028081981729F48C91C1
:10195000281711F491E006C090E0809108028F5F93
:1019600080930802C0910A02CC2309F074C0992325
:1019700009F471C081E080930A02580F5093070266
:101980005150E52FFF27E250FC4F8DE0808380917E
:101990000004823509F05FC00E94FD1F88E190E0DD
:1019A0002CE00FB6F894A895809360000FBE2093AA
:1019B0006000C0931F024FC020911A02822F992706
:1019C00081309105F9F0823091051CF4892B21F0CA
:1019D00040C0029711F13DC080910B02833239F46F
:1019E00080910A02882319F481E080931A02809181
:1019F0000B028093FE0381E08093190280910B0219
:101A0000992722C02F5F20931A02E52FFF27E2506B
:101A1000FC4F80910B02808309C0E52FFF27E25025
:101A2000FC4F80910B028083503A20F45F5F50930B
:101A3000190202C010921A0220910B028091150225
:101A400090911602820F911D9093160280931502B9
:101A500002C010921A02FF91EF91CF91BF91AF9106
:101A60009F918F917F916F915F914F913F912F91B6
:101A70000F900FBE0F901F901895AC01A0E0B0E042
:101A80009D01A817B90748F4E0EAF4E08191280F16
:101A9000311D1196A417B507C8F33F70FD01E0563C
:101AA000FB4FC90156E0969587955A95E1F7835CFF
:101AB00080831196FD01E056FB4F2F733070822F0B
:101AC000835C8083AF55BB4F8DE08C9310920701F0
:101AD0008091A0048093C6000895A0E0B0E0E3E701
:101AE000FDE00C9469782C859D850E85BB2483E2EE
:101AF0008093A0049F599093A1042093A20433E003
:101B0000E32EF12C002309F49EC0CF84D888BE01B7
:101B10006D5E7F4FA989BA890150109709F493C06F
:101B20001097B9F0F601EB0DF11DB3949081119768
:101B300091F4002349F1FB016E5F7F4FDB01C08010
:101B4000D1806E5F7F4F0D90BC91A02DBB240150C2
:101B500002C090E019C01097B9F0F601EB0DF11D2D
:101B6000B3944081119791F4002341F1FB016E5F22
:101B70007F4FDB01C080D1806E5F7F4F0D90BC91A5
:101B8000A02DBB24015002C040E018C01097B1F056
:101B9000F601EB0DF11DB3941081119781F4002330
:101BA00071F0FB013296DB01CD90DC90BF016E5FDE
:101BB0007F4FA081B181BB24015001C010E0F7012B
:101BC000E056FB4F892F86958695835C8083089429
:101BD000E11CF11CF701E056FB4F892F9927837018
:101BE000907024E0880F991F2A95E1F755279A01F4
:101BF00094E0369527959A95E1F7822B835C808354
:101C00000894E11CF11CF701E056FB4F4F70507037
:101C1000440F551F440F551F812F992726E0969595
:101C200087952A95E1F7842B835C80830894E11CD7
:101C3000F11CF701E056FB4F1F73135C10830894EF
:101C4000E11CF11C6ACFC7010E943D0DE9E00C9434
:101C50008578A3E07A2F409107024650442309F487
:101C600058C0E72FFF27E250FC4F80818D537F5FE4
:101C7000E72FFF27E250FC4F20812D537F5FE72F96
:101C8000FF27E250FC4F30813D537F5FE72FFF2756
:101C9000E250FC4F60816D537F5F9927880F991F39
:101CA000880F991F522F52955F70582B822F9927BA
:101CB0008F709070F4E0880F991FFA95E1F7232F49
:101CC00026952695282B832F992783709070E6E020
:101CD000880F991FEA95E1F7682B41504F3FC9F0F3
:101CE000EA2FFF27E250FC4F5083AF5F41504F3F38
:101CF00081F0EA2FFF27E250FC4F2083AF5F415075
:101D00004F3F39F0EA2FFF27E250FC4F6083AF5F6F
:101D1000A5CF81E094E09093060280930502A35042
:101D2000A09304020895A2E0B0E0E9E9FEE00C947B
:101D30006F7880910A02882309F4C7C30E94290E94
:101D40008091FF03823609F081C2809100049927B7
:101D50008137910509F4C0C082379105C4F48D36EE
:101D6000910509F482C08E36910544F48B349105B7
:101D700031F18636910509F454C168C28E36910559
:101D800009F45BC08037910509F49FC05FC28537B5
:101D9000910509F4E2C18637910544F48337910532
:101DA00009F4DCC08437910539F150C287379105B9
:101DB00009F410C28937910509F46AC147C2E0915C
:101DC0000502F0910602808191819093C202809376
:101DD000C1022091BF023091C002821B930B845E2E
:101DE0009D4F68E671E00E941078845B904090936C
:101DF000BE028093BD022AC280910702A091050213
:101E0000B0910602853140F080E1E9EDF3E00D90FC
:101E100001928A95E1F70DC08D919D910D90BC9135
:101E2000A02D8093D9039093DA03A093DB03B093A2
:101E3000DC0380EF809302024BC08091070188236E
:101E4000E1F38DE490E09F938F9388E096E09F9379
:101E50008F9381E08F938F938EE48F930E946D0D0B
:101E60008DB79EB707968DBFF1C1A0910502B091C5
:101E700006021C91113081F48DE4E8E0F6E00D904B
:101E800001928A95E1F70E94222F19838091D50350
:101E90008F7E8093D50301C019828091070188232A
:101EA000E1F381E090E09F938F93CE0101969F93A1
:101EB0008F9381E08F938F938DE48F930E946D0DAC
:101EC000ADB7BEB71796ADBFC1C181E080930D021B
:101ED0008FEF80930501BAC1E0910502F0910602EF
:101EE00080818F3F39F40E94852FE0910502F091A7
:101EF00006028083E0910502F0910602808188232A
:101F000011F481E003C0863010F085E08083E09119
:101F10000502F091060280810E94382EE0910502B0
:101F2000F091060280818983809107018823E1F383
:101F300080E790E09F938F9387E995E09F938F933D
:101F400081E090E09F938F93CE0101969F938F93B2
:101F500082E08F9381E08F9381E571C1209105022A
:101F600030910602D9018C918150853008F040C033
:101F7000F90181818435E1F52F5F3F4F80E7E7E983
:101F8000F5E0D9010D9001928A95E1F7F90182916E
:101F90000E94A12E8091D6059927AA27BB27BC01B4
:101FA000CD0124EC39E040E050E00E94D177DC0123
:101FB000CB018093B5019093B601A093B701B09384
:101FC000B8018091D7059927AA27BB27BC01CD016D
:101FD0000E94D177DC01CB018093B1019093B201D3
:101FE000A093B301B093B4010E94852F898301C0EF
:101FF0001982809107018823E1F381E090E09F93AB
:102000008F93CE0101969F938F9381E08F938F934F
:1020100083E58F930E946D0D8DB79EB707968DBF98
:1020200026C0E0910502F0910602E0818E2F8150DA
:10203000853018F48E2F0E94382E0E94852F8983B8
:10204000809107018823E1F381E090E09F938F93D3
:10205000CE0101969F938F9381E08F938F9386E4B7
:102060008F930E946D0DADB7BEB71796ADBF80912F
:10207000A602882329F46EE670E089810E940F375A
:1020800080E00E945C078091BE050E940474DEC05F
:10209000E0910502F09106028081992787FD9095D5
:1020A0009093DA068093D9068181992787FD9095D0
:1020B0009093DC068093DB068281992787FD9095BB
:1020C0009093DE068093DD068381992787FD9095A6
:1020D0009093E0068093DF068481992787FD909591
:1020E0009093E2068093E1068581992787FD90957C
:1020F0009093E4068093E3068681992787FD909567
:102100009093E6068093E5068781992787FD909551
:102110009093E8068093E7068085992787FD909540
:102120009093EA068093E9068185992787FD90952B
:102130009093EC068093EB068285992787FD909516
:102140009093EE068093ED068385992787FD909501
:102150009093F0068093EF0679C0E0910502F0912C
:10216000060280810E946A348A83882319F481E000
:10217000898301C01982809107018823E1F388E0F7
:1021800090E09F938F9386E596E09F938F9321E055
:1021900030E03F932F9380910502909106029F9328
:1021A0008F933F932F93CE0102969F938F933F93EC
:1021B0002F93CE01820F931F9F938F9384E08F9371
:1021C00081E08F9385E58F930E946D0DEDB7FEB78B
:1021D00073963BC0809104028930C0F120910502C2
:1021E000309106022F5F3F4F88E0A6E5B6E0F90187
:1021F00001900D928A95E1F7D9018E910E94C0332A
:102200008A83882319F481E0898301C0198280912F
:1022100007018823E1F321E030E03F932F93CE01C3
:1022200002969F938F933F932F93CE01820F931F1C
:102230009F938F9382E08F9381E08F9387E58F93B5
:102240000E946D0DEDB7FEB73B96EDBF8091000487
:1022500099278436910509F4CDC085369105ACF4F3
:102260008136910509F481C0823691052CF48B34B6
:10227000910509F45DC021C18236910509F482C03F
:102280008336910509F491C018C18C36910509F483
:10229000FFC08D3691054CF48736910509F40AC1CB
:1022A0008836910509F4C4C008C18437910529F026
:1022B0008637910509F4FAC000C180910702A09108
:1022C0000502B0910602803140F080E1E9EDF3E0D3
:1022D0000D9001928A95E1F70DC08D919D910D9021
:1022E000BC91A02D8093D9039093DA03A093DB03D4
:1022F000B093DC03809107018823E1F31F92809162
:1023000004018F9384E58F930E946D0D8AEF809373
:1023100002028FEF8093050180EA9FE00E948C16F5
:102320009093FB018093FA010F900F900F90C5C01E
:10233000E0910502F0910602808191819093C202A2
:102340008093C1022091BF023091C002821B930B87
:10235000845E9D4F68E671E00E941078845B904037
:102360009093BE028093BD02A8C0E0910502F09157
:102370000602808180930601803298F08FE180937D
:1023800006010FC0A0910502B09106028BE0E1EFBB
:10239000F3E00D9001928A95E1F78091FA03809322
:1023A00082058FEF8093050188C08091FE01909196
:1023B000FF01892B89F4E0910502F0910602E0818A
:1023C000EE2351F08AE0E89FC00111240E948C1690
:1023D0009093CC038093CB03E0910502F091060229
:1023E00090818AE0989FC00111249093FF0180930F
:1023F000FE0115C08FEF80930501E0910502F09179
:10240000060290818AE0989FC001112490930102F6
:1024100080930002892B19F081E080930F0280EAFB
:102420009FE00E948C169093FB018093FA0145C0B7
:102430008FEF80930501E0910502F09106029081F3
:1024400097FD08C082E080930C021092FD0110926B
:10245000FC011AC0909580916402892B80936402DC
:1024600091818AE0989FC00111249093FD0180938F
:10247000FC0184E080930C0280EA9FE00E948C16AD
:102480009093FB018093FA0181E08093100215C0C4
:102490008FEF80930501E0910502F09106028081A3
:1024A0008093650281E08093110207C081E08093F0
:1024B0000E0203C081E08093120210920A02109271
:1024C00006021092050210920402E3E0CE5F0C9423
:1024D0008B78982F8091C00085FFFCCF9093C60029
:1024E00008950F931F9388E18093C1008091C000ED
:1024F00082608093C0008091C10080688093C10099
:102500008091C10080648093C10000E010E00093DE
:10251000C5008AE290E08093C4008091000290910F
:1025200001020E948C169093CE038093CD038CED14
:1025300090E00E948C169093FD038093FC03109210
:10254000CF0380E58093D00383E08093D3038BE0B7
:102550008093D1031092D2031093060200930502D8
:10256000109204021F910F910895A0E1B0E0EBEBEF
:10257000F2E10C946C7880910701882309F4C1C2C0
:102580008091FA019091FB010E949516882361F0D9
:102590001092FD011092FC011092010210920002B3
:1025A0001092FF011092FE018091FC019091FD01BB
:1025B000892B41F080919E0490919F040E94951672
:1025C000882329F480911002882309F460C0809147
:1025D0000701882309F45BC080910C0200E211E03E
:1025E0008430A8F00E94112080E590E09F938F93A3
:1025F0001F930F9381E08F938F9388E48F930E94B2
:102600006D0D2DB73EB7295F3F4F2DBF34C01092DF
:10261000660282E194E09F938F9386E090E29F931D
:102620008F93E091BB03F091BC03099584E190E0A6
:102630009F938F931F930F9381E090E09F938F93CD
:102640008CE092E09F938F9382E08F9381E08F9351
:1026500088E48F930E946D0D80910C02982F8F5FFC
:1026600080930C022DB73EB7215F3F4F2DBF9430B2
:1026700010F010920C028091FC019091FD010E94DB
:102680008C1690939F0480939E0410921002809168
:102690001102882351F180910701882331F10E94B2
:1026A000112080E590E09F938F9380E291E09F93CB
:1026B0008F9321E030E03F932F938FE191E09F9340
:1026C0008F933F932F9385E692E09F938F9383E0C0
:1026D0008F9381E08F938CE48F930E946D0D109205
:1026E00011028DB79EB70F968DBF80910E02882381
:1026F000D1F0809107018823B1F08AE090E09F93A8
:102700008F938FEC93E09F938F9381E08F938F93C0
:1027100086E58F930E946D0D10920E022DB73EB785
:10272000295F3F4F2DBF809112028823D9F08091FD
:1027300007018823B9F08BE090E09F938F9381EF9E
:1027400093E09F938F9381E08F93809104018F9307
:1027500087E48F930E946D0D109212028DB79EB781
:1027600007968DBF8091FC039091FD030E94951602
:10277000882309F461C080910701882309F45CC0B3
:102780008091B3059927880F991F880F991F7C01A5
:102790000027F7FC0095102F80910303909104030C
:1027A000A0910503B0910603BC01CD01A8019701DA
:1027B0000E9445783093EA032093E9038091FB025D
:1027C0009091FC02A091FD02B091FE02BC01CD01EE
:1027D000A80197010E9445783093EC032093EB0306
:1027E000809190028093ED0380918F028093EE039D
:1027F00088E090E09F938F9389EE93E09F938F936F
:1028000081E08F9383E08F938BE68F930E946D0D11
:102810008091EF032DB73EB7295F3F4F2DBF853025
:1028200018F086E08093EF0383E690E00E948C1618
:102830009093FD038093FC0380910002909101022C
:10284000892B41F08091CD039091CE030E94951683
:10285000882321F480910F02882339F180910701A8
:10286000882319F10E94053682E490E09F938F93AC
:1028700080E495E09F938F9381E08F938F9384E41E
:102880008F930E946D0D10920F028DB79EB7079621
:102890008DBF8091000290910102009731F00E945B
:1028A0008C169093CE038093CD038091FE0190917E
:1028B000FF01892B09F4B8C08091CB039091CC0320
:1028C0000E949516882309F4AFC0809107018823E0
:1028D00009F4AAC08091B3059927880F991F880F22
:1028E000991F7C010027F7FC0095102F80910303AE
:1028F00090910403A0910503B0910603BC01CD01A2
:10290000A80197010E9445783093BE032093BD0330
:102910008091FB029091FC02A091FD02B091FE0219
:10292000BC01CD01A80197010E9445783093C003F6
:102930002093BF0320918507309186074091870738
:1029400050918807DA01C90163E0880F991FAA1F17
:10295000BB1F6A95D1F7820F931FA41FB51F820F6B
:10296000931FA41FB51F20919501309196014091AE
:10297000970150919801BC01CD010E944578309398
:10298000C2032093C1038091CB029091CC02A0910D
:10299000CD02B091CE0239E0B595A7959795879570
:1029A0003A95D1F78093C3038091C7029091C802F2
:1029B000A091C902B091CA0229E0B595A795979553
:1029C00087952A95D1F78093C4038091D302909183
:1029D000D402A091D502B091D60209E0B595A79591
:1029E000979587950A95D1F78093C5038EE090E07F
:1029F0009F938F938DEB93E09F938F9381E08F93C1
:102A00008F9383E48F930E946D0D8091FE019091CE
:102A1000FF010E948C169093CC038093CB032DB7BB
:102A20003EB7295F3F4F2DBF809106018F3F71F167
:102A3000992714E0880F991F1A95E1F78E5E9D4F34
:102A400040E150E0BC01CE0101960E94247680E175
:102A500090E09F938F93CE0101969F938F9381E097
:102A600090E09F938F9386E091E09F938F9382E015
:102A70008F9381E08F9381E48F930E946D0D8FEF90
:102A8000809306018DB79EB70B968DBF809182050E
:102A90008823D1F0809107018823B1F081E090E094
:102AA0009F938F9382E895E09F938F9381E08F931C
:102AB0008F9382E48F930E946D0D109282052DB743
:102AC0003EB7295F3F4F2DBF80910D028823C9F08B
:102AD000809107018823A9F084E390E09F938F936E
:102AE0008FEB96E09F938F9381E08F938F9380E598
:102AF0008F930E946D0D10920D028DB79EB70796B1
:102B00008DBFE6E0C05F0C9488781F920F920FB6DD
:102B10000F9211242F933F935F936F937F938F9323
:102B20009F93AF93BF93EF93FF9320E08091200298
:102B3000882329F080912002815080932002809187
:102B40009E03882319F0815080939E038091280270
:102B50008150809328028F3F09F057C089E080930D
:102B600028028091260290912702019690932702D5
:102B70008093260280910A018F5F817080930A0101
:102B8000882319F481E08093250286B18091210287
:102B900090912202892B21F18091210290912202B1
:102BA0000B9750F080912102909122020A97909306
:102BB00022028093210204C010922202109221026C
:102BC0008091210290912202209108013091090107
:102BD00082239323892B11F021E008C020E006C056
:102BE0008FEF9FEF9093090180930801809102017C
:102BF000222331F08A3011F45A9A07C0479A05C04F
:102C00008A3011F45A9801C047988091290288238C
:102C100009F472C02091E801222309F06DC080916F
:102C2000A40583FF69C086B19927FC01E071F070AB
:102C300084FF14C080912302909124020196909306
:102C40002402809323028091230290912402895EC2
:102C5000934008F451C0209329024EC08091230272
:102C600090912402892B09F443C080912302909112
:102C700024028A569140E0F580912302909124022B
:102C800069E270E00E94FC77809123029091240217
:102C9000860F971F90932402809323028091230232
:102CA000909124020B9750F080912302909124027E
:102CB0000A979093C2028093C10204C0F093C202AB
:102CC000E093C1028091C1029091C2022091BF02A3
:102CD0003091C002821B930B845E9D4F68E671E0C9
:102CE0000E941078845B90409093BE028093BD0256
:102CF0001092240210922302FF91EF91BF91AF91A5
:102D00009F918F917F916F915F913F912F910F9044
:102D10000FBE0F901F901895209126023091270228
:102D2000280F391FC901019608952091260230917C
:102D30002702821B930B892F9927869580749070A8
:102D40000895CF93DF930E948C16EC01CE010E9470
:102D500095168823D9F3DF91CF910895CF93DF9310
:102D60000E948C16EC0109C080910F01882329F084
:102D700090930F018FEC80937A00CE010E949516FC
:102D8000982F882389F3DF91CF9108959FB7F89406
:102D90005F983E9A469A8091B0008F708093B00001
:102DA0008091B00083608093B0008091B1008B73FC
:102DB0008093B1008091B1008B608093B10010923C
:102DC000B2008FEF8093B3008091B0008068809351
:102DD000B000809170008A7F8093700080917000B5
:102DE0008260809370009FBF08958AE090E00E9407
:102DF0008C16909331028093300282E085BD83EA85
:102E000084BD17BC84EB88BD86E086BD80916E00D2
:102E1000816080936E0008951F920F920FB60F92FB
:102E200011242F933F934F935F936F937F938F93CF
:102E30009F93AF93BF93CF93DF93EF93FF938091D3
:102E4000020190912A02843108F011C1992309F0FE
:102E50006AC38091B00086FFECC08091B0008F7B88
:102E60008093B00089EA93E090932C0280932B0228
:102E700080910B0190910C019C01220F331F280FB0
:102E8000391F8091A1019927880F991F880F991FD9
:102E9000280F391F37FF02C02D5F3F4FC90195959D
:102EA00087959595879590930C0180930B0190934E
:102EB0001E0280931D028091F9056091C505209145
:102EC000030330910403409105035091060380FFF2
:102ED0002CC0772788279927EA01D90157FF04C01A
:102EE000A158BF4FCF4FDF4FE7E0D595C795B795B6
:102EF000A795EA95D1F79D01AE010E94D1779B017C
:102F0000AC0197FF04C0215C3F4F4F4F5F4F66E01D
:102F100055954795379527956A95D1F780911D026C
:102F200090911E02820F931F2BC077278827992725
:102F3000EA01D90157FF04C0A158BF4FCF4FDF4F5F
:102F400027E0D595C795B795A7952A95D1F79D0107
:102F5000AE010E94D1779B01AC0197FF04C0215CB8
:102F60003F4F4F4F5F4FF6E0559547953795279563
:102F7000FA95D1F780911D0290911E02821B930B4E
:102F800090931E0280931D028091C605282F33273F
:102F9000220F331F220F331F80911D0290911E02BA
:102FA000821793077CF08091C705282F3327220FC3
:102FB000331F220F331F80911D0290911E0228178C
:102FC000390724F430931E0220931D0220912B0216
:102FD00030912C0280911D0290911E02280F391F02
:102FE0002050324030932C0220932B0280911D02FE
:102FF00090911E0297FD03969595879595958795D7
:1030000090931E0280931D0245E02D3D340718F079
:103010008CED95E005C02757314030F487E791E00B
:1030200090932C0280932B0280912B0290912C0282
:1030300043C28091B00080648093B0008091CC0541
:10304000282F33278DED96E0289FA001299F500D52
:10305000389F500D1124CA0120912D0230912E026B
:10306000821B930B90932C0280932B0259C29923BD
:1030700009F059C28091B00086FF23C28091B00050
:103080008F7B8093B000E0912F02EE23F1F48091CA
:10309000CC05282F33278DED96E0289FA001299F8E
:1030A000500D389F500D1124CA0120912D023091EE
:1030B0002E02821B930B90932C0280932B02109272
:1030C0002E0210922D02469A2BC289EA93E0909329
:1030D0002C0280932B028E2F99278330910509F4BF
:1030E000A4C1843091053CF48130910561F00297D0
:1030F00009F4D2C0AAC18430910509F499C1059799
:1031000009F4A0C1A2C180910B0190910C019C0116
:10311000220F331F280F391F8091A1019927880F93
:10312000991F880F991F280F391F37FF02C02D5F85
:103130003F4FC901959587959595879590930C017B
:1031400080930B0190931E0280931D028091F905DC
:103150006091C5052091030330910403409105035C
:103160005091060380FF2CC0772788279927EA0112
:10317000D90157FF04C0A158BF4FCF4FDF4F27E001
:10318000D595C795B795A7952A95D1F79D01AE011D
:103190000E94D1779B01AC0197FF04C0215C3F4F97
:1031A0004F4F5F4FA6E05595479537952795AA95C0
:1031B000D1F780911D0290911E02820F931F27C0AC
:1031C00077278827992757FF04C021583F4F4F4F33
:1031D0005F4FF7E05595479537952795FA95D1F7C5
:1031E0000E94D1779B01AC0197FF04C0215C3F4F47
:1031F0004F4F5F4FE6E05595479537952795EA95F0
:10320000D1F780911D0290911E02821B930B909327
:103210001E0280931D028091C605282F3327220F9E
:10322000331F220F331F80911D0290911E028217BF
:1032300093077CF08091C705282F3327220F331F77
:10324000220F331F80911D0290911E02281739070B
:1032500024F430931E0220931D0280912B02909142
:103260002C0220911D0230911E02820F931F80506C
:10327000924090932C0280932B0280911D0290919A
:103280001E0297FD03969595879595958795909342
:103290001E0280931D02ECC080910D0190910E01E1
:1032A0009C01220F331F280F391F8091A0019927FD
:1032B000880F991F880F991F280F391F37FF02C0E9
:1032C0002D5F3F4FC901959587959595879590936B
:1032D0000E0180930D0190931C0280931B0280913C
:1032E000F9056091C905A091FB02B091FC02C09163
:1032F000FD02D091FE0281FF2AC0772788279927F7
:103300009D01AE01D7FF04C021583F4F4F4F5F4F83
:10331000A7E05595479537952795AA95D1F70E942F
:10332000D1779B01AC0197FF04C0215C3F4F4F4F09
:103330005F4FF6E05595479537952795FA95D1F764
:1033400080911B0290911C02820F931F29C0772746
:10335000882799279D01AE01D7FF04C021583F4F10
:103360004F4F5F4FE7E05595479537952795EA957D
:10337000D1F70E94D1779B01AC0197FF04C0215C7B
:103380003F4F4F4F5F4F76E05595479537952795BF
:103390007A95D1F780911B0290911C02821B930BAE
:1033A00090931C0280931B028091CA05282F33271B
:1033B000220F331F220F331F80911B0290911C029A
:1033C000821793077CF08091CB05282F3327220F9B
:1033D000331F220F331F80911B0290911C0228176C
:1033E000390724F430931C0220931B0280912B0296
:1033F00090912C0220911B0230911C02820F931F8E
:103400008050924090932C0280932B0280911B025B
:1034100090911C0297FD03969595879595958795B4
:1034200090931C0280931B0223C08091530702C01B
:1034300080912D079927880F991F880F991F87550D
:103440009E4F12C080915B07F5CFFF27EE0FFF1F45
:10345000E154F94F20813181220F331F80912B02DB
:1034600090912C02820F931F90932C0280932B0239
:1034700080912B0290912C0255E08D3D950718F01C
:103480008CED95E005C08757914030F487E791E0D7
:1034900090932C0280932B0220912B0230912C02CE
:1034A0002C5B304030932C0220932B0280912D0214
:1034B00090912E02820F931F90932E0280932D02E3
:1034C0002FC08091B00080648093B0008CEB90E0BE
:1034D00090932C0280932B0280912D0290912E02CA
:1034E00084549F4F90932E0280932D0280911F024F
:1034F000882321F08091AF02853B20F480911F0248
:10350000823011F4469801C0469A80912F028F5F55
:1035100080932F029091CC05981710F410922F02EF
:1035200081E080932A0220912B0230912C0241E00D
:103530002F37340730F08FEF8093B3002F5F304088
:103540000FC02F3F3105C9F0C0F0A9014F5F5040B7
:103550004F37510550F480E88093B3002058304035
:1035600030932C0220932B0212C08FEF8093B30074
:1035700050932C0240932B020AC080912B0280931F
:10358000B30010922C0210922B0210922A02FF918B
:10359000EF91DF91CF91BF91AF919F918F917F91EB
:1035A0006F915F914F913F912F910F900FBE0F90B0
:1035B0001F90189510927C008FEC80937A000895EC
:1035C000CF93DF9383E090E00E941A2EC82FDD276F
:1035D000C531D10508F02A97C7BD1092360284E69E
:1035E00090E00E94AE1680911301909114018052D8
:1035F000934010F4C0E0D0E0CA3FD105F8F4C7BD55
:1036000082E390E00E94AE1687E294E09F938F934E
:1036100089E692E19F938F93E091BB03F091BC0305
:10362000099580911301909114010F900F900F90C4
:103630000F908052934010F02196DECF6C2F83E0E4
:1036400090E00E94222EC09393058091A40580FFF4
:1036500009C08C2F8A508B3E28F08091D40380645F
:103660008093D403C7BD8CE291E00E94AE16DF9137
:10367000CF910895EF92FF921F93CF9310E080EDCA
:1036800097E00E948C167C01CCE8133019F4CB3003
:1036900008F0C9E010E080914602909147028C5FEB
:1036A000934024F48091120181500AC08091460217
:1036B000909147028750944034F0809112018F5FBF
:1036C0008093120101C011E0809144029091450263
:1036D0008C5F934024F48091110181500AC0809145
:1036E0004402909145028750944034F0809111013A
:1036F0008F5F8093110101C01F5F80914202909102
:1037000043028C5F934024F48091100181500AC0E1
:10371000809142029091430287509440C4F080917E
:1037200010018F5F8093100113C089E294E09F9392
:103730008F9389E692E19F938F93E091BB03F09181
:10374000BC0309950F900F900F900F905FC01F5F03
:1037500082E18093700280916B028E7F80936B0276
:1037600085EA8093BC00809112018A3040F48091F8
:10377000D40381608093D4038AE080931201809106
:103780001201863F40F08091D40381608093D4037E
:1037900085EF80931201809111018A3040F480916D
:1037A000D40382608093D4038AE0809311018091D6
:1037B0001101863F40F08091D40382608093D4034E
:1037C00085EF80931101809110018A3040F480913F
:1037D000D40384608093D4038AE0809310018091A5
:1037E0001001863F40F08091D40384608093D4031D
:1037F00085EF8093100180917002882339F0C70112
:103800000E949516882309F090CFF5CF10920F01F2
:103810008FEC80937A0080910F018823E1F3CA3006
:1038200020F48AE090E00E94AE16C15009F02DCF3E
:1038300086E490E00E94AE16CF911F91FF90EF902A
:1038400008951F920F920FB60F921124AF92BF925C
:10385000CF92DF92EF92FF920F931F932F933F939C
:103860004F935F936F937F938F939F93AF93BF9388
:10387000EF93FF9380914F02282F3327442755273A
:103880008F5F80934F02F9012231310508F08CC31C
:10389000E25CFF4F0C9497788091780090917900CA
:1038A00046C080917800909179002CC18091780079
:1038B00090917900909352028093510257C1809168
:1038C0000C0390910D032091780030917900821BB8
:1038D000930B909384058093830580918305909149
:1038E000840590935C0280935B025EC180917800B6
:1038F0009091790020910E0330910F03821B930B5E
:1039000090939205809391058091910590919205F5
:1039100090935E0280935D0249C38091550290911D
:1039200056022091780030917900820F931F909376
:1039300056028093550281E03AC3809153029091E0
:1039400054022091780030917900820F931F909358
:1039500054028093530284E02AC380911D01909108
:103960001E019C01220F331F280F391F8091780000
:103970009091790063E070E00E94FC77260F371F7A
:10398000369527953695279530931E0120931D0176
:1039900085E00DC3809178009091790040910803F3
:1039A00050910903841B950B90933D0280933C0238
:1039B00080913C0290913D02029704F122E04E3E3C
:1039C000520784F4209150022B5F2093500225501F
:1039D00080917C0290917D02845F914018F4215F78
:1039E0002093500280915002853684F14F5F5F4FE3
:1039F0005093090340930803845626C080913C02EB
:103A000090913D028F5F9F4F0CF532E04732530794
:103A1000ECF0209150022550209350022B5F8091B2
:103A20007C0290917D02845F914018F42F50209386
:103A30005002809150028C394CF4415050405093C8
:103A40000903409308038C598093500281E08093CE
:103A50003B02809178009091790090938A05809341
:103A6000890580913C0290913D029C01442737FDDD
:103A70004095542F8091C3029091C402A091C50239
:103A8000B091C602820F931FA41FB51F8093C3027B
:103A90009093C402A093C502B093C6022091C302C2
:103AA0003091C4024091C5025091C60257FF04C034
:103AB00021503C4F4F4F5F4F0AE055954795379542
:103AC00027950A95D1F78091C3029091C402A091E5
:103AD000C502B091C602821B930BA40BB50B809359
:103AE000C3029093C402A093C502B093C6022EC134
:103AF0008091530290915402209178003091790086
:103B0000820F931F909354028093530210924E029F
:103B100050C2809102018A3071F4809178009091B6
:103B200079002091510230915202820F931F019629
:103B30009695879517C04091510250915202843159
:103B400058F02091780030917900240F351F8FEFC5
:103B500097E0821B930B06C08091780090917900CA
:103B6000840F951F909343028093420286E01FC208
:103B700080910C0390910D03209178003091790091
:103B8000821B930B9093840580938305809183051A
:103B90009091840520915B0230915C02820F931F0B
:103BA000909341028093400287E001C280917800A7
:103BB0009091790020910E0330910F03821B930B9B
:103BC0009093920580939105809191059091920533
:103BD00020915D0230915E02820F931F90933F020D
:103BE00080933E02E3C120915502309156028091AC
:103BF000780090917900280F391F30935602209356
:103C00005502809102018A3019F4220F331F04C03B
:103C1000220F331F220F331F309356022093550279
:103C20002091550230915602C90137FD0796A3E055
:103C300095958795AA95E1F7909347028093460260
:103C40008091570290915802820F931F97FD019621
:103C50009595879590935802809357022091180369
:103C600030911903821B930B90931C0180931B01CD
:103C700020914C0230914D0280911B0190911C01CA
:103C8000280F391F37FF02C02F5F3F4F359527950B
:103C900030934D0220934C024ECE2091530230912E
:103CA00054028091780090917900280F391F309349
:103CB000540220935302809102018A3019F4220F9A
:103CC000331F04C0220F331F220F331F30935402BF
:103CD000209353022091530230915402C90137FDC1
:103CE000079663E0959587956A95E1F7909345026D
:103CF000809344028091590290915A02820F931F3F
:103D000097FD01969595879590935A028093590255
:103D10002091160330911703821B930B90931A0185
:103D20008093190120914A0230914B028091190130
:103D300090911A01280F391F37FF02C02F5F3F4FA4
:103D40003595279530934B0220934A0283E02FC18B
:103D500010924F0281E080930F0180913202909186
:103D6000330201969093330280933202809178005F
:103D70009091790090931401809313018091130125
:103D800090911401AA27BB27A0905F02B090600217
:103D9000C0906102D0906202A80EB91ECA1EDB1E3E
:103DA000A0925F02B0926002C0926102D092620261
:103DB000809163028F5F80936302823108F4F6C0C2
:103DC0008091150190911601A0911701B0911801F1
:103DD0007C018D0123E0EE0CFF1C001F111F2A95B2
:103DE000D1F7E81AF90A0A0B1B0BEA0CFB1C0C1D95
:103DF0001D1D80913602992787FD9095A92FB92F17
:103E0000BC01CD0126EC34E240E050E00E94D177C5
:103E1000DC01CB01E81AF90A0A0B1B0BD801C70118
:103E20000496A11DB11DB7FF05C0D801C7010B96AF
:103E3000A11DB11D13E0B595A795979587951A9586
:103E4000D1F78093150190931601A0931701B093B9
:103E5000180180918B0590918C057C010027F7FC5F
:103E60000095102F8091150190911601A0911701D6
:103E7000B0911801E81AF90A0A0B1B0BE092A10293
:103E8000F092A2020093A3021093A40220913702A1
:103E9000309138024091390250913A0257FF04C0E4
:103EA000215F3F4F4F4F5F4FF4E055954795379552
:103EB0002795FA95D1F78091370290913802A09119
:103EC0003902B0913A02821B930BA40BB50B80937D
:103ED000370290933802A0933902B0933A0280914E
:103EE000370290913802A0913902B0913A028E0DBA
:103EF0009F1DA01FB11F8093370290933802A0939B
:103F00003902B0933A028091340290913502AC01AB
:103F1000E5E0440F551FEA95E1F7481B590B8091E6
:103F2000370290913802A0913902B0913A02B7FF5E
:103F300003C00F96A11DB11D74E0B595A795979587
:103F400087957A95D1F72091A1023091A202281B82
:103F5000390B63E0220F331F6A95E1F7240F351FF9
:103F600037FF02C0215E3F4F45E0359527954A95C2
:103F7000E1F73093350220933402D601C501D7FE14
:103F800003C00196A11DB11DB595A795979587957D
:103F900080935F0290936002A0936102B0936202EB
:103FA00089E08093630202C010924F0282E0809306
:103FB0004E0280914E0280937C0080914F028823B4
:103FC00019F08FEC80937A00FF91EF91BF91AF9140
:103FD0009F918F917F916F915F914F913F912F9121
:103FE0001F910F91FF90EF90DF90CF90BF90AF9017
:103FF0000F900FBE0F901F90189590E2E0E2F1E055
:104000008FE49193815087FFFCCF089590916602D1
:10401000E0E2F1E0E90FF11D80839F5F909366027B
:104020000895EF92FF920F931F93CF93DF93209108
:10403000640220FF0AC080916502882311F081503C
:1040400002C080911F018093650221FF0CC09091F6
:10405000650280911F01981719F41092650203C040
:104060009F5F90936502822F992780FF04C081FF94
:1040700002C0109265020E94FD1F80916502282FE8
:104080003327C6E0EC2EC0E2FC2EC091BB03D091DA
:10409000BC038A3098F481E1809366023F932F93AA
:1040A00080E694E09F938F93FF92EF92FE01099533
:1040B0002DB73EB72A5F3F4F2DBF11C080E18093DF
:1040C00066023F932F9385E694E09F938F93FF9230
:1040D000EF92FE0109958DB79EB706968DBF209190
:1040E0006502822F9927AA27BB27FC01429710F06F
:1040F0000C94BE2AE05BFF4FB6E0EB2EB0E2FB2E45
:10410000C091BB03D091BC030C94977810926602C7
:104110008AE694E09F938F9306E010E2FF92EF927D
:10412000FE01099584E1809366020F900F900F9035
:104130000F9084E690E09F938F9380E590E09F93AB
:104140008F931F921F92809102016AE00E94F07784
:10415000892F99279F938F93809102010E94F07776
:1041600099279F938F938AE794E09F938F93FF9271
:10417000EF92E091BB03F091BC03099588E2809334
:1041800066022DB73EB7225F3F4F2DBF89E096E014
:104190009F938F930E94852F99279F938F938FE8EA
:1041A00094E09F938F93FF92EF92E091BB03F09185
:1041B000BC0309958DB79EB708968DBF9091D40327
:1041C000992351F08CE380936602892F99279F935E
:1041D0008F938DE994E085C690916C02992371F0DC
:1041E0008CE380936602892F99279F938F9384EBAA
:1041F00094E09F938F931F930F9391C08091D50369
:1042000084FF07C08CE38093660289EC94E00C94F1
:10421000502A8091910190919201069710F00C9490
:10422000C72A8CE38093660286ED94E00C94502AB2
:104230008091A405A6E0EA2EA0E2FA2EC091BB036D
:10424000D091BC0380FF74C0109266028091A102DD
:104250009091A202A091A302B091A402BC01CD0151
:1042600025E030E040E050E00E9445783F932F93F6
:1042700083EE94E09F938F93FF92EF92FE01099556
:1042800084E1809366022DB73EB72A5F3F4F2DBF72
:1042900080919D0290919E02A0919F02B091A002F8
:1042A000BC01CD0125E030E040E050E00E944578BF
:1042B0003F932F9380EF94E09F938F93FF92EF9221
:1042C000E091BB03F091BC03099588E280936602FC
:1042D0008DB79EB706968DBF809113019091140102
:1042E0009F938F938DEF94E09F938F93FF92EF9224
:1042F000E091BB03F091BC0309958CE380936602C7
:104300002DB73EB72A5F3F4F2DBF87B599279F93A3
:104310008F938AE095E09F938F93FF92EF92E091C5
:10432000BB03F091BC0309958DB79EB706962FC7C6
:104330001092660287E195E09F938F93FF92EF9230
:10434000FE01099584E1809366020F900F900F9013
:104350000F9086E295E09F938F93FF92EF92E0910A
:10436000BB03F091BC03099588E2809366020F902D
:104370000F900F900F908FE295E09F938F93FF9295
:10438000EF92E091BB03F091BC0309958CE380931D
:1043900066020F900F900F900F908EE395E09F9321
:1043A0008F93FF92EF920C94542A1092660287E446
:1043B00095E09F938F9306E010E2FF92EF92FE014B
:1043C000099584E1809366020F900F900F900F90F3
:1043D0008091030390910403A0910503B09106031B
:1043E000B7FF04C081509C4FAF4FBF4FFAE0B59567
:1043F000A79597958795FA95D1F7BF93AF939F931C
:104400008F9384E595E09F938F931F930F93E09193
:10441000BB03F091BC03099588E2809366022DB737
:104420003EB7285F3F4F2DBF8091FB029091FC0269
:10443000A091FD02B091FE02B7FF04C081509C4FD5
:10444000AF4FBF4FEAE0B595A79597958795EA9549
:10445000D1F7BF93AF939F938F9383E695E09F939C
:104460008F931F930F93E091BB03F091BC030995C9
:104470008CE3809366028DB79EB708968DBF8091BE
:10448000C1029091C2029F938F9382E795E09F9320
:104490008F931F930F93E091BB03F091BC03099599
:1044A0002DB73EB72A5F3F4F0DC71092660280912D
:1044B000C3069091C4069F938F938091C1069091FB
:1044C000C2069F938F9381E895E09F938F93FF920D
:1044D000EF92FE01099584E1809366028DB79EB745
:1044E00008968DBF8091C7069091C8069F938F93C1
:1044F0008091C5069091C6069F938F9381E995E0C0
:104500009F938F93FF92EF92E091BB03F091BC03D6
:10451000099588E2809366022DB73EB7285F3F4F2A
:104520002DBF8091CB069091CC069F938F93809165
:10453000C9069091CA069F938F9381EA95E09F9355
:104540008F93FF92EF92E091BB03F091BC0309952A
:104550008CE3809366028DB79EB708968DBF8091DD
:10456000CF069091D0069F938F938091CD06909126
:10457000CE069F938F9381EB95E0A2C010926602C6
:1045800080919905E82FFF27EE0FFF1FE154F94FA7
:10459000808191819F938F9380919805E82FFF27C9
:1045A000EE0FFF1FE154F94F808191819F938F930C
:1045B00081EC95E09F938F93FF92EF92FE01099516
:1045C00084E1809366028DB79EB708968DBF809177
:1045D0009B05E82FFF27EE0FFF1FE154F94F808165
:1045E00091819F938F9380919A05E82FFF27EE0F7B
:1045F000FF1FE154F94F8081918188589F4F9F930D
:104600008F9381ED95E09F938F93FF92EF92E091CE
:10461000BB03F091BC03099588E2809366022DB735
:104620003EB7285F3F4F2DBF80919D05E82FFF27A4
:10463000EE0FFF1FE154F94F8081918182599F4F06
:104640009F938F9380919C05E82FFF27EE0FFF1F0C
:10465000E154F94F8081918182599F4F9F938F93AD
:1046600081EE95E09F938F93FF92EF92E091BB03D1
:10467000F091BC0309958CE3809366028DB79EB7D9
:1046800008968DBF80919F05E82FFF27EE0FFF1F33
:10469000E154F94F8081918182599F4F9F938F936D
:1046A00080919E05E82FFF27EE0FFF1FE154F94F81
:1046B0008081918182599F4F9F938F9381EF95E0E5
:1046C0009F938F93FF92EF92E091BB03F091BC0315
:1046D00009952DB73EB7285F3F4FF4C5109266028B
:1046E00081E096E09F938F9306E010E2FF92EF92B5
:1046F000FE010995809102010F900F900F900F908D
:104700008A3009F0A1C084E1809366028091180389
:10471000909119039C0197FF02C0295F3F4F287FAA
:10472000821B930B9F938F93809118039091190391
:1047300097FD079673E0959587957A95E1F79F9396
:104740008F93209118033091190337FF02C0295F1E
:104750003F4F63E0359527956A95E1F780914602D2
:1047600090914702821B930B9F938F938FE096E06B
:104770009F938F931F930F93E091BB03F091BC0322
:10478000099588E2809366028DB79EB70A968DBF21
:1047900080911603909117039C0197FF02C0295F37
:1047A0003F4F287F821B930B9F938F93809116031B
:1047B0009091170397FD079653E0959587955A9525
:1047C000E1F79F938F93209116033091170337FFE2
:1047D00002C0295F3F4F43E0359527954A95E1F7A1
:1047E0008091440290914502821B930B9F938F937B
:1047F00080E296E09F938F931F930F93E091BB030A
:10480000F091BC0309958CE3809366022DB73EB707
:10481000265F3F4F2DBF80911403909115039F9306
:104820008F9380911403909115032091420230914F
:104830004302821B930B9F938F9381E396E09F9398
:104840008F931F930F93A3C38B3019F0843108F417
:10485000ADC084E1809366028091180390911903A2
:104860009C0197FF02C0215F3F4F207F821B930B6B
:1048700097FD0196959587959F938F938091180347
:104880009091190397FD0F9624E0959587952A95A9
:10489000E1F79F938F93209118033091190337FF0D
:1048A00002C0295F3F4F83E0359527958A95E1F750
:1048B0008091460290914702821B930B9F938F93A6
:1048C0008FE396E09F938F931F930F93E091BB0329
:1048D000F091BC03099588E2809366022DB73EB73C
:1048E000265F3F4F2DBF80911603909117039C01C7
:1048F00097FF02C0215F3F4F207F821B930B97FDE4
:104900000196959587959F938F938091160390912B
:10491000170397FD0F96B4E095958795BA95E1F743
:104920009F938F93209116033091170337FF02C096
:10493000295F3F4FA3E035952795AA95E1F7809130
:10494000440290914502821B930B9F938F9381E5C4
:1049500096E09F938F931F930F93E091BB03F09189
:10496000BC0309958CE3809366028DB79EB70A96C7
:104970008DBF809114039091150397FD0196959535
:1049800087959F938F9380911403909115032091A5
:10499000420230914302821B930B9F938F9383E6D5
:1049A00096E09F938F931F930F938ECE8D3009F0D7
:1049B000EEC584E1809366028091120199279F934E
:1049C0008F93809118039091190397FD0F96E4E05F
:1049D00095958795EA95E1F79F938F93209118031A
:1049E0003091190337FF02C0295F3F4F73E03595BF
:1049F00027957A95E1F78091460290914702821BB4
:104A0000930B9F938F9382E796E09F938F931F93CF
:104A10000F93E091BB03F091BC03099588E280936A
:104A200066028DB79EB70A968DBF809111019927B6
:104A30009F938F93809116039091170397FD0F9684
:104A400064E0959587956A95E1F79F938F93209100
:104A500016033091170337FF02C0295F3F4F53E021
:104A6000359527955A95E1F780914402909145023A
:104A7000821B930B9F938F9386E896E09F938F936F
:104A80001F930F93E091BB03F091BC0309958CE356
:104A9000809366022DB73EB7265F3F4F2DBF8091B2
:104AA000100199279F938F93809114039091150380
:104AB00097FD0196959587959F938F938091140309
:104AC000909115032091420230914302821B930B77
:104AD0009F938F938AE996E09F938F931F930F93F1
:104AE000E091BB03F091BC0309958DB79EB70A9680
:104AF0004EC3109266028EEA96E09F938F93FF92C8
:104B0000EF92FE01099584E1809366020F900F9069
:104B10000F900F9080910E0390910F039F938F93AE
:104B200080913E0290913F029F938F938BEB96E092
:104B30009F938F93FF92EF92E091BB03F091BC03A0
:104B4000099588E2809366022DB73EB7285F3F4FF4
:104B50002DBF80910C0390910D039F938F938091B3
:104B60004002909141029F938F938AEC96E09F932D
:104B70008F93FF92EF92E091BB03F091BC030995F4
:104B80008CE3809366028DB79EB708968DBF8091A7
:104B90000803909109039F938F9380913C02909119
:104BA0003D029F938F9389ED96E08ACD1092660225
:104BB00080911D0190911E016AE070E00E941078C2
:104BC0009F938F9380911D0190911E016AE070E088
:104BD0000E9410787F936F9388EE96E09F938F9357
:104BE000FF92EF92FE01099584E1809366028DB7F2
:104BF0009EB708968DBF8091FC079091FD076AE0F3
:104C000070E00E94FC779F938F938091FC079091B6
:104C1000FD076AE070E00E94FC777F936F938CEF52
:104C200096E09F938F93FF92EF92E091BB03F091F8
:104C3000BC03099588E2809366022DB73EB7285FD2
:104C40003F4F2DBF8091FE079091FF079F938F9359
:104C500080E197E09F938F93FF92EF92E091BB03E7
:104C6000F091BC0309958CE3809366028DB79EB7E3
:104C700006968DBF80910008909101089F938F93B5
:104C800080E297E02EC11092660282E397E09F9344
:104C90008F93FF92EF92FE01099584E18093660263
:104CA0000F900F900F900F908091BF069091C006CB
:104CB0009F938F938BE397E09F938F93FF92EF9255
:104CC000E091BB03F091BC03099588E280936602F2
:104CD0008DB79EB706968DBF8091AF0299279F939F
:104CE0008F938BE497E09F938F93FF92EF92E091E5
:104CF000BB03F091BC0309958CE3809366022DB74A
:104D00003EB72A5F3F4F2DBF8091BE06992701977E
:104D10009F938F938BE597E0FECA109266028BE615
:104D200097E09F938F93FF92EF92FE01099584E1A4
:104D3000809366020F900F900F900F908091BD02AC
:104D40009091BE029F938F9383E797E09F938F93F9
:104D5000FF92EF92E091BB03F091BC03099588E2CA
:104D6000809366022DB73EB72A5F3F4F2DBF8091DB
:104D7000C1029091C2029F938F9381E897E09F9325
:104D80008F93FF92EF92E091BB03F091BC030995E2
:104D90008CE3809366028DB79EB706968DBF809197
:104DA000BF029091C0029F938F938FE897E099C0C4
:104DB000109266028091B00299279F938F938DE99C
:104DC00097E09F938F93FF92EF92FE01099584E104
:104DD000809366028DB79EB706968DBF8091B10213
:104DE00099279F938F9389EA97E09F938F93FF92E0
:104DF000EF92E091BB03F091BC03099588E28093A8
:104E000066022DB73EB72A5F3F4F2DBF8091B20299
:104E100099279F938F9385EB97E09F938F93FF92B2
:104E2000EF92E091BB03F091BC0309958CE3809372
:104E300066028DB79EB706968DBF8091B302992703
:104E40009F938F9381EC97E04CC010926602809103
:104E5000B40299279F938F938DEC97E09F938F9344
:104E6000FF92EF92FE01099584E1809366028DB76F
:104E70009EB706968DBF8091B50299279F938F9319
:104E800089ED97E09F938F93FF92EF92E091BB03A0
:104E9000F091BC03099588E2809366022DB73EB776
:104EA0002A5F3F4F2DBF8091B60299279F938F9322
:104EB00085EE97E09F938F93FF92EF92E091BB0373
:104EC000F091BC0309958CE3809366028DB79EB781
:104ED00006968DBF8091B70299279F938F9381EF9C
:104EE00097E09F938F93FF92EF92D5CA109266023C
:104EF0008DEF97E09F938F93FF92EF92FE010995BC
:104F000084E1809366020F900F900F900F90809134
:104F1000A10199279F938F9385E098E09F938F93AA
:104F2000FF92EF92E091BB03F091BC03099588E2F8
:104F3000809366028DB79EB706968DBF80911D0245
:104F400090911E029F938F9383E198E09F938F939C
:104F5000FF92EF92E091BB03F091BC0309958CE3C3
:104F6000809366022DB73EB72A5F3F4F2DBF8091D9
:104F7000C70599279F938F938091C60599279F9383
:104F80008F9381E298E09F938F93FF92EF92E0914D
:104F9000BB03F091BC0309958DB79EB70896F7C087
:104FA000109266028FE298E09F938F93FF92EF92A8
:104FB000FE01099584E1809366020F900F900F9097
:104FC0000F908091F503992787FD90959F938F937C
:104FD0008091F403992787FD90959F938F938FE39A
:104FE00098E09F938F93FF92EF92E091BB03F09133
:104FF000BC03099588E2809366022DB73EB7285F0F
:105000003F4F2DBF8091F603992787FD90959F9381
:105010008F938091F70399279F938F938FE498E064
:105020009F938F93FF92EF92E091BB03F091BC03AB
:1050300009958CE3809366028DB79EB708968DBF65
:105040008091FB0399279F938F938091F803992771
:1050500087FD90959F938F938FE598E031CB1092C9
:1050600066028FE698E09F938F93FF92EF92FE0186
:10507000099584E1809366020F900F900F900F9036
:105080008091790699278F7790709F938F93809165
:10509000710699278F7790709F938F9380916906FF
:1050A00099278F7790709F938F93809161069927AE
:1050B0008F7790709F938F938FE798E09F938F9354
:1050C000FF92EF92E091BB03F091BC03099588E257
:1050D000809366028DB79EB70C968DBF809199061E
:1050E00099278F7790709F938F938091910699273E
:1050F0008F7790709F938F938091890699278F77F0
:1051000090709F938F938091810699278F779070ED
:105110009F938F9380E998E09F938F93FF92EF92F4
:10512000E091BB03F091BC0309958CE38093660288
:105130002DB73EB7245F3F4F2DBF8091B906992709
:105140008F7790709F938F938091B10699278F7777
:1051500090709F938F938091A90699278F77907075
:105160009F938F938091A10699278F7790709F933B
:105170008F9381EA98E09F938F93FF92EF92E09153
:10518000BB03F091BC0309958DB79EB70C968DBFFC
:10519000FEC11092660282EB98E09F938F93FF927C
:1051A000EF92FE01099584E1809366020F900F90C3
:1051B0000F900F9080917D06992787FD90959F9382
:1051C0008F9380917506992787FD90959F938F9374
:1051D00080916D06992787FD90959F938F9380917D
:1051E0006506992787FD90959F938F9381EC98E0B2
:1051F0009F938F93FF92EF92E091BB03F091BC03DA
:10520000099588E2809366022DB73EB7245F3F4F31
:105210002DBF80919D06992787FD90959F938F9331
:1052200080919506992787FD90959F938F93809104
:105230008D06992787FD90959F938F938091850682
:10524000992787FD90959F938F9382ED98E09F9388
:105250008F93FF92EF92E091BB03F091BC0309950D
:105260008CE3809366028DB79EB70C968DBF8091BC
:10527000BD06992787FD90959F938F938091B506E2
:10528000992787FD90959F938F938091AD069927DD
:1052900087FD90959F938F938091A506992787FD11
:1052A00090959F938F9383EE98E09F938F93FF92B7
:1052B000EF92E091BB03F091BC0309952DB73EB787
:1052C000245F3F4F2DBF63C11092660284EF98E0C8
:1052D0009F938F9306E010E2FF92EF92FE010995F3
:1052E00084E1809366020F900F900F900F90809151
:1052F0007906881F8827881F97E0899FC00111249D
:105300008D969F938F9380917106881F8827881FA1
:1053100096E0899FC00111248D969F938F93809171
:105320006906881F8827881F95E0899FC00111247E
:105330008D969F938F9380916106881F8827881F81
:105340009927880F991F880F991F8D969F938F9388
:1053500083E099E09F938F93FF92EF92E091BB03DC
:10536000F091BC03099588E2809366028DB79EB7E1
:105370000C968DBF80919906881F8827881F9BE017
:10538000899FC00111248D969F938F9380919106E0
:10539000881F8827881F9AE0899FC00111248D9655
:1053A0009F938F9380918906881F8827881F99E093
:1053B000899FC00111248D969F938F9380918106C0
:1053C000881F8827881F992723E0880F991F2A950F
:1053D000E1F78D969F938F9387E199E09F938F9349
:1053E000FF92EF92E091BB03F091BC0309958CE32F
:1053F000809366022DB73EB7245F3F4F2DBF80914B
:10540000A106881F8827881F9CE0899FC00111245E
:105410008D969F938F938BE299E09F938F93FF924A
:10542000EF92E091BB03F091BC0309958091A9062E
:105430002DB73EB72A5F3F4F2DBF87FF12C080E4D4
:10544000809366028CE399E09F938F93FF92EF9293
:10545000E091BB03F091BC0309950F900F900F9062
:105460000F908091B10687FF12C084E4809366029A
:105470008FE399E09F938F931F930F93E091BB036A
:10548000F091BC0309950F900F900F900F908091B1
:10549000B90687FF7CC088E48093660282E499E0C5
:1054A0009F938F931F930F93E091BB03F091BC03E5
:1054B00009950F900F900F900F9069C0109266029F
:1054C00085E499E09F938F93FF92EF92FE010995F7
:1054D00084E1809366020F900F900F900F9080915F
:1054E000F5019091F6019F938F9383E599E09F9347
:1054F0008F93FF92EF92E091BB03F091BC0309956B
:1055000088E2809366028DB79EB706968DBF809124
:10551000F7019091F8019F938F9380E699E09F9314
:105520008F93FF92EF92E091BB03F091BC0309953A
:1055300089E4809366022DB73EB72A5F3F4F2DBFA7
:105540008DE699E09F938F93FF92EF92E091BB03DA
:10555000F091BC030995809164020F900F900F9019
:105560000F9083FF14C01092F8011092F70160E0D1
:1055700070E08EE090E00E94332E09C080911F0100
:10558000281719F4215020931F01109265021092E0
:105590006402E6E0CDB7DEB70C948878F999FECFC7
:1055A00092BD81BDF89A80B599270895F999FECFEB
:1055B0001FBA92BD81BD60BD0FB6F894FA9AF99AF0
:1055C0000FBE08954AEA20E030E02617370740F47E
:1055D000FC018191480F2F5F3F4F26173707C8F313
:1055E000842F99270895EAEA40E050E046175707CC
:1055F00078F49C01F999FECF32BD21BDF89A80B5AF
:10560000E80F4F5F5F4F2F5F3F4F4617570790F3ED
:105610008E2F9927089581E080939A0582E08093E8
:10562000990583E08093980584E080939B0585E04D
:1056300080939C0586E080939D0587E080939E057E
:1056400088E080939F0589E08093A0058AE080939D
:10565000A1058BE08093A2058CE08093A3050895BB
:105660001F93CF93DF9384E5809397058091020188
:10567000843150F08AE08093B7051092D9058BE110
:105680008093B3058EE40AC083E08093B70580E27F
:105690008093D9058EE18093B30585E58093D60587
:1056A0008093D7058AE68093A40583E08093FA056A
:1056B000AEE1A093A5058FEF8093A705EFE0E093FF
:1056C000A805A093A6051092AA05F8E0F093AB05F3
:1056D00080E48093AC051092AD0584E18093A90528
:1056E0008EE08093AE05B0E1B093AF051CE010935F
:1056F000B005F093B10586EE8093B20580E8809303
:10570000B40550E55093B50586E98093B6055093EE
:10571000B8058093B90576E07093BA0581E280936D
:10572000BB058DE28093BC059AE59093BD0580E2B0
:105730008093BF051092C0051092C1051092C2055A
:105740001092C3051092DB051092DC051092DD0566
:105750001092DE0534E63093C40548E24093C50557
:1057600061E06093F9051092C60527EF2093C70505
:105770007093CC058DE78093CD058093CE05809303
:10578000CF053093C8054093C9051092CA052093F0
:10579000CB0582E38093D0059093D1058093D20509
:1057A0001092F8059093D3055093D4056093D505D6
:1057B000B093D8053093DA058FE58093DF0583EF4A
:1057C0008093E1058AEA8093E3058093E405E09302
:1057D000E005E093E2058EEF8093E5053093E60562
:1057E0009093E7059093E8059093E9058BE4809307
:1057F000EA058093EB058093EC051092ED0570931C
:10580000EE05F093EF059093F005A093F10530932A
:10581000F2053093F30582E08093F4056093BE05B2
:105820001092F6051092F705ABEFB5E0E0E7F1E076
:10583000ED01019009921A95E1F760E770E0CD0162
:10584000845690400E94E22A80930706DF91CF9110
:105850001F910895CF93DF9384E5809397058091FE
:105860000201843150F08AE08093B7051092D90587
:105870008BE18093B3058EE40AC083E08093B70583
:1058800080E28093D9058EE18093B30585E580930E
:10589000D6058093D7058AE68093A40583E080939C
:1058A000FA057EE17093A5058FEF8093A7059FE031
:1058B0009093A8057093A6051092AA0568E06093DE
:1058C000AB0580E48093AC051092AD059093A905DB
:1058D0008AE08093AE0580E18093AF0556E0509357
:1058E000B0056093B10586EE8093B20580E88093A1
:1058F000B4052AE52093B50588E78093B605209383
:10590000B8058093B9055093BA0581E28093BB0531
:105910008DE28093BC052093BD05E0E2E093BF05D6
:105920001092C0051092C1051092C2051092C305D5
:105930001092DB051092DC051092DD051092DE0559
:1059400044E64093C40538E23093C505F1E0F09396
:10595000F9051092C60597EF9093C7055093CC05B3
:105960008DE78093CD058093CE058093CF0540933E
:10597000C8053093C9051092CA059093CB0582E300
:105980008093D0052093D1058093D2051092F8051D
:105990002093D30580E58093D4058CE38093D505CF
:1059A000E093D8059BE49093DA058FE58093DF05BB
:1059B00083EF8093E1058AEA8093E3058093E40511
:1059C00084E18093E0058093E2058EEF8093E50506
:1059D0004093E6052093E7052093E8052093E90529
:1059E0009093EA059093EB059093EC051092ED05EA
:1059F0005093EE056093EF052093F0057093F10549
:105A00004093F2054093F30582E08093F405F09310
:105A1000BE051092F6051092F705ABEFB5E08CE0ED
:105A2000E7E7F1E0ED01019009928A95E1F760E77F
:105A300070E0CD01845690400E94E22A80930706D0
:105A4000DF91CF910895CF93DF9384E580939705FD
:105A500080910201843150F08AE08093B705109262
:105A6000D9058BE18093B3058EE40AC083E080936F
:105A7000B70580E28093D9058EE18093B30585E573
:105A80008093D6058093D7058AE68093A40583E0AA
:105A90008093FA056EE16093A5058FEF8093A705CB
:105AA0009FE09093A8056093A6051092AA0578E060
:105AB0007093AB0580E48093AC051092AD05909394
:105AC000A9057093AE0590E19093AF0556E0509311
:105AD000B0057093B10586EE8093B20580E880939F
:105AE000B40534E63093B50588E78093B605309366
:105AF000B8058093B9055093BA0581E28093BB0540
:105B00008DE28093BC052AE52093BD059093BF05E7
:105B10001092C0051092C1051092C2051092C305E3
:105B20001092DB051092DC051092DD051092DE0567
:105B30003093C40548E24093C505E1E0E093F905E0
:105B40001092C60597EF9093C7055093CC058DE74B
:105B50008093CD058093CE058093CF053093C80503
:105B60004093C9051092CA059093CB0582E38093B8
:105B7000D0052093D1058093D2051092F80520938B
:105B8000D30580E58093D40596E49093D50580E213
:105B90008093D8059093DA058FE58093DF0583EF36
:105BA0008093E1058AEA8093E3058093E40560939E
:105BB000E0056093E2058EEF8093E5053093E605FE
:105BC0002093E7052093E8052093E9058BE4809373
:105BD000EA058093EB058093EC051092ED05509358
:105BE000EE057093EF052093F0056093F105309377
:105BF000F2053093F30582E08093F405E093BE054F
:105C00001092F6051092F705ABEFB5E08CE0EFE7E8
:105C1000F1E0ED01019009928A95E1F760E770E00B
:105C2000CD01845690400E94E22A80930706DF91BE
:105C3000CF910895F999FECF92BD81BDF89A80B5B4
:105C400099270895F999FECF1FBA92BD81BD60BD15
:105C50000FB6F894FA9AF99A0FBE08956EEC7AE2AC
:105C60000E945F76089546ED5AE20E949976089563
:105C7000EF92FF920F931F93CF93C82F81508530DF
:105C800008F0C3E081E7C89F8001112483EFE82E6C
:105C90008FEFF82EE00EF11E60E770E0C7010E9462
:105CA000F32A682F98012D593F4F8FB39927AC01E4
:105CB0004270507081FDF9CF32BD21BDF89A80B598
:105CC000861711F0CA0121C08FB399279C01227059
:105CD000307081FDF9CFF2BCE1BCF89A80B5843513
:105CE00011F0C90112C081E7C89FC00111240D97AE
:105CF0002EEC3AE241E750E0BC0187E995E00E94D2
:105D00003A760E94896681E090E0CF911F910F91D1
:105D1000FF90EF900895282F863010F025E003C003
:105D2000882309F421E0F999FECF1FBA82E090E0C0
:105D300092BD81BD20BD0FB6F894FA9AF99A0FBEB4
:105D40000895CF93C82F80919705843509F042C0FC
:105D5000C63010F0C5E003C0CC2309F43BC060E7B7
:105D600070E087E995E00E94E22A8093070681E7C8
:105D7000C89FC001112426ED3AE241E750E067E9EF
:105D800075E00D970E94777626ED3AE24CE050E000
:105D900068E975E080E590E00E9477766CE070E05D
:105DA00088E995E00E94E22A282FF999FECF1FBAD0
:105DB0008CE590E092BD81BD20BD0FB6F894FA9AB3
:105DC000F99A0FBE8C2F0E948B2E0E94896681E06B
:105DD00090E002C080E090E0CF9108956DE470E023
:105DE00088EE93E00E94F32A482F8FB399279C01F5
:105DF0002270307081FDF9CF85E394E092BD81BDC2
:105E0000F89A80B5841779F48FB399279C01227092
:105E1000307081FDF9CF88EE93E092BD81BDF89A94
:105E200080B5813011F0C90108952EEC3AE24EE4BC
:105E300050E068EE73E088E096E00E943A7681E0F8
:105E400090E00895809108068130A9F46DE470E037
:105E500088E096E00E94E22A8093550626ED3AE219
:105E60004EE450E068E076E088EE93E00E947776BA
:105E700081E090E0089580E090E00895CF93DF9373
:105E800081E080930806E8E0F6E08FE0158616864C
:105E90001786108A8150349687FFF8CF80E480936C
:105EA00015068093160610921706809318068093A5
:105EB000190690EC90931A0610921B0680931C060C
:105EC00080931D0610921E0690931F069093200645
:105ED0008093210610922206809323069093240635
:105EE000A9E0B6E087E0E9E8F1E0ED010190099270
:105EF0008A95E1F76DE470E0CD0101970E94E22AF6
:105F000080935506DF91CF910895F999FECF82E0F5
:105F100090E092BD81BDF89A80B5282F863078F048
:105F200023E0322FF999FECF1FBA82E090E092BDB4
:105F300081BD30BD0FB6F894FA9AF99A0FBE822F40
:105F400099270895DF92EF92FF920F931F93CF93BB
:105F5000FF24DF2CEF2C81E090E00E941A2E843584
:105F600039F031E0E32E64E581E090E00E94222EDA
:105F70006CE070E080E590E00E94F32AC82FF99968
:105F8000FECF8CE590E092BD81BDF89A80B58C176C
:105F900011F421E0D22EC1E001E010E0EE2029F45E
:105FA0008C2F0E94382E8823C1F591E0F92E1F9383
:105FB0000F9385E799E09F938F9389E692E19F93F2
:105FC0008F93E091BB03F091BC0309958DB79EB709
:105FD00006968DBF0230110549F0033011054CF4CF
:105FE0000130110531F40E94302B05C00E942A2C8B
:105FF00002C00E94232DDD2059F02EEC3AE24CE045
:1060000050E060E570E088E995E00E943A7602C0D1
:106010000E940B2B8C2F0E94A12ECF5F0F5F1F4F72
:10602000C63008F4BBCFFF2019F083E00E948B2E0E
:106030000E94852FC82F0E94382E8C2F99279F935E
:106040008F938BE999E09F938F9309E612E11F9359
:106050000F93E091BB03F091BC0309958DB79EB7F8
:1060600006968DBFEE2021F40E94EE2E882399F42F
:1060700084EB99E09F938F931F930F93E091BB0361
:10608000F091BC0309950E943E2F0E94222F0F9091
:106090000F900F900F901092960590E0E5E1F6E0DA
:1060A000CFE08081349618160CF49F5FC150C7FF73
:1060B000F8CF90939605892F99279F938F9389E026
:1060C00096E09F938F9385ED99E09F938F931F9315
:1060D0000F93E091BB03F091BC0309958DB79EB778
:1060E00008968DBF86EF99E09F938F931F930F9330
:1060F000E091BB03F091BC0309950F900F900F90B6
:106100000F90CF911F910F91FF90EF90DF90089526
:106110009FB7F8943998389A88B1836088B980918C
:10612000B9008C7F8093B9008AE28093B800109206
:10613000700210926E0210926D02EEE5F6E08BE0B6
:1061400010821182128213821482158216821782A3
:106150008150389687FFF4CF9FBF08951092700248
:1061600084E98093BC0010926E0210926D0280E868
:106170008093BC001092BD001092BA001092BB0038
:106180001092B9001092B8000E9488301092BB00A3
:1061900085E88093BC0080916B02826080936B02E3
:1061A00008951F920F920FB60F9211242F933F93D1
:1061B0004F935F938F939F93EF93FF938091700220
:1061C000282F3327442755278F5F80937002F901CA
:1061D0002731310508F0B3C2EE59FF4F0C94977880
:1061E00080916E028C3090F480916E028F5F80936C
:1061F0006E0280916E02E82FFF27EE0FFF1FEE0F59
:10620000FF1FE85FF94F8585181654F780916E02DD
:106210008C3070F010926A021092690210926E0235
:1062200085E08093700280916D02880F8D5A04C0C2
:1062300080916E02880F8E5A8093BB0085E874C2ED
:1062400080916E02E82FFF2783E0EE0FFF1F8A95F3
:10625000E1F7E25AF94F81818093BB0085E8809392
:10626000BC0080916E02E82FFF27EE0FFF1FEE0F9C
:10627000FF1FEE0FFF1FE25AF94F808180FF91C090
:1062800080916E02E82FFF27EE0FFF1FEE0FFF1F1A
:10629000EE0FFF1FE25AF94F8281882329F0809187
:1062A0009605873008F45FC28091690290916A0276
:1062B000892B09F058C28091670290916802892B5E
:1062C00009F051C26EC080916E0221E030E002C040
:1062D000220F331F8A95E2F780916702909168023E
:1062E00028233923232B79F080916E02E82FFF2792
:1062F000EE0FFF1FEE0FFF1FEE0FFF1FE25AF94FC9
:1063000080E184830DC080916E02E82FFF27EE0F9D
:10631000FF1FEE0FFF1FEE0FFF1FE25AF94F14820F
:1063200080916E02E82FFF2753E0EE0FFF1F5A9572
:10633000E1F7E25AF94F8481282F332743E0220FF7
:10634000331F4A95E1F780916E02E82FFF2793E013
:10635000EE0FFF1F9A95E1F7E25AF94F828187709D
:10636000822B8093BB0085E88093BC0020916E0255
:1063700081E090E002C0880F991F2A95E2F72091F2
:10638000690230916A0282239323892B51F086E5BA
:1063900096E0909374028093730288E08093750274
:1063A000E2C184E080C1E0917302F09174028191B6
:1063B0008093BB0085E88093BC00F0937402E09367
:1063C000730280917502815080937502882309F4CD
:1063D000CAC183E068C18091B900803351F58091D2
:1063E0007102882329F480916E028F5F809371027D
:1063F00080916E02E82FFF2783E0EE0FFF1F8A9542
:10640000E1F7E25AF94F838199278F7790708F37A0
:1064100091057CF480916E02E82FFF27EE0FFF1F9D
:10642000EE0FFF1FEE0FFF1FE25AF94F83818F5FC0
:1064300083831092700284E98093BC008AE090E02C
:10644000909392018093910180916E028F5F80936F
:106450006E021092700262C18091B9008034A9F17D
:1064600080916D02E82FFF27EE0FFF1FEE0FFF1F39
:10647000EE0FFF1FE25AF94F83818F77838380915C
:106480006D028F5F80936D0280916D028C30A0F061
:1064900010926D021092680210926702809172024F
:1064A0008F5F809372028C3038F01092720280916C
:1064B0006B028D7F80936B0280916B028160809371
:1064C0006B021092700284E971C080916D02E82F16
:1064D000FF27EE0FFF1FEE0FFF1FEE0FFF1FE25A09
:1064E000F94F83818068838380916D02E82FFF27B5
:1064F000EE0FFF1FEE0FFF1FEE0FFF1FE25AF94FC7
:10650000808180FF2FC080916D02E82FFF2753E02C
:10651000EE0FFF1F5A95E1F7E25AF94F8481992750
:10652000009751F04097D9F586E596E09093740274
:106530008093730288E031C080916D02992743E017
:10654000880F991F4A95E1F78D59994F90937402DE
:106550008093730290916D02809172029817E1F41A
:1065600083E01BC080916D02992733E0880F991F4B
:106570003A95E1F78D59994F909374028093730285
:1065800080916B0281FD06C090916D028091720234
:10659000981711F482E001C081E080937502809128
:1065A0007502813011F485E801C085EC8093BC0050
:1065B0008091710280936C0210927102D4C0E091BC
:1065C0007302F09174028091BB008083809173020A
:1065D000909174020196909374028093730280915B
:1065E0007502815080937502823010F085EC58C09E
:1065F000813011F485E854C080916B0281FF2DC079
:1066000080917B0280FD1DC080916D02E82FFF27E5
:1066100023E0EE0FFF1F2A95E1F7E25AF94F86813A
:106620008A3F79F480916D02E82FFF2793E0EE0F07
:10663000FF1F9A95E1F7E25AF94F808181608083CC
:106640000CC080916D02E82FFF2783E0EE0FFF1F43
:106650008A95E1F7E25AF94F108280916D028F5FBF
:1066600080936D0280916D028C30A0F010926D02CB
:106670001092680210926702809172028F5F80937D
:1066800072028C3038F01092720280916B028D7F12
:1066900080936B021092700284E98093BC0049C021
:1066A0008093BC0086E0809370025DC088E9C4CD11
:1066B00080916F02880F805FBFCD80916F02992714
:1066C0008130910561F0823091051CF4892B21F015
:1066D0004AC0029739F047C080911201ADCD809138
:1066E0001101AACD80911001A7CD80E8A5CD10920F
:1066F000700284E98093BC008AE090E0909392015C
:106700008093910180916F02823088F480916F02B2
:106710008F5F80936F0282E18093700280916B02A1
:106720008E7F80936B0285EA8093BC001CC0109220
:106730006F0280916B02816080936B0214C0109293
:10674000700284E98093BC0080916B028160809329
:106750006B028AE090E090939201809391011092F5
:106760006E0210926D02FF91EF919F918F915F9158
:106770004F913F912F910F900FBE0F901F90189542
:106780001F93CF93DF93182F8091A602882321F4C3
:1067900080910202882319F081E090E097C01D30BB
:1067A00008F092C01123B1F0E12FFF2723E0EE0F94
:1067B000FF1F2A95E1F7E25AF94F35978081359608
:1067C00088230CF081C03897808180FD03C083E06E
:1067D00090E07CC080915606823019F084E090E011
:1067E00075C067E070E086E596E00E94E22A90912D
:1067F0005D06891719F085E090E068C080ED97E0AC
:106800000E948C16EC0180916B0280FD05C0CE01C8
:106810000E9495168823B9F3112319F48FEF90E0A5
:106820000BC0212F33272150304081E090E002C07F
:10683000880F991F2A95E2F790936A028093690264
:10684000A1E0B0E0EEE5F6E040E050E06BE0CD0125
:10685000042E02C0880F991F0A94E2F72091690262
:1068600030916A0282239323892B11F011821282C4
:1068700061504F5F5F4F389667FFE9CF10926E020D
:106880001092700280916B028E7F80936B0285EA7A
:106890008093BC0080916B0280FD05C0CE010E94F8
:1068A00095168823B9F38091690290916A02892B29
:1068B00029F0CE010E949516882311F38091690278
:1068C00090916A02009711F082E090E0DF91CF9101
:1068D0001F9108950F931F93CF93DF93982F80916B
:1068E000A602882321F480910202882319F081E016
:1068F00090E092C09D30A0F4992319F486E090E0D6
:106900008BC0C92FDD27FE0133E0EE0FFF1F3A9544
:10691000E1F7E25AF94F35978081359687FD03C03C
:1069200082E090E079C03897808180FD03C083E0E9
:1069300090E072C080ED97E00E948C168C018091EF
:106940006B0280FD05C0C8010E9495168823B9F32B
:10695000219721E030E0C90102C0880F991FCA9534
:10696000E2F79093680280936702D901EEE5F6E0C2
:1069700040E050E06BE0CD01042E02C0880F991F6B
:106980000A94E2F7209167023091680282239323F0
:10699000892B11F01182128261504F5F5F4F389640
:1069A00067FFE9CF10926D021092560610925D06B5
:1069B0001092700280916B028E7F80936B0285EA49
:1069C0008093BC0080916B0280FD05C0C8010E94CD
:1069D00095168823B9F38091670290916802892BFC
:1069E00029F0C8010E949516882311F3809156065C
:1069F000823019F084E090E00FC067E070E086E537
:106A000096E00E94E22A90915D06891719F085E0D0
:106A100090E002C080E090E0DF91CF911F910F9154
:106A2000089589E1A3EFB6E0EFEBF6E01182108262
:106A3000329611961C921E921296815087FFF6CFC5
:106A4000109215031092140310921703109216035C
:106A5000109219031092180308951F920F920FB607
:106A60000F9211240F931F932F933F934F935F9394
:106A70006F937F938F939F93AF93BF93CF93DF9346
:106A8000EF93FF93409186005091870080917702A9
:106A900090917802481B590BCA0157FD0196AC0131
:106AA0005595479580918600909187009093780244
:106AB00080937702CA0189599840A0917902B091D8
:106AC0007A02875E954338F4149714F0109293017C
:106AD00081E090E081C0AD30B1050CF081C0CA0109
:106AE0008B5F90408356944008F071C0425C5340E5
:106AF000FD01EA0FFB1FE154F94F80819181FA01FA
:106B0000E81BF90BCF01F7FF03C0909581959F4FCC
:106B100006974CF48091AF02883C28F48091AF0234
:106B2000865F8093AF02FD01EA0FFB1FE154F94F2E
:106B3000808191819C01220F331F280F391F240F60
:106B4000351F37FF02C02D5F3F4FE901D595C7952F
:106B5000D595C795CA0101968C179D0714F4219706
:106B600006C041505040C417D5070CF421968091BF
:106B7000AF02833CD8F08D010A0F1B1FF801E154CE
:106B8000F94F808191819E01281B390BC90163E077
:106B900070E00E941078CB01880F991F860F971F15
:106BA0000D50194FF8019183808307C0AA0FBB1FB6
:106BB000AD50B94F11961C921E92E0917902F0915E
:106BC0007A02EE0FFF1FE154F94FD183C083809109
:106BD000790290917A02019690937A0280937902D9
:106BE000FF91EF91DF91CF91BF91AF919F918F91E5
:106BF0007F916F915F914F913F912F911F910F91D5
:106C00000F900FBE0F901F901895EF92FF920F9369
:106C10001F938091B3059927880F991F880F991F9B
:106C20007C010027F7FC0095102F809103039091C1
:106C30000403A0910503B0910603BC01CD01A80196
:106C400097010E9445783093430520934205809137
:106C5000FB029091FC02A091FD02B091FE02BC01EA
:106C6000CD01A80197010E944578309345052093F6
:106C700044058091790790917A0797FD0396959541
:106C800087959595879590934705809346058091C4
:106C9000890790918A0797FD039695958795959515
:106CA00087959093490580934805809114039091AE
:106CB00015032091420230914302821B930B909363
:106CC0004B0580934A058091A1029091A202A09168
:106CD000A302B091A402BC01CD0125E030E040E068
:106CE00050E00E94457830934D0520934C058091EB
:106CF0003C0290913D0290934F0580934E05809108
:106D0000C1029091C20290935305809352058091E5
:106D10001D0190911E01909355058093540580911B
:106D2000AF02992790935705809356058091850768
:106D300090918607A0918707B091880720919501CF
:106D4000309196014091970150919801BC01CD017D
:106D50000E944578309359052093580580915F062D
:106D6000992790935B0580935A0580916706992730
:106D700090935D0580935C0580916F0699279093B1
:106D80005F0580935E058091770699279093610552
:106D90008093600580911D0290911E0290936B0577
:106DA00080936A058091FC079091FD0790936F0591
:106DB00080936E0580910008909101089093710571
:106DC0008093700580910208992790937D058093A8
:106DD0007C0580918C0390918D0390937F05809327
:106DE0007E0580918A0390918B0390938105809317
:106DF00080058091D403882321F48091D5038823D2
:106E000021F080914105816003C0809141058E7F12
:106E1000809341051F910F91FF90EF9008951F936C
:106E2000CF93DF93182FEB018091A6028823A1F462
:106E300011501F3F89F0D0932202C093210280910C
:106E4000210290912202892BD1F7CE018C0F9D1F38
:106E50000E94A116115078F7DF91CF911F910895EC
:106E6000CF93DF93809102018D3011F40E943A1B81
:106E700010927A00809146029091470290934007C9
:106E800080933F078091440290914502909331078F
:106E900080933007809142029091430290937F0744
:106EA00080937E0720913E0230913F02C901880FF6
:106EB000991F880F991F820F931F820F931F909322
:106EC0007A07809379072091400230914102C901ED
:106ED000880F991F880F991F820F931F820F931F8E
:106EE00090938A07809389078FEC80937A00A0EBB8
:106EF000B2E0CCE9D5E097E08991E82FFF27EE0FCB
:106F0000FF1FE154F94F0190F081E02DE259FF4F4E
:106F10001E161F061CF0E0E0F0E005C0EF3FF10593
:106F200014F0EFEFF0E08C91282F3327E217F307EE
:106F300014F4815004C02E173F0714F48F5F8C9314
:106F40009150119697FFD8CF8091D6059927AA27FF
:106F5000BB27BC01CD0124EC39E040E050E00E94A9
:106F6000D177DC01CB018093B5019093B601A0935A
:106F7000B701B093B8018091D7059927AA27BB27FD
:106F8000BC01CD010E94D177DC01CB018093B1011E
:106F90009093B201A093B301B093B401DF91CF916C
:106FA0000895A0E0B0E0E7EDF7E30C946678882E52
:106FB000C0E0D0E07E016E011092D403469AD093D7
:106FC0000F03C0930E03D0930D03C0930C03D09313
:106FD0000903C0930803D0931903C0931803D093F7
:106FE0001703C0931603D0931503C0931403109294
:106FF0009E0110929D01109236020E94303784E665
:1070000090E00E94AE160E9430378091A40580FF68
:1070100010C08091130190911401875B934038F464
:1070200080911301909114018E5E924010F40E94A1
:10703000E01A0FE18AE090E00E94AE1680914202D1
:1070400090914302C80FD91F809146029091470248
:10705000E80EF91E8091440290914502C80ED91E97
:10706000015007FFE7CF9701205F3F4F36952795E7
:10707000369527953093190320931803C60140963F
:107080009695879596958795909317038093160309
:107090006096F5E0D695C795FA95E1F7D09315037C
:1070A000C09314039093130380931203309311033E
:1070B00020931003882009F441C0809179079091B2
:1070C0007A0797FF03C0909581959F4F6CE070E021
:1070D0000E9410789B0170930F0360930E038091C0
:1070E000890790918A0797FF03C0909581959F4FDC
:1070F0006CE070E00E94107870930D0360930C03B5
:107100008091890590918A059093090380930803E3
:10711000B90184E090E00E94332E60910C037091DD
:107120000D0386E090E00E94332E60910803709179
:10713000090388E090E00E94332E65C084E090E06F
:107140000E942E2E90930F0380930E0386E090E012
:107150000E942E2E90930D0380930C0388E090E004
:107160000E942E2E9C019093090380930803809126
:107170000E0390910F038150984050F480910C03BE
:1071800090910D038150984018F421503440D8F16B
:1071900087E19AE09F938F9389E692E19F938F9383
:1071A000E091BB03F091BC03099580917907909120
:1071B0007A0797FF03C0909581959F4F6CE070E030
:1071C0000E94107870930F0360930E0380918907DB
:1071D00090918A0797FF03C0909581959F4F6CE02F
:1071E00070E00E94107870930D0360930C038091FF
:1071F000890590918A0590930903809308030F9065
:107200000F900F900F901092400710923F0710922E
:1072100031071092300710927F0710927E0784E6A4
:1072200090E00E94AE1680913E0290913F029C0138
:10723000220F331F220F331F280F391F280F391F2A
:1072400030937A0720937907809140029091410210
:107250008C01000F111F000F111F080F191F080FBD
:10726000191F10938A07009389078091B305C82ED0
:10727000DD24EE24FF24442737FD4095542FC70119
:10728000B6010E94D1774B015C01609303037093B8
:10729000040380930503909306039801442737FD68
:1072A0004095542FC701B6010E94D177DC01CB0174
:1072B0008093FB029093FC02A093FD02B093FE0228
:1072C0008092DF029092E002A092E102B092E2028C
:1072D0008093D7029093D802A093D902B093DA0298
:1072E0001092D3021092D4021092D5021092D602BC
:1072F0008091150190911601A0911701B09118018C
:1073000090938C0580938B05109235021092340275
:107310001092C3021092C4021092C5021092C602CB
:107320008091C1029091C2029093C0028093BF02EB
:107330000E94206282E390E09093220280932102D7
:107340008091D6059927AA27BB27BC01CD0124EC43
:1073500039E040E050E00E94D177DC01CB01885653
:10736000954CAF4FBF4F8093B5019093B601A0935A
:10737000B701B093B8018091D7059927AA27BB27F9
:10738000BC01CD010E94D177DC01CB018856954C20
:10739000AF4FBF4F8093B1019093B201A093B3015F
:1073A000B093B40110929A01109299018091C10298
:1073B0009091C202AA2797FDA095BA2F209195011E
:1073C000309196014091970150919801BC01CD01F7
:1073D0000E94D177DC01CB018093850790938607CB
:1073E000A0938707B09388071092BA021092B9024F
:1073F00081E0809301010E94896680917B02846014
:1074000080937B028FEF8093F7071092F80780E25A
:107410008093F907C0EBD2E0ACE9B5E007E08D91CD
:10742000E82FFF27EE0FFF1FE154F94F8081918174
:1074300082598993015007FFF2CF84E68093AF020F
:1074400080911F02882311F0469A579A8091180361
:107450009091190380569940815C9B4228F080915D
:10746000D40381608093D403809116039091170315
:1074700080569940815C9B4228F08091D4038260C1
:107480008093D40380911403909115038C52914002
:107490008957954028F08091D40384608093D40369
:1074A00080910E0390910F038C529140835C914028
:1074B00028F08091D40388608093D40380910C03DA
:1074C00090910D038C529140835C914028F0809103
:1074D000D40380618093D4038091080390910903C1
:1074E000805092408355914028F08091D40380626F
:1074F0008093D403ECE0CDB7DEB70C948278A3E19F
:10750000B0E0E5E8FAE30C94607880911403909180
:1075100015032091420230914302821B930B9093FA
:107520007F0780937E0780914C0290914D0297FDDA
:1075300007969C0153E0359527955A95E1F73093CE
:10754000400720933F0780914A0290914B0297FD9C
:10755000079643E0959587954A95E1F79093310713
:107560008093300730934B0720934A07909343074B
:10757000809342078091790790917A07AC01440F7C
:10758000551F480F591F20913E0230913F02C901FB
:10759000880F991F880F991F820F931F820F931FC7
:1075A000480F591F57FF02C04D5F5F4F55954795D4
:1075B0005595479550937A074093790780918907AD
:1075C00090918A07AC01440F551F480F591F209115
:1075D000400230914102C901880F991F880F991FFD
:1075E000820F931F820F931F480F591F57FF02C02E
:1075F0004D5F5F4F559547955595479550938A0731
:107600004093890720913E0230913F02C901880FC3
:10761000991F880F991F820F931F820F931F9C0140
:10762000442737FD4095542F8091F3029091F40246
:10763000A091F502B091F602820F931FA41FB51F0F
:107640008093F3029093F402A093F502B093F602B4
:107650002091400230914102C901880F991F880F83
:10766000991F820F931F820F931F9C01442737FDA0
:107670004095542F8091EF029091F002A091F10279
:10768000B091F202820F931FA41FB51F8093EF02E7
:107690009093F002A093F102B093F202809154070C
:1076A0009091550720913E0230913F02820F931F27
:1076B000909355078093540780918107909182079A
:1076C0002091400230914102820F931F90938207D4
:1076D0008093810780910A0390910B030196909308
:1076E0000B0380930A038091890590918A0520916C
:1076F000080330910903821B930B9C01442737FD3B
:107700004095542F8091EB029091EC02A091ED02F4
:10771000B091EE02820F931FA41FB51F8093EB025E
:107720009093EC02A093ED02B093EE028FEC809365
:107730007A0010920F012091DB023091DC0240911F
:10774000DD025091DE0229873A874B875C872954F6
:107750003B46414050402CF028E43BE641E050E0FD
:107760000DC089859A85AB85BC85885B9449AE4FF1
:10777000BF4F4CF428EB34E94EEF5FEF2D833E838F
:107780004F83588708C089859A85AB85BC858D83D2
:107790009E83AF83B8872091E3023091E402409149
:1077A000E5025091E6022D873E874F87588B29547A
:1077B0003B46414050402CF028E43BE641E050E09D
:1077C0000DC08D859E85AF85B889885B9449AE4F85
:1077D000BF4F4CF428EB34E94EEF5FEF29833A8337
:1077E0004B835C8308C08D859E85AF85B88989836E
:1077F0009A83AB83BC83A0917E07B0917F07BB8B3C
:10780000AA8BFD01CF01AA2797FDA095BA2FA090C2
:10781000D302B090D402C090D502D090D602A80E68
:10782000B91ECA1EDB1EA092D302B092D402C0922F
:10783000D502D092D602E0908507F090860700919D
:10784000870710918807E80EF91E0A1F1B1FE09298
:107850008507F09286070093870710938807F091B9
:107860009602F98BFF2309F098C180919502882335
:1078700009F093C18091A40586FF8FC180913007E4
:1078800090913107AA2797FDA095BA2FBC01CD0191
:1078900029813A814B815C810E94D1779B01AC01A7
:1078A00097FF04C02150384F4F4F5F4F6BE0559505
:1078B0004795379527956A95D1F780919D01682E58
:1078C000772488249924CA01B901A40193010E9454
:1078D000D177DC01CB018093240390932503A093FF
:1078E0002603B0932703B7FF04C08150904FAF4FDA
:1078F000BF4F1C012D013CE05594479437942794C9
:107900003A95D1F720922403309225034092260322
:107910005092270380913F0790914007AA2797FD37
:10792000A095BA2FBC01CD012D813E814F81588594
:107930000E94D17797FF04C06150784F8F4F9F4FBF
:107940002BE095958795779567952A95D1F7A401B2
:1079500093010E94D177DC01CB018093280390939F
:107960002903A0932A03B0932B03B7FF04C08150CF
:10797000904FAF4FBF4F9C01AD018CE0559547959F
:10798000379527958A95D1F72093280330932903BB
:1079900040932A0350932B03809124039091250355
:1079A00090932807809327078091280390912903BB
:1079B00090932C0780932B0722193309440955090A
:1079C000209328033093290340932A0350932B03D9
:1079D000E20EF31E041F151FE0928507F092860742
:1079E000009387071093880780919C018823B1F446
:1079F00057FF04C02F5F3F4F4F4F5F4F559547953F
:107A000037952795A21AB30AC40AD50AA092D302C1
:107A1000B092D402C092D502D092D6022A893B8974
:107A200079010027F7FC0095102F80912803909191
:107A30002903A0912A03B0912B03E80EF91E0A1F17
:107A40001B1FC801B70129813A814B815C810E94CB
:107A5000D1779B01AC0197FF04C02150384F4F4FA5
:107A60005F4FBBE05595479537952795BA95D1F768
:107A700080919E01A82EBB24CC24DD24CA01B9012B
:107A8000A60195010E94D177DC01CB0180931C03F4
:107A900090931D03A0931E03B0931F03B7FF04C070
:107AA0008150904FAF4FBF4F3C014D01ACE09594DA
:107AB000879477946794AA95D1F760921C0370928B
:107AC0001D0380921E0390921F03C801B7012D81F0
:107AD0003E814F8158850E94D17797FF04C0615045
:107AE000784F8F4F9F4FFBE09595879577956795DA
:107AF000FA95D1F7A60195010E94D177DC01CB015F
:107B00008093200390932103A0932203B093230337
:107B1000B7FF04C08150904FAF4FBF4FAC01BD01C4
:107B2000ECE07595679557954795EA95D1F74093A1
:107B300020035093210360932203709323032A8927
:107B40003B8937FF03C0309521953F4F21343105E4
:107B5000E4F1D401C30197FE07C0B095A0959095BC
:107B600081959F4FAF4FBF4F81389105A105B1055A
:107B700084F4DB01CA0177FF07C0B095A09590950A
:107B800081959F4FAF4FBF4F81389105A105B1053A
:107B9000E4F081E08093BB0218C010922C07109291
:107BA0002B0710922807109227071092200310929B
:107BB0002103109222031092230310921C031092AF
:107BC0001D0310921E0310921F03809120039091B9
:107BD0002103A0912203B0912303BC01CD0124E62F
:107BE00030E040E050E00E944578E0901C03F090C7
:107BF0001D03E21AF30AF0923E07E0923D078091DE
:107C00001C0390911D03A0911E03B0911F03BC01A2
:107C1000CD0124E630E040E050E00E944578DA01F2
:107C2000C90120912003309121038C01021B130B09
:107C3000109333070093320780919501909196013C
:107C4000A0919701B0919801BC01CD0128E631E0E7
:107C500040E050E00E94D17720918507309186075F
:107C6000409187075091880726173707480759071B
:107C700064F0261B370B480B590B20938507309374
:107C80008607409387075093880720918507309196
:107C90008607409187075091880757FF0CC0260F31
:107CA000371F481F591F209385073093860740933D
:107CB00087075093880760913007709131076E0DE8
:107CC0007F1D9B01442737FD4095542F8091D7029B
:107CD0009091D802A091D902B091DA02820F931F3D
:107CE000A41FB51F8093D7029093D802A093D90206
:107CF000B093DA0280919B0290919C02681B790BF1
:107D0000CB01AA2797FDA095BA2F29853A854B85E7
:107D10005C85820F931FA41FB51F8093DB02909395
:107D2000DC02A093DD02B093DE02C090B101D090DE
:107D3000B201E090B301F090B401C816D906EA068A
:107D4000FB06C4F488EA91E6A0E0B0E08C199D0936
:107D5000AE09BF098093DB029093DC02A093DD02A1
:107D6000B093DE028093D7029093D802A093D902F9
:107D7000B093DA0222273327A9012C193D094E09B5
:107D80005F098091DB029091DC02A091DD02B0914D
:107D9000DE0282179307A407B507B4F4D701C60122
:107DA000885A9146A040B0408093DB029093DC0259
:107DB000A093DD02B093DE028093D7029093D802A5
:107DC000A093D902B093DA0260913F077091400707
:107DD000600F711F9B01442737FD4095542F809100
:107DE000DF029091E002A091E102B091E202820FE5
:107DF000931FA41FB51F8093DF029093E002A0930E
:107E0000E102B093E2028091990290919A02681B7C
:107E1000790BCB01AA2797FDA095BA2F2D853E851A
:107E20004F855889820F931FA41FB51F8093E302CB
:107E30009093E402A093E502B093E602E090B501CE
:107E4000F090B6010091B7011091B801E816F9065B
:107E50000A071B07C4F488EA91E6A0E0B0E08E1997
:107E60009F09A00BB10B8093E3029093E402A093CF
:107E7000E502B093E6028093DF029093E002A093C4
:107E8000E102B093E20222273327A9012E193F090C
:107E9000400B510B8091E3029091E402A091E50226
:107EA000B091E60282179307A407B507B4F4D8018E
:107EB000C701885A9146A040B0408093E302909356
:107EC000E402A093E502B093E6028093DF02909370
:107ED000E002A093E102B093E2028091D30290917C
:107EE000D402A091D502B091D6028093E70290937C
:107EF000E802A093E902B093EA028091E302909134
:107F0000E402A091E502B091E6028093030390930E
:107F10000403A0930503B09306038091DB029091C4
:107F2000DC02A091DD02B091DE028093FB0290930F
:107F3000FC02A093FD02B093FE028091DF029091BB
:107F4000E002A091E102B091E2028093FF029093DF
:107F50000003A0930103B09302038091D702909194
:107F6000D802A091D902B091DA028093F7029093DF
:107F7000F802A093F902B093FA0280911B0190914C
:107F80001C0197FD079633E0959587953A95E1F7A3
:107F90009093400780933F078091190190911A01B7
:107FA00097FD079623E0959587952A95E1F790939D
:107FB00031078093300780914602909147020F97D6
:107FC00034F488E19CEF9093400780933F078091C1
:107FD000460290914702079734F480E398EF90931C
:107FE000400780933F07209102012A30A9F4809135
:107FF000460290914702835F934034F088EE93E00D
:108000009093400780933F078091460290914702EA
:108010008A5F9340DCF014C0809146029091470241
:10802000815D974034F088EE93E090934007809311
:108030003F078091460290914702805E974034F05E
:1080400080ED97E09093400780933F078091440232
:10805000909145020F9734F488E19CEF909331079B
:10806000809330078091440290914502079734F441
:1080700080E398EF90933107809330072A30A9F47A
:108080008091440290914502835F934034F088EEE2
:1080900093E0909331078093300780914402909150
:1080A00045028A5F9340DCF014C0809144029091B5
:1080B0004502815D974034F088EE93E0909331075C
:1080C000809330078091440290914502805E9740F2
:1080D00034F080ED97E09093310780933007E09182
:1080E000A801EE2309F4B7C040911B0150911C0177
:1080F00080912C0390912D03481B590B509333030F
:108100004093320320911B0130911C01280F391F2D
:1081100037FF02C02F5F3F4F3595279530932D03D2
:1081200020932C03413851051CF080E890E005C0F5
:1081300040585F4F34F480E89FEF9093330380936F
:1081400032038E2F9927A0913203B0913303A89F59
:10815000A001A99F500DB89F500D112457FF02C0D8
:10816000415F5F4F14E0559547951A95E1F780916F
:108170003F0790914007840F951F9093400780938D
:108180003F076091190170911A0180912E0390911F
:108190002F03681B790B7093310360933003409178
:1081A000190150911A01480F591F57FF02C04F5F24
:1081B0005F4F5595479550932F0340932E03613899
:1081C00071051CF080E890E005C060587F4F34F4E2
:1081D00080E89FEF90933103809330032E2F332755
:1081E0008091300390913103829FB001839F700D85
:1081F000929F700D1124AB0177FF02C0415F5F4F6A
:10820000E4E055954795EA95E1F780913007909124
:108210003107840F951F9093310780933007A29FF9
:10822000C001A39F900DB29F900D11249C018091DD
:108230001B0190911C01820F931F90931C0180934E
:108240001B018091190190911A01860F971F90933D
:108250001A01809319010091420710914307809100
:10826000270790912807101611065CF59C0197FFCF
:1082700004C022273327281B390BC901AA2797FDE1
:10828000A095BA2F20919C01332744275527BC0184
:10829000CD010E94D1779B01AC0197FF04C0215C06
:1082A0003F4F4F4F5F4F76E0559547953795279550
:1082B0007A95D1F780913D0790913E07820F931FE9
:1082C00027C097FF03C0909581959F4FAA2797FDE0
:1082D000A095BA2F20919C01332744275527BC0134
:1082E000CD010E94D1779B01AC0197FF04C0215CB6
:1082F0003F4F4F4F5F4F66E0559547953795279510
:108300006A95D1F780913D0790913E07821B930BB0
:1083100090933E0780933D07E0904A07F0904B070B
:1083200080912B0790912C071E141F045CF59C0173
:1083300097FF04C022273327281B390BC901AA271E
:1083400097FDA095BA2F20919C01332744275527EC
:10835000BC01CD010E94D1779B01AC0197FF04C005
:10836000215C3F4F4F4F5F4F96E0559547953795AE
:1083700027959A95D1F78091320790913307820F14
:10838000931F27C097FF03C0909581959F4FAA2701
:1083900097FDA095BA2F20919C013327442755279C
:1083A000BC01CD010E94D1779B01AC0197FF04C0B5
:1083B000215C3F4F4F4F5F4F86E05595479537956E
:1083C00027958A95D1F78091320790913307821BC8
:1083D000930B90933307809332078091A40587FF16
:1083E00044C09989992309F040C08091950288235F
:1083F000E1F5A1E0EA16A1E0FA064CF080913F0712
:10840000909140078E0D9F1D805091400DC0B0E0AF
:10841000EB16BFEFFB0664F480913F079091400795
:108420008E0D9F1D80509F4F9093400780933F0774
:10843000E1E001301E074CF0809130079091310748
:10844000800F911F805091400CC0FFEF00301F073C
:1084500064F48091300790913107800F911F805014
:108460009F4F9093310780933007A0EBB2E06CE907
:1084700075E057E0FB018191BF01E82FFF27EE0F68
:10848000FF1FE154F94F0190F081E02DE259FF4FB9
:10849000EF3FF10521F01CF0EFEFF0E004C0F7FF33
:1084A00002C0E0E0F0E04C91242F3327E217F307FD
:1084B000B1F0CF01821B930B97FD079613E09595C2
:1084C00087951A95E1F7242F280F2C93822F99274F
:1084D000E817F90714F4215001C02F5F2C93515075
:1084E000119657FFC7CFE2E1CD5E0C947C78809166
:1084F000A602882301F580917B028C7F80937B020A
:10850000A9EDB3E0EEE5F6E09BE08091020288235E
:1085100009F48C938D91818312829150389697FF44
:10852000F4CF80910202882359F080910202815099
:108530008093020205C080917B02816080937B0260
:1085400010926E021092700280916B028E7F809367
:108550006B0285EA8093BC0008958091A605883F50
:1085600038F0EFEFF0E0E81BF109E055FD4F8081B6
:108570008093AE018091AE01882329F0843618F0F3
:1085800084E68093AE018091A805883F38F0EFEF34
:10859000F0E0E81BF109E055FD4F80818093AC01CC
:1085A0008091AC01882329F0843618F084E680930A
:1085B000AC018091B505883F38F0EFEFF0E0E81BA3
:1085C000F109E055FD4F80818093A7018091A701BB
:1085D0008B3010F48AE002C08F3F11F48093A70122
:1085E0008091E005883F38F0EFEFF0E0E81BF109FB
:1085F000E055FD4F80818093560780915607823069
:1086000010F481E002C08F3F11F4809356078091EF
:10861000E205883F38F0EFEFF0E0E81BF109E055A4
:10862000FD4F808180937C0780917C07823010F41D
:1086300081E002C08F3F11F480937C078091CD05CB
:10864000883F38F0EFEFF0E0E81BF109E055FD4F0F
:108650008081809353078091CE05883F38F0EFEFFB
:10866000F0E0E81BF109E055FD4F808180932D0774
:108670008091CF05883F38F0EFEFF0E0E81BF1097B
:10868000E055FD4F808180935B079091A705983F4F
:1086900018F49093AD0109C0EFEFF0E0E91BF10988
:1086A000E055FD4F80818093AD01983F18F4909381
:1086B000AD0109C0EFEFF0E0E91BF109E055FD4F16
:1086C00080818093AD018091AA05883F38F0EFEF5B
:1086D000F0E0E81BF109E055FD4F80818093AB018C
:1086E0008091AC05883F38F0EFEFF0E0E81BF1092E
:1086F000E055FD4F80818093A9018091B405883FAA
:1087000038F0EFEFF0E0E81BF109E055FD4F808114
:108710008093AA018091B605883F38F0EFEFF0E032
:10872000E81BF109E055FD4F80818093A6018091FF
:10873000B705883F38F0EFEFF0E0E81BF109E055AE
:10874000FD4F80818093A8018091B805883F38F063
:10875000EFEFF0E0E81BF109E055FD4F80818093D9
:10876000A5018091B905883F38F0EFEFF0E0E81BF4
:10877000F109E055FD4F80818093A4018091BF05F0
:10878000883F38F0EFEFF0E0E81BF109E055FD4FCE
:1087900080818093A2018091C005883F38F0EFEF7F
:1087A000F0E0E81BF109E055FD4F808180939002D5
:1087B0008091C105883F38F0EFEFF0E0E81BF10948
:1087C000E055FD4F808180938F028091C205883FE4
:1087D00038F0EFEFF0E0E81BF109E055FD4F808144
:1087E00080938E028091C305883F38F0EFEFF0E070
:1087F000E81BF109E055FD4F808180938D02809147
:10880000DB05883F38F0EFEFF0E0E81BF109E055B9
:10881000FD4F808180938C028091DC05883F38F089
:10882000EFEFF0E0E81BF109E055FD4F8081809308
:108830008B028091DD05883F38F0EFEFF0E0E81B18
:10884000F109E055FD4F808180938A028091DE0519
:10885000883F38F0EFEFF0E0E81BF109E055FD4FFD
:108860008081809389028091C405883F38F0EFEFC2
:10887000F0E0E81BF109E055FD4F80818093A101F4
:108880008091C805883F38F0EFEFF0E0E81BF10970
:10889000E055FD4F80818093A0018091D005883FF5
:1088A00038F0EFEFF0E0E81BF109E055FD4F808173
:1088B00080939F018091D305883F38F0EFEFF0E07F
:1088C000E81BF109E055FD4F808180939E01809166
:1088D000D405883F38F0EFEFF0E0E81BF109E055F0
:1088E000FD4F808180939D018091D505883F38F0B0
:1088F000EFEFF0E0E81BF109E055FD4F8081809338
:108900009C018091DA05883F38F0EFEFF0E0E81B3A
:10891000F109E055FD4F808180939B018091F50521
:10892000883F38F0EFEFF0E0E81BF109E055FD4F2C
:10893000808180938C078091A201282F33272F5F9D
:108940003F4F8CE398E2B9010E9410787093B00118
:108950006093AF018091B20580937D078091B1054E
:10896000809344079091F705933320F181E0809341
:108970008802983F58F0EFEFF0E0E91BF109E0556D
:10898000FD4F8081823310F4109288028091CA07D3
:108990009091CB0797FF08C080918802882321F02F
:1089A0008091D403806803C08091D4038F77809333
:1089B000D40302C0109288028091CA079091CB071D
:1089C00097FF1DC08091A6028823C9F0809188027C
:1089D0008823A9F080910801909109018F5F9F4F32
:1089E00071F488E99AE3909322028093210280E057
:1089F00094EA909309018093080110928802809173
:108A00008802882339F080919E01823D18F4825EAD
:108A100080939E010895A5E3B0E0E1E1F5E40C94B4
:108A200060780E947F3A309102013C3010F4299A1C
:108A300001C02998E090A702F090A802F9A2E8A24C
:108A40008091440799270A96E816F90614F499A329
:108A500088A38091AF02843608F05CC080914803FF
:108A600090914903009731F00197909349038093C7
:108A7000480307C01092A60280917B028F7E8093EC
:108A80007B023A3011F0343110F0289A01C0289856
:108A900080917C0290917D02895E9340C0F180912B
:108AA000BC05282F332739A328A380917B0280613E
:108AB00080937B0280919805A82FBB27AA0FBB1F2C
:108AC000FD01ED50F94F1182108280919905282FF8
:108AD0003327220F331FC9018D50994FFC0111829A
:108AE0001082A154B94F11961C921E922154394FF5
:108AF000D90111961C921E9280919B05E82FFF27A9
:108B0000EE0FFF1FE154F94F11821082AAC210929A
:108B1000A602A7C28091AF028D3808F4A2C280914C
:108B20007B028F7E80937B029091BD0582E3989FAC
:108B3000C00111249093490380934803E8A1F9A14F
:108B4000B9978CF08091A602882369F080917C020D
:108B500090917D02FFEF8F3F9F0729F00196909340
:108B60007D0280937C0280917C0290917D028F3FF8
:108B7000910509F038F51092CB021092CC021092B8
:108B8000CD021092CE021092C7021092C80210922B
:108B9000C9021092CA021092340310923503109247
:108BA0003603109237031092D3021092D40210921F
:108BB000D5021092D6028A3F910549F481E0809354
:108BC0004E0305C080917B02826080937B0280917E
:108BD0009A05E82FFF27EE0FFF1FE154F94F808120
:108BE0009181813591050CF441C12091A602222387
:108BF00009F03CC180919B05E82FFF27EE0FFF1F76
:108C0000E154F94F808191818C3491050CF406C1B7
:108C100080914A038F5F80934A03893C08F426C100
:108C20003C3010F4299801C0299A1092A6021092A3
:108C30004A0310927D0210927C0230919805E32F36
:108C4000FF27EE0FFF1FE154F94F80819181873498
:108C50009105B4F480919905E82FFF27EE0FFF1FCF
:108C6000E154F94F808191810190F081E02DF7FF6F
:108C700003C0F095E195FF4FE734F1050CF478C09F
:108C800041E020919905A22FBB27AA0FBB1FA15439
:108C9000B94F8D919C9111978734910544F0E32F42
:108CA000FF27EE0FFF1FE154F94F808191818D91D5
:108CB0009C918734910574F080919805E82FFF27E7
:108CC000EE0FFF1FE154F94F8081918187349105A8
:108CD0000CF042E0E22FFF27EE0FFF1FE154F94FA7
:108CE000808191818634910574F480919805E82FF4
:108CF000FF27EE0FFF1FE154F94F808191818734E8
:108D000091050CF043E0E22FFF27EE0FFF1FE15427
:108D1000F94F808191818A5B9F4F74F4809198050F
:108D2000E82FFF27EE0FFF1FE154F94F808191815B
:108D3000873491050CF044E0E22FFF27EE0FFF1F70
:108D4000E154F94F808191818A5B9F4F74F4809147
:108D50009805E82FFF27EE0FFF1FE154F94F8081A0
:108D60009181863491050CF445E0842F0E948B2E6E
:108D700080919905E82FFF27EE0FFF1FE154F94F6F
:108D8000808191810190F081E02DF7FF03C0F09583
:108D9000E195FF4F7E97BCF480919805E82FFF275F
:108DA000EE0FFF1FE154F94F808191818A5B9F4F45
:108DB00054F481E08093EF0388EE93E090932202D5
:108DC0008093210253C00E94852F0E94382E80E09C
:108DD0000E945C078091BE050E9404748091A405E6
:108DE00080FF10C08091130190911401875B934024
:108DF00038F480911301909114018E5E924010F42A
:108E00000E94E01A10921F0280E00E94D13781E098
:108E100080934D0380931F02579A1FC080819181D8
:108E2000855B9F4F0CF580914A038F5F80934A03C7
:108E3000893CE0F03C3010F4299801C0299A109246
:108E4000A60210924A0310927D0210927C0281E0E9
:108E50000E94D13781E080934D030E94852F68E7FF
:108E600070E00E940F3702C020934A0380919A0558
:108E7000E82FFF27EE0FFF1FE154F94F808191810A
:108E80008B5A9F4F0CF0EDC02091A602E0919B05FC
:108E9000222309F0CAC0FF27EE0FFF1FE154F94F4C
:108EA00080819181855B9F4F0CF0BCC080914B030A
:108EB0008F5F80934B03893C08F4D3C020934B030E
:108EC0008091D403882309F0A6C080914D038823A4
:108ED00009F4A1C081E090E090937D0280937C0230
:108EE00081E08093A6021092340310923503109211
:108EF0003603109237031092D3021092D4021092CC
:108F0000D5021092D6021092CF021092D002109287
:108F1000D1021092D2028091B305E82EFF240027DF
:108F200011278091790790917A079C01442737FD9A
:108F30004095542FC801B7010E94D177DC01CB01C5
:108F40008093E3029093E402A093E502B093E602DB
:108F50008091890790918A079C01442737FD4095AD
:108F6000542FC801B7010E94D177DC01CB01809357
:108F7000DB029093DC02A093DD02B093DE028091CD
:108F8000030390910403A0910503B091060380931D
:108F9000DF029093E002A093E102B093E20280919D
:108FA000FB029091FC02A091FD02B091FE02809321
:108FB000D7029093D802A093D902B093DA0210920C
:108FC000CB021092CC021092CD021092CE021092DF
:108FD000C7021092C8021092C9021092CA02809170
:108FE0007B02886080937B029091F6058FE0989FCA
:108FF000900111248091C1029091C202820F931FAF
:1090000068E671E00E94107897FD01969595879526
:109010008093070326C08CED95E090932202809305
:1090200021021FC020934B031CC0FF27EE0FFF1F20
:10903000E154F94F808191818C34910584F08091C5
:109040004C038F5F80934C03893C58F01092A6022A
:1090500010924C0310927D0210927C0202C010927A
:109060004C038091930181508093930180919301EF
:109070008F3F21F080917B0284FF82C30E94AD422A
:1090800080915703909158039C01220F331F280FA2
:10909000391FA0909805AA2DBB27AA0FBB1FFD0161
:1090A000E154F94F9090AE05492D5527808191816B
:1090B000849FF001859FF00D949FF00D11242E0FD9
:1090C0003F1F37FF02C02D5F3F4FB9017595679570
:1090D00075956795AD50B94F8091AF05082F112751
:1090E0008D919C91809F7001819FF00C909FF00C5E
:1090F00011246E0D7F1D7093580360935703809168
:10910000590390915A039C01220F331F280F391FD6
:10911000B0909905AB2DBB27AA0FBB1FFD01E154F1
:10912000F94F80819181849FF001859FF00D949F7C
:10913000F00D11242E0F3F1F37FF02C02D5F3F4F50
:10914000A9015595479555954795AD50B94F8D91C6
:109150009C91809F7001819FF00C909FF00C1124D6
:109160004E0D5F1D50935A03409359039E012F5F8C
:109170003F4F8FE1E0ECF1E0D90101900D928A952B
:10918000E1F780918802882309F448C0CB0177FD7C
:109190000396DC01B595A795B595A795CA0157FD2E
:1091A0000396FC01F595E795F595E7958091E90122
:1091B000682F772767FD70956A9F90016B9F300D30
:1091C0007A9F300D112480919003482F552747FD39
:1091D00050954E9FC0014F9F900D5E9F900D1124A2
:1091E000280F391F37FF02C0295F3F4F03E0359535
:1091F00027950A95E1F73093AE022093AD026E9F5A
:1092000090016F9F300D7E9F300D11244A9FC00149
:109210004B9F900D5A9F900D112444C08091F605EC
:10922000082F1127DE01A00FB11FFD019781909338
:10923000E901020F131FD8018C9180939003A92F8D
:10924000BB27A7FDB095A69F9001A79F300DB69FA5
:10925000300D1124E82FFF27E7FDF095E49FC001B2
:10926000E59F900DF49F900D1124280F391F37FFB3
:1092700002C0295F3F4F13E0359527951A95E1F716
:109280003093AE022093AD02A49F9001A59F300DB4
:10929000B49F300D1124E69FC001E79F900DF69F0B
:1092A000900D1124281B390B37FF02C0295F3F4F57
:1092B000F3E035952795FA95E1F73093AC022093CA
:1092C000AB0280919B05E82FFF27EE0FFF1FE154B3
:1092D000F94F80819181909581959F4F9093AA023B
:1092E0008093A9028330910514F0029705C0BFEF67
:1092F0008E3F9B0734F402969093AA028093A902B2
:1093000004C01092AA021092A90280918C0390913D
:109310008D032091880330918903820F931FC090A1
:10932000AD02D090AE02C81AD90AD092AE02C09255
:10933000AD0280918A0390918B0320918603309136
:109340008703820F931F0091AB021091AC02081BA0
:10935000190B1093AC020093AB0280919A05E82F91
:10936000FF27EE0FFF1FE154F94FE080F180E8E79F
:10937000F0E0EE0EFF1EF092A802E092A7028091AC
:10938000A7019927AA2797FDA095BA2FBC01CD0167
:109390000E944577DC01CB0120E030E040E251E45F
:1093A000BC01CD010E94B376DC01CB01BC01CD0133
:1093B0000E941777DC01CB01809383078091A6017F
:1093C00080935C078091A5019927AA2797FDA09516
:1093D000BA2FBC01CD010E944577DC01CB0120E012
:1093E00030E040E251E4BC01CD010E94B376DC01E3
:1093F000CB01BC01CD010E941777DC01CB0180932A
:1094000037078091A40180934C078091FB0380FF74
:1094100059C080918C07813808F454C08091F403BE
:10942000992787FD9095292D3327829FA001839F3F
:10943000500D929F500D1124C40ED51ED092AE0235
:10944000C092AD028091F503992787FD9095829F88
:10945000B001839F700D929F700D1124060F171F8E
:109460001093AC020093AB028091F603282F3327B0
:1094700027FD30958091A9029091AA02820F931F37
:109480009093AA028093A9028091F803282F332792
:1094900027FD30958091A9059927289FD001299F04
:1094A000B00D389FB00D1124B0939A01A09399018B
:1094B0008091F70399278E159F0524F49093A802B5
:1094C0008093A7028091A7029091A80297FF04C001
:1094D0001092A8021092A7028091A40582FF02C0F8
:1094E00010925C074091AD025091AE02CA0157FD47
:1094F00003969C01359527953595279537FF03C031
:10950000309521953F4F8091800290918102821782
:109510009307B4F4CA0157FF03C0909581959F4FFC
:1095200097FD0396959587959595879590938102DC
:10953000809380028536910544F084E690E001C076
:10954000019790938102809380024091AB025091E9
:10955000AC02CA0157FD03969C01359527953595B8
:10956000279537FF03C0309521953F4F80917E02AC
:1095700090917F0282179307B4F4CA0157FF03C08A
:10958000909581959F4F97FD039695958795959515
:10959000879590937F0280937E028536910544F0F3
:1095A00084E690E001C0019790937F0280937E0251
:1095B00080917B0284FF08C0109281021092800289
:1095C00010927F0210927E02EB2DFF27EE0FFF1FFD
:1095D000E154F94F4091D105242F332780819181A7
:1095E0002817390744F48091F80582FF04C081E010
:1095F0008093940213C0EB2DFF27EE0FFF1FE15461
:10960000F94F842F99272091D205821B910920813F
:1096100031812817390714F410929402409199056A
:10962000E42FFF27EE0FFF1FE154F94F5091D105B2
:10963000852F992722273327281B390B8081918179
:109640008217930744F48091F80583FF04C081E0FA
:109650008093930216C080919302882391F0E42FA7
:10966000FF27EE0FFF1FE154F94F8091D205992794
:10967000851B9109208131818217930714F4109280
:109680009302EA2DFF27EE0FFF1FE154F94F40919F
:10969000D105242F3327808191812817390744F47D
:1096A0008091F80580FF04C081E08093910217C08B
:1096B00080919102882399F0EA2DFF27EE0FFF1F7A
:1096C000E154F94F842F99272091D205821B9109EB
:1096D000208131812817390714F4109291024091AA
:1096E0009805E42FFF27EE0FFF1FE154F94F50912B
:1096F000D105852F992722273327281B390B8081F5
:1097000091818217930744F48091F80581FF04C08A
:1097100081E08093920216C080919202882391F09A
:10972000E42FFF27EE0FFF1FE154F94F8091D20580
:109730009927851B9109208131818217930714F4A1
:109740001092920280919402882319F480919302DE
:10975000811181E08093950280919102882321F408
:1097600080919202882351F081E0809396021092BA
:109770009502109294021092930202C08093960276
:1097800080919502882321F480919602882369F0C4
:109790008091D0059927E8A1F9A18E179F0714F4AD
:1097A00099A388A381E08093BB0280917B0284FF10
:1097B0001AC01092AA021092A9021092AE02109240
:1097C000AD021092AC021092AB029AE5909383071F
:1097D00088E780935C079093370780934C0710923B
:1097E00095021092960280914F0790915007A09198
:1097F0005107B09152072091030330910403409127
:10980000050350910603820F931FA41FB51F809379
:109810004F0790935007A0935107B0935207809140
:10982000570790915807A0915907B0915A07209077
:10983000FB023090FC024090FD025090FE02820D2F
:10984000931DA41DB51D8093570790935807A093AF
:109850005907B0935A078091460790914707A09106
:109860004807B0914907E090FF02F0900003009193
:10987000010310910203EAA2FBA20CA31DA38E0D0B
:109880009F1DA01FB11F8093460790934707A09389
:109890004807B09349078091380790913907A09104
:1098A0003A07B0913B07E090F702F090F802009180
:1098B000F9021091FA02EEA2FFA208A719A78E0DD5
:1098C0009F1DA01FB11F8093380790933907A09365
:1098D0003A07B0933B07F0909602FAA6FF2029F4CE
:1098E00080919502882309F460C01092F3021092CF
:1098F000F4021092F5021092F6021092EF0210920A
:10990000F0021092F1021092F20210924F071092A0
:109910005007109251071092520710925707109259
:1099200058071092590710925A0710924607109242
:109930004707109248071092490710923807109273
:10994000390710923A0710923B078091E3029091F9
:10995000E402A091E502B091E6028093DF029093C9
:10996000E002A093E102B093E2028091DB029091C9
:10997000DC02A091DD02B091DE028093D7029093C9
:10998000D802A093D902B093DA0210923302109257
:10999000320210929A021092990210929C02109236
:1099A0009B020AA5002309F0F2C180919502882349
:1099B00009F0EDC18091890590918A05815092400E
:1099C0002CF48091A602882309F4E1C19090F70756
:1099D000A090B3056091790770917A077BAB6AAB71
:1099E0008091890790918A079DAB8CAB9FEF991668
:1099F00009F4D9C0BB24CC24DD24CA01B901A601D5
:109A000095010E94457879018A01EAA9FBA9CF0155
:109A1000AA2797FDA095BA2FE81AF90A0A0B1B0B83
:109A2000C201B101A60195010E94457859016A0160
:109A30002CA93DA9C901AA2797FDA095BA2FA81A5C
:109A4000B90ACA0ADB0A292C332427FC3094432C98
:109A5000532CC801B701A20191010E94D17797FF51
:109A600004C061507E4F8F4F9F4F3B014C0109E076
:109A700095948794779467940A95D1F7C601B501B8
:109A8000A20191010E94D17797FF04C061507E4FDF
:109A90008F4F9F4F5B016C0119E0D594C794B79429
:109AA000A7941A95D1F78091800290918102813418
:109AB00091053CF480917E0290917F028134910562
:109AC000D4F0D401C30197FE03C00196A11DB11DBE
:109AD0003C014D019594879477946794D601C50114
:109AE000D7FE03C00196A11DB11D5C016D01D59487
:109AF000C794B794A79480919B05E82FFF27EE0F9A
:109B0000FF1FE154F94F808191810190F081E02D98
:109B1000F7FF03C0F095E195FF4F7A97A4F0C401D9
:109B2000B30123E030E040E050E00E944578390185
:109B30004A01C601B50123E030E040E050E00E9458
:109B4000457859016A018091F907282F332727FDAD
:109B50003095432F532F261537054805590514F422
:109B600039014A01992787FD9095909581959F4FDE
:109B7000AA2797FDA095BA2F681679068A069B0634
:109B800014F43C014D012A153B054C055D0514F408
:109B900059016A01A816B906CA06DB060CF0CFC047
:109BA0005C016D01CCC0EA2CFF2400271127CA01FB
:109BB000B901A80197010E94457839014A014AA9D3
:109BC0005BA9CA01AA2797FDA095BA2F681A790A3E
:109BD0008A0A9B0AC201B101A80197010E94457837
:109BE00059016A016CA97DA9CB01AA2797FDA0950F
:109BF000BA2FA81AB90ACA0ADB0AD401C30197FE10
:109C000003C00F96A11DB11D3C014D01F4E09594D8
:109C1000879477946794FA95D1F7D601C501D7FE5A
:109C200003C00F96A11DB11D5C016D01E4E0D59448
:109C3000C794B794A794EA95D1F780918002909148
:109C40008102813491053CF480917E0290917F02E3
:109C500081349105A4F0C401B30123E030E040E079
:109C600050E00E94457839014A01C601B50123E060
:109C700030E040E050E00E94457859016A0180914F
:109C80009B05E82FFF27EE0FFF1FE154F94F80815E
:109C900091810190F081E02DF7FF03C0F095E195EF
:109CA000FF4F7A97A4F0C401B30123E030E040E015
:109CB00050E00E94457839014A01C601B50123E010
:109CC00030E040E050E00E94457859016A0171E2BD
:109CD00067167104810491042CF070E2672E712CD8
:109CE000812C912C80EE68168FEF78068FEF880616
:109CF0008FEF980644F460EE662E6FEF762E6FEFCE
:109D0000862E6FEF962E91E2A916B104C104D104FC
:109D10002CF050E2A52EB12CC12CD12CA0EEAA160D
:109D2000AFEFBA06AFEFCA06AFEFDA0644F440EE83
:109D3000A42E4FEFB42E4FEFC42E4FEFD42E8091B0
:109D4000E3029091E402A091E502B091E602861947
:109D50009709A809B9098093E3029093E402A093BC
:109D6000E502B093E6028091DB029091DC02A091C3
:109D7000DD02B091DE028A199B09AC09BD0980930E
:109D8000DB029093DC02A093DD02B093DE028091AF
:109D90003202909133028F3F910509F008F4C4C557
:109DA000BAA5BB2309F04EC580919502882309F01E
:109DB00049C58091BB02882309F044C5E091D905CB
:109DC000EBA7EE2309F43EC580914F079091500711
:109DD000A0915107B0915207B7FF04C081509F4F27
:109DE000AF4FBF4FE92EFA2E0B2F112707FD1A9503
:109DF000E0924F07F09250070093510710935207DB
:109E00008091570790915807A0915907B0915A0730
:109E1000B7FF04C081509F4FAF4FBF4F892F9A2F7C
:109E2000AB2FBB27A7FDBA958CA79DA7AEA7BFA751
:109E30008093570790935807A0935907B0935A07F8
:109E40008091B305A82EBB24CC24DD242091F302FD
:109E50003091F4024091F5025091F602C601B5012D
:109E60000E94D17797FF04C061507F4F8F4F9F4F63
:109E7000672E782E892E992487FC9A946092F3029B
:109E80007092F4028092F5029092F6022091EF0215
:109E90003091F0024091F1025091F202C601B501F9
:109EA0000E94D17797FF04C061507F4F8F4F9F4F23
:109EB000272E382E492E552447FC5A942092EF0223
:109EC0003092F0024092F1025092F2028091EB0245
:109ED0009091EC02A091ED02B091EE02B7FF04C0A8
:109EE00081509F4FAF4FBF4F892F9A2FAB2FBB276A
:109EF000A7FDBA958093EB029093EC02A093ED023C
:109F0000B093EE02D801C70186199709A809B909CB
:109F10008093400390934103A0934203B093430383
:109F20002091D805E22EFF2400271127BC01CD0186
:109F3000A80197010E94457859016A0120934F03B7
:109F40003093500340935103509352038CA59DA529
:109F5000AEA5BFA582199309A409B509809344034E
:109F600090934503A0934603B0934703BC01CD01F2
:109F7000A80197010E94457820935303309354031E
:109F80004093550350935603D601C501D7FE04C034
:109F900081509F4FAF4FBF4F892F9A2FAB2FBB27B9
:109FA000A7FDBA9590939A028093990257FF04C037
:109FB00021503F4F4F4F5F4FBB2757FDBA95A52FFD
:109FC000942F832F90939C0280939B028091800218
:109FD0009091810281349105DCF480917E02909110
:109FE0007F0281349105A4F480919B05E82FFF271F
:109FF000EE0FFF1FE154F94F808191810190F081B4
:10A00000E02DF7FF03C0F095E195FF4F7A97E4F05C
:10A010008091F7078F3FC1F48091990290919A0245
:10A0200097FD01969595879590939A028093990252
:10A0300080919B0290919C0297FD01969595879542
:10A0400090939C0280939B028091460790914707D2
:10A05000A0914807B0914907B7FF04C081509F4FB6
:10A06000AF4FBF4F892F9A2FAB2FBB27A7FDBA95B4
:10A070008093460790934707A0934807B0934907FA
:10A080008091380790913907A0913A07B0913B072A
:10A09000B7FF04C081509F4FAF4FBF4F892F9A2FFA
:10A0A000AB2FBB27A7FDBA9580933807909339074C
:10A0B000A0933A07B0933B07809103039091040368
:10A0C000A0910503B09106032AA13BA14CA15DA17B
:10A0D000281B390B4A0B5B0B209338033093390351
:10A0E00040933A0350933B038091FB029091FC0212
:10A0F000A091FD02B091FE02EEA0FFA008A519A557
:10A10000E81AF90A0A0B1B0BE0923C03F0923D039C
:10A1100000933E0310933F03209340033093410389
:10A120004093420350934303E0924403F09245036B
:10A1300000934603109347038091DF029091E00261
:10A14000A091E102B091E202821B930BA40BB50B2C
:10A150008093DF029093E002A093E102B093E202C9
:10A160008091D7029091D802A091D902B091DA02E1
:10A170008E199F09A00BB10B8093D7029093D80240
:10A18000A093D902B093DA02FBA5FF23E1F020915E
:10A19000B9023091BA02213831054CF08091140394
:10A1A0009091150301969093150380931403205802
:10A1B0003F4F4CF4809114039091150301979093B5
:10A1C0001503809314031092BA021092B90281E031
:10A1D00090E090935C0380935B03A0904003B09069
:10A1E0004103C0904203D0904303D601C501D7FE7E
:10A1F00007C088279927DC018A199B09AC09BD098A
:10A2000081509240A040B04034F084E090E09093C0
:10A210005C0380935B038091610390916203A09142
:10A220006303B091640320914F0730915007409130
:10A23000510750915207821B930BA40BB50B815E03
:10A24000914BAF4FBF4F8F539C49A040B04028F077
:10A250008091F80789310CF4FFC031E0A31630E19A
:10A26000B30630E0C30630E0D3060CF473C080912F
:10A270005D03882309F46AC0D601C501D7FE07C073
:10A2800088279927DC018A199B09AC09BD099C0123
:10A29000AD01B7FF04C021503E4F4F4F5F4F09E063
:10A2A00055954795379527950A95D1F780915B038A
:10A2B00090915C03820F931F90935C0380935B03E8
:10A2C000D601C501D7FE03C00796A11DB11D13E03D
:10A2D000B595A795979587951A95D1F780934F03D4
:10A2E00090935003A0935103B09352038958934124
:10A2F000A040B04064F088E893E1A0E0B0E0809333
:10A300004F0390935003A0935103B09352032091B5
:10A310004F0330915003409151035091520357FF26
:10A3200004C021503F4F4F4F5F4F232F342F452FF5
:10A33000552747FD5A958091990290919A02820F74
:10A34000931F90939A028093990206C081E08093B4
:10A350005D0302C010925D0350E0A51650EFB506F4
:10A360005FEFC5065FEFD5060CF073C080915E030A
:10A37000882309F46AC0D601C501D7FE07C0882723
:10A380009927DC018A199B09AC09BD099C01AD0123
:10A39000B7FF04C021503E4F4F4F5F4FF9E0559536
:10A3A000479537952795FA95D1F780915B03909162
:10A3B0005C03820F931F90935C0380935B03D60131
:10A3C000C501D7FE03C00796A11DB11DE3E0B595F9
:10A3D000A79597958795EA95D1F780934F0390932A
:10A3E0005003A0935103B093520388579C4EAF4F34
:10A3F000BF4F64F488E79CEEAFEFBFEF80934F034D
:10A4000090935003A0935103B093520320914F03B4
:10A4100030915003409151035091520357FF04C0B3
:10A4200021503F4F4F4F5F4F232F342F452F55273C
:10A4300047FD5A958091990290919A02820F931F3D
:10A4400090939A028093990211C081E080935E03F9
:10A450000DC010925E030AC010925C0310925B0361
:10A4600088EE93E09093BA018093B9017BA5272FE2
:10A47000332780915B0390915C032817390724F4FC
:10A4800030935C0320935B03E091F807EE2379F0AF
:10A490002E2F332727FD309580915B0390915C032D
:10A4A0002817390724F430935C0320935B03409111
:10A4B000400350914103609142037091430341383E
:10A4C00051056105710574F080911803909119038D
:10A4D00020915B0330915C03820F931F90931903CB
:10A4E0008093180340585F4F6F4F7F4F74F48091F3
:10A4F00018039091190320915B0330915C03821B38
:10A50000930B909319038093180381E090E090934C
:10A510005C0380935B03A0904403B0904503C0901C
:10A520004603D0904703D601C501D7FE07C0882750
:10A530009927DC018A199B09AC09BD098150924019
:10A54000A040B04034F084E090E090935C038093AE
:10A550005B038091650390916603A0916703B091BE
:10A56000680320915707309158074091590750913F
:10A570005A07821B930BA40BB50B815E914BAF4F17
:10A58000BF4F8F539C49A040B04018F0E9310CF404
:10A59000FFC011E0A11610E1B10610E0C10610E005
:10A5A000D1060CF473C080915F03882309F46AC05C
:10A5B000D601C501D7FE07C088279927DC018A1973
:10A5C0009B09AC09BD099C01AD01B7FF04C0215036
:10A5D0003E4F4F4F5F4F69E055954795379527950B
:10A5E0006A95D1F780915B0390915C03820F931F72
:10A5F00090935C0380935B03D601C501D7FE03C033
:10A600000796A11DB11D23E0B595A7959795879550
:10A610002A95D1F78093530390935403A093550345
:10A62000B093560389589341A040B04064F088E845
:10A6300093E1A0E0B0E08093530390935403A09380
:10A640005503B09356032091530330915403409126
:10A6500055035091560357FF04C021503F4F4F4FB1
:10A660005F4F232F342F452F552747FD5A95809153
:10A670009B0290919C02820F931F90939C02809367
:10A680009B0206C081E080935F0302C010925F03CB
:10A6900030E0A31630EFB3063FEFC3063FEFD3061B
:10A6A0000CF073C080916003882309F46AC0D6015E
:10A6B000C501D7FE07C088279927DC018A199B09A5
:10A6C000AC09BD099C01AD01B7FF04C021503E4F4C
:10A6D0004F4F5F4F09E055954795379527950A9558
:10A6E000D1F780915B0390915C03820F931F90934D
:10A6F0005C0380935B03D601C501D7FE03C00796B8
:10A70000A11DB11D13E0B595A795979587951A954D
:10A71000D1F78093530390935403A0935503B093C0
:10A72000560388579C4EAF4FBF4F64F488E79CEEAA
:10A73000AFEFBFEF8093530390935403A09355035F
:10A74000B093560320915303309154034091550325
:10A750005091560357FF04C021503F4F4F4F5F4F5A
:10A76000232F342F452F552747FD5A9580919B0263
:10A7700090919C02820F931F90939C0280939B0266
:10A7800011C081E0809360030DC0109260030AC085
:10A7900010925C0310925B0388EE93E09093BA01F1
:10A7A0008093B9015BA5252F332780915B0390919E
:10A7B0005C032817390724F430935C0320935B0370
:10A7C0008091F807882379F0282F332727FD3095CB
:10A7D00080915B0390915C032817390724F4309330
:10A7E0005C0320935B0340914403509145036091C7
:10A7F000460370914703413851056105710574F0B6
:10A80000809116039091170320915B0330915C03B4
:10A81000820F931F909317038093160340585F4F46
:10A820006F4F7F4FCCF480911603909117032091C6
:10A830005B0330915C03821B930B9093170380930F
:10A8400016030AC010929C0210929B0210929A0268
:10A85000109299021092BB0280915C07882341F408
:10A8600010929C0210929B0210929A0210929902EE
:10A8700080914F0790915007A0915107B0915207D6
:10A880008093610390936203A0936303B093640386
:10A890008091570790915807A0915907B0915A0796
:10A8A0008093650390936603A0936703B093680356
:10A8B0001092F3021092F4021092F5021092F60236
:10A8C0001092EF021092F0021092F1021092F20236
:10A8D0001092EB021092EC021092ED021092EE0236
:10A8E00010924F0710925007109251071092520782
:10A8F00010925707109258071092590710925A0752
:10A900001092460710924707109248071092490785
:10A91000109238071092390710923A0710923B07AD
:10A9200010923302109232020091A9021091AA02F1
:10A93000C80117FF04C088279927801B910B4097F7
:10A940006CF088EE93E09093BA018093B901809106
:10A95000A40584FD03C081E080934E03F090B00510
:10A96000AF2CBB24CC24DD24B801882777FD80954B
:10A97000982F980117FF04C022273327201B310B83
:10A98000442737FD4095542F0E94D1779B01AC019D
:10A99000C601B5010E94D17797FF04C061507E4F78
:10A9A0008F4F9F4FF9E09595879577956795FA9525
:10A9B000D1F79B018F2D9927809FD001819FB00DEA
:10A9C000909FB00D1124CD01B7FD03969595879505
:10A9D00095958795280F391F442737FD4095542FAB
:10A9E0002093340330933503409336035093370359
:10A9F0008091D3029091D402A091D502B091D60259
:10AA0000821B930BA40BB50B8093D3029093D402BB
:10AA1000A093D502B093D6028155934CA040B0408C
:10AA200064F080E593ECA0E0B0E08093D3029093D3
:10AA3000D402A093D502B093D6028091D302909114
:10AA4000D402A091D502B091D602805B9C43AF4F57
:10AA5000BF4F64F480EB9CE3AFEFBFEF8093D30272
:10AA60009093D402A093D502B093D602A090C102D5
:10AA7000B090C202A114B10409F478C18091A40578
:10AA800083FF74C18091030390910403A091050397
:10AA9000B0910603B7FF04C081509E4FAF4FBF4F28
:10AAA00079E0B595A795979587957A95D1F76C013B
:10AAB00097FF04C0D094C194D108D3948091FB0235
:10AAC0009091FC02A091FD02B091FE02B7FF04C07C
:10AAD00081509E4FAF4FBF4F69E0B595A7959795B1
:10AAE00087956A95D1F7BC0197FF03C07095619572
:10AAF0007F4FC616D7060CF46B01B601D7FE02C015
:10AB0000695F7F4F2B0153E0559447945A95E1F7C5
:10AB100042E0E42EF12C4E0C5F1C0CE112E0A00E82
:10AB2000B11E75010027F7FC0095102F24EE3DEFB4
:10AB3000A20EB31E8091850790918607A09187078A
:10AB4000B091880760909501709096018090970170
:10AB500090909801BC01CD01A40193010E94457819
:10AB6000E21AF30A040B150BC801B70128E631E01D
:10AB700040E050E00E944578DC01CB013CE4E32E4C
:10AB80003FEFF32EE80EF91E0091B9011091BA01C2
:10AB90000115110589F539E1C316D1046CF58091D1
:10ABA000B9029091BA028E0D9F1D9093BA028093C4
:10ABB000B90280914E038823F9F0C501AA2797FDB9
:10ABC000A095BA2FBC01CD01A40193010E94D177B9
:10ABD000DC01CB018093850790938607A0938707BC
:10ABE000B0938807BC01CD010E9445783093C00224
:10ABF0002093BF0210924E03C70124E0880F991FD3
:10AC00002A95E1F7B2010E941078CB01AA2797FD9F
:10AC1000A095BA2F2091850730918607409187072C
:10AC200050918807280F391F4A1F5B1F2093850703
:10AC3000309386074093870750938807F090AA01C6
:10AC40006F2D7727C69EC001C79E900DD69E900D92
:10AC5000112497FD4F966C0195E0D594C7949A9571
:10AC6000E1F76C197D096B0177FD7AC001151105BB
:10AC700009F06FC0009180021091810280917E02E4
:10AC800090917F02080F191F17FF02C0095F1F4F25
:10AC900083E0159507958A95E1F7005C1F4FCA017F
:10ACA000B901A40193010E944578DA01C9012091FC
:10ACB000BF023091C002442737FD4095542F821BBC
:10ACC000930BA40BB50B845E9D4FAF4FBF4FBC01E0
:10ACD000CD0128E631E040E050E00E944578DC01FB
:10ACE000CB01845B90408C9DA0018D9D500D9C9D5F
:10ACF000500D1124CA01B8010E94107883E0F89E1B
:10AD000060011124C616D70614F4B60108C08827BE
:10AD100099278C199D09681779070CF4BC019B01D0
:10AD2000442737FD4095542F8091D3029091D4024F
:10AD3000A091D502B091D602820F931FA41FB51F18
:10AD40008093D3029093D402A093D502B093D602FD
:10AD50000DC0015010401093BA010093B90106C014
:10AD600084EF91E09093BA018093B9018091BB0286
:10AD7000882381F01092C7021092C8021092C90273
:10AD80001092CA021092CB021092CC021092CD0205
:10AD90001092CE02709096027720F1F480915C07B9
:10ADA000282F3327442755278091030390910403CC
:10ADB000A0910503B0910603BC01CD010E94D1779B
:10ADC000DC01CB01BC01CD0128EF3AE240E050E0CC
:10ADD0000E944578290102C0442455249090950290
:10ADE0009920F1F480915C07282F332744275527B9
:10ADF0008091FB029091FC02A091FD02B091FE02B5
:10AE0000BC01CD010E94D177DC01CB01BC01CD0199
:10AE100028EF3AE240E050E00E944578190102C074
:10AE2000222433248091320790913307893C910585
:10AE30001CF088EC90E005C088539F4F34F488E301
:10AE40009FEF909333078093320780913D07909155
:10AE50003E07893C91051CF088EC90E005C08853C2
:10AE60009F4F34F488E39FEF90933E0780933D0714
:10AE700080913F0790914007AA2797FDA095BA2F90
:10AE800020918307A22EBB24CC24DD24BC01CD015C
:10AE9000A60195010E94D1779B01AC0180913207F8
:10AEA00090913307AA2797FDA095BA2F17E0880F36
:10AEB000991FAA1FBB1F1A95D1F7280F391F4A1FC8
:10AEC0005B1F57FF04C0215C3F4F4F4F5F4FA6E011
:10AED0005595479537952795AA95D1F77201E20EBA
:10AEE000F31EF0924007E0923F0780913007909167
:10AEF0003107AA2797FDA095BA2FBC01CD01A60165
:10AF000095010E94D1779B01AC0180913D07909102
:10AF10003E07AA2797FDA095BA2FF7E0880F991F43
:10AF2000AA1FBB1FFA95D1F7280F391F4A1F5B1FB5
:10AF300057FF04C0215C3F4F4F4F5F4FE6E05595F0
:10AF4000479537952795EA95D1F78101020F131F91
:10AF5000109331070093300780917E0790917F070F
:10AF6000880F991FAA2797FDA095BA2F2091370720
:10AF7000332744275527BC01CD010E94D1775B01BF
:10AF80006C0197FF08C08FE390E0A0E0B0E0A80E4E
:10AF9000B91ECA1EDB1E76E0D594C794B794A79459
:10AFA0007A95D1F780914C07282F332744275527CE
:10AFB0008091E7029091E802A091E902B091EA0243
:10AFC000BC01CD010E94D177DC01CB01BC01CD01D8
:10AFD00020EF35E540E050E00E944578B501620F72
:10AFE000731F70937F0760937E0791E0E91690E1ED
:10AFF000F90634F080E090E19093400780933F079A
:10B0000080913F07909140078050904F34F480E04A
:10B0100090EF9093400780933F070150104134F028
:10B0200080E090E190933107809330078091300762
:10B03000909131078050904F34F480E090EF9093DE
:10B040003107809330076150704134F080E090E127
:10B0500090937F0780937E0780917E0790917F0772
:10B060008050904F34F480E090EF90937F0780936E
:10B070007E0780910001482F552780911D019091F6
:10B080001E014817590794F420911D0130911E01AB
:10B0900068A179A1649FC001659F900D749F900D78
:10B0A0001124B9010E94FC7779A368A388A199A112
:10B0B000880F991F880F991F99A388A34091A40511
:10B0C00040FF92C6992009F08FC6772009F08CC600
:10B0D000CC24DD24460180919702909198029093B0
:10B0E0006D0580936C0520911A0330911B03211587
:10B0F000310509F03FC080911301909114018959E5
:10B10000934058F087B5853F20F4809136028150F6
:10B1100011C081E0809374034EC08091130190911F
:10B1200014018436910508F587B58B30D0F08091F5
:10B1300036028F5F809336029AE0890290011124D3
:10B1400080919305821B87BD8CE291E0909322024F
:10B15000809321028EE591E090931B0380931A0364
:10B160002AC081E08093730326C0709273037092AB
:10B17000740321C08091A1029091A202A091A30228
:10B18000B091A40254E0880F991FAA1FBB1F5A95C3
:10B19000D1F78093370290933802A0933902B0938D
:10B1A0003A02D0923502C09234022150304030939E
:10B1B0001B0320931A032091AD0141FF24C02233C9
:10B1C000D8F48091BF0181508093BF018F3FD9F5A2
:10B1D0001092BC028091A1029091A202A091A302C0
:10B1E000B091A40280939D0290939E02A0939F022F
:10B1F000B093A00281E004C081E08093BC0288EC9F
:10B200008093BF0120C08091990190919A01820F93
:10B21000911D2091A9053327829FF001839FF00D96
:10B22000929FF00D1124CF01AA2797FDA095BA2F68
:10B2300080939D0290939E02A0939F02B093A002E0
:10B2400081E08093BC028091030390910403A0915C
:10B250000503B0910603E0909501F09096010091EE
:10B26000970110919801BC01CD01A80197010E949E
:10B27000457859016A018091FB029091FC02A091EE
:10B28000FD02B091FE02BC01CD01A80197010E9410
:10B290004578B901C5010E94FA753C01CC971CF0B4
:10B2A0004CE3642E712CC3010E94376A3C0180E29A
:10B2B000809394018091BC02882309F421C4809179
:10B2C0007B0299279C012071307084FD19C4609124
:10B2D000FA0560FD04C08091A40581FD07C008A1A6
:10B2E00019A130936A032093690397C180917B026F
:10B2F00081FF69C14091BB015091BC01CA010F9609
:10B300002091A7023091A80282179307ACF5809193
:10B310007303882389F58091750381FF13C08D7FA6
:10B32000809375038091A1029091A202A091A30243
:10B33000B091A40280939D0290939E02A0939F02DD
:10B34000B093A00280917503816080937503241BE4
:10B35000350B2F50304037FF03C0309521953F4FBC
:10B360008091690390916A03820F931F90936A03FF
:10B37000809369038BE26EC0CA010F9728173907C3
:10B38000ACF580917403882389F58091750380FF63
:10B3900013C08E7F809375038091A1029091A202C9
:10B3A000A091A302B091A40280939D0290939E026B
:10B3B000A0939F02B093A002809175038260809356
:10B3C0007503241B350B215F3F4F37FF03C03095BA
:10B3D00021953F4F8091690390916A03821B930BE3
:10B3E00090936A03809369038DE234C020917503C2
:10B3F000822F992783709070892B59F12C7F20938D
:10B40000750310926A03109269032091A102309192
:10B41000A2024091A3025091A40220939D02309376
:10B420009E0240939F025093A00261FF06C084EFEA
:10B4300091E090932202809321028091A5028823BB
:10B4400041F423333105410551051CF081E080931F
:10B45000A5028DE3809394012091690330916A03E2
:10B46000C90137FF04C088279927821B930B81509D
:10B4700092400CF491C08091A9059927289FA001C2
:10B48000299F500D389F500D1124CA0160E075E0CE
:10B490000E941078CB01AA2797FDA095BA2F209182
:10B4A0009D0230919E0240919F025091A002280F70
:10B4B000391F4A1F5B1F20939D0230939E024093C9
:10B4C0009F025093A00210926A0310926903A09009
:10B4D000A102B090A202C090A302D090A402D60113
:10B4E000C50180509440A040B04082179307A40744
:10B4F000B5075CF4D601C50180509C4FAF4FBF4FDC
:10B50000281739074A075B0744F080939D02909300
:10B510009E02A0939F02B093A0028091FA0581FF42
:10B5200006C08BE490E090932202809321028091E8
:10B53000AD05882389F5409197025091980257FFF5
:10B5400002C04D5F5F4F5595479555954795809142
:10B550001D0190911E01209100013327489FB001E9
:10B56000499F700D589F700D1124CB01B9010E94A5
:10B5700010787093BC016093BB01663471051CF4B4
:10B5800086E490E005C06739710534F086E990E003
:10B590009093BC018093BB0180911A0390911B038F
:10B5A000892BB9F18091A1029091A202A091A302EE
:10B5B000B091A40280939D0290939E02A0939F025B
:10B5C000B093A00226C08091A1029091A202A09106
:10B5D000A302B091A40280599140A040B040809352
:10B5E0009D0290939E02A0939F02B093A00280912F
:10B5F000AD05882311F0992702C088E790E0909369
:10B60000BC018093BB0188A199A19093980280937B
:10B6100097020091970210919802A090A102B09019
:10B62000A202C090A302D090A40220919D0230916A
:10B630009E0240919F025091A0022A153B054C05A5
:10B640005D0524F08091FA0580FD9CC280911A036B
:10B6500090911B03892B39F0009197021091980269
:10B66000CC24DD24C9C0D601C501821B930BA40BD9
:10B67000B50B8093380390933903A0933A03B093AA
:10B680003B038230E0E89E07EFEFAE07EFEFBE0727
:10B690002CF481E090E8AFEFBFEF09C08F5F9F47C8
:10B6A000A040B04064F08FEF9FE7A0E0B0E080934F
:10B6B000380390933903A0933A03B0933B03C090AF
:10B6C0003803D09039038091AC01282F33274427C9
:10B6D00055278091380390913903A0913A03B09196
:10B6E0003B03BC01CD010E94D17797FF04C0615E8E
:10B6F0007F4F8F4F9F4F25E095958795779567955D
:10B700002A95D1F7609338037093390380933A03F5
:10B7100090933B0365302EEF72072FEF82072FEFD8
:10B7200092072CF484E09EEFAFEFBFEF09C06050AA
:10B7300074408040904064F080E094E0A0E0B0E08D
:10B740008093380390933903A0933A03B0933B035B
:10B750008090380390903903209134023091350263
:10B7600037FF02C0295F3F4F83E0359527958A95C3
:10B77000E1F74FEF223834071CF421E83FEF05C012
:10B780002038310514F020E830E0C901AA2797FDE0
:10B79000A095BA2F2091AE01332744275527BC012D
:10B7A000CD010E94D17797FF04C06D5F7F4F8F4F0F
:10B7B0009F4FB2E09595879577956795BA95D1F7A4
:10B7C0009B015FEF613075071CF420E03FEF06C07E
:10B7D0006F3F710519F014F020E031E0809175039E
:10B7E000882341F0C90137FD03969C0135952795C3
:10B7F00035952795820E931E2091AB01222309F4E3
:10B8000054C06091C3027091C4028091C5029091AE
:10B81000C60297FF04C061587F4F8F4F9F4FF7E0DC
:10B820009595879577956795FA95D1F733274427AE
:10B8300055270E94D17797FF04C0615E7F4F8F4FDD
:10B840009F4FE5E09595879577956795EA95D1F7B0
:10B85000609338037093390380933A0390933B03CA
:10B860006138AFEF7A07AFEF8A07AFEF9A072CF492
:10B8700080E89FEFAFEFBFEF0AC06F3F7105810512
:10B88000910569F064F080E091E0A0E0B0E0809381
:10B89000380390933903A0933A03B0933B0380910C
:10B8A000380390913903880E991E8091A901282FA1
:10B8B00033278091FB07992787FD9095289FF001FA
:10B8C000299FF00D389FF00D11249F01F7FF02C052
:10B8D00021583F4F220F232F221F330BFFEF213818
:10B8E0003F071CF420E83FEF06C02F3F310519F059
:10B8F00014F020E031E0820E931EC401AA2797FDC8
:10B90000A095BA2FE0909702F090980297014427F3
:10B9100037FD4095542FBC01CD010E94D17797FF90
:10B9200004C061507E4F8F4F9F4F59E0959587958A
:10B93000779567955A95D1F7061B170B8091690388
:10B9400090916A03892B09F060C01E141F040CF04B
:10B950005CC09601D7FE03C0309521953F4F2D3333
:10B96000310540F480916D0390916E03801791072B
:10B9700074F526C02C53304045E0369527954A95FE
:10B98000E1F72031310510F02FE030E040916D03F8
:10B9900050916E031C141D04E4F480E190E0821BBE
:10B9A000930B489F9001499F300D589F300D1124F3
:10B9B00094E0369527959A95E1F72017310720F501
:10B9C0008091BD019091BE0108171907F4F08C0118
:10B9D0001CC0205F3F4F8091BD019091BE01829FAE
:10B9E000B001839F700D929F700D11249B0184E024
:10B9F000369527958A95E1F74017510714F08A018B
:10BA000004C00217130708F08901C801AA2797FD8F
:10BA1000A095BA2F1DE0880F991FAA1FBB1F1A956A
:10BA2000D1F79301442737FD4095542FBC01CD0138
:10BA30000E94457820933C0330933D0340933E039E
:10BA400050933F0300913C0310913D0380916B03A1
:10BA500090916C039C01220F331F280F391F200F78
:10BA6000311F37FF02C02D5F3F4FA9015595479504
:10BA70005595479550936C0340936B038091A505B2
:10BA8000282F3327220F331F220F331F2417350788
:10BA90006CF480917D07282F3327220F331F220F4C
:10BAA000331F205530404217530724F030936C0366
:10BAB00020936B038091FA0580FF0DC080916B038A
:10BAC00090916C03A8A1B9A18A179B0724F0B093A9
:10BAD0006C03A0936B0328A139A12E193F0937FFEE
:10BAE00002C02D5F3F4F3595279535952795E091FD
:10BAF0006B03F0916C03E20FF31FF9A3E8A342C0BC
:10BB00008091AD05882301F56091970270919802AC
:10BB100077FF02C06D5F7F4F759567957595679547
:10BB200040911D0150911E0180910001282F332763
:10BB3000649FC001659F900D749F900D1124B90101
:10BB40000E941078CB0101C099279093BC0180938B
:10BB5000BB018091BB019091BC01873491051CF41D
:10BB600086E490E005C08639910534F086E990E0DE
:10BB70009093BC018093BB01E8A0F9A0F0926C0304
:10BB8000E0926B0380917B0299279C0122703070B8
:10BB900081FF1CC180916F0390917003A09171038C
:10BBA000B09172030097A105B10521F08091A50223
:10BBB0008130B1F408A119A1C801AA2797FDA09569
:10BBC000BA2F2EE0880F991FAA1FBB1F2A95D1F705
:10BBD00080936F0390937003A0937103B0937203EB
:10BBE0008091A502813019F482E08093A50228A1FA
:10BBF00039A1C901AA2797FDA095BA2F930144271F
:10BC000037FD4095542FBC01CD010E94D177DC0156
:10BC1000CB0180933C0390933D03A0933E03B093EC
:10BC20003F03B7FF04C08150904EAF4FBF4F5C0140
:10BC30006D010DE0D594C794B794A7940A95D1F7F8
:10BC4000A0923C03B0923D03C0923E03D0923F03CA
:10BC500060917C0270917D023FE0603A730750F57D
:10BC600080916F0390917003A0917103B091720362
:10BC70009C01AD011AE056954795379527951A9581
:10BC8000D1F7821B930BA40BB50BA6019501F4E031
:10BC9000220F331F441F551FFA95D1F7820F931FB0
:10BCA000A41FB51F80936F0390937003A09371033B
:10BCB000B093720360547F4118F580916F039091A7
:10BCC0007003A0917103B09172039C01AD01ECE08F
:10BCD0005695479537952795EA95D1F7821B930B93
:10BCE000A40BB50BA601950172E0220F331F441F70
:10BCF000551F7A95D1F7820F931FA41FB51F29C036
:10BD000080913402909135028091340290913502F5
:10BD100097FF03C0909581959F4F843691050CF550
:10BD200080916F0390917003A0917103B0917203A1
:10BD30009C01AD016EE056954795379527956A951C
:10BD4000D1F7821B930BA40BB50B8A0D9B1DAC1D69
:10BD5000BD1D80936F0390937003A0937103B09304
:10BD6000720380916F0390917003A0917103B09161
:10BD700072032EE0B695A795979587952A95D1F7EA
:10BD800090939802809397024091AB05442399F0D9
:10BD900055279C01BA010E941078C901861B970B98
:10BDA00090936E0380936D03260F371F3093BE016F
:10BDB0002093BD0119C010926E0310926D038FEF96
:10BDC00093E09093BE018093BD010EC01092A50236
:10BDD00010926F031092700310927103109272030D
:10BDE00030939802209397025091440758AB252F27
:10BDF0003327220F331F220F331F285D3F4F68A1C7
:10BE000079A12617370714F039A328A370917D076D
:10BE100079AB872F9927880F991F880F991F805515
:10BE20009040A8A1B9A18A179B0714F499A388A3ED
:10BE300080916C02882321F4809102088F3FA1F049
:10BE400080917C0290917D020297C09768F4E8A1EE
:10BE5000F9A11E161F0644F481E090E090937D0244
:10BE600080937C0239A328A3E8A0F9A0F0925105A1
:10BE7000E09250058091340390913503A0913603F0
:10BE8000B091370312E0880F991FAA1FBB1F1A95A4
:10BE9000D1F7C0907E07D0907F07C81AD90A8701D2
:10BEA000013A11058CF0C701F7FC0196959587952D
:10BEB0008C159D050CF46C01909581959F4FC816CB
:10BEC000D90694F46C0110C011E5C116D1041CF020
:10BED000E0E5CE2ED12C20EBC2162FEFD20624F4B3
:10BEE00070EBC72E7FEFD72E49A9242F3327220FBF
:10BEF000331F220F331FC90168A179A1861B970B3D
:10BF00008C159D050CF46C0188A199A1821B930BE3
:10BF1000C816D9060CF46C0180913F079091400738
:10BF20006091AD027091AE02861B970B90934E0705
:10BF300080934D07A0905C072091CB023091CC02FA
:10BF40004091CD025091CE02AA2041F0461A570AE4
:10BF5000C201AA2797FDA095BA2F04C0AA2797FD72
:10BF6000A095BA2F280F391F4A1F5B1F2093CB02C1
:10BF70003093CC024093CD025093CE028091CB02FD
:10BF80009091CC02A091CD02B091CE0281509A4FF7
:10BF9000A040B04064F080E09AEFA0E0B0E0809371
:10BFA000CB029093CC02A093CD02B093CE028091AD
:10BFB000CB029091CC02A091CD02B091CE028050E4
:10BFC0009640AF4FBF4F64F480E096E0AFEFBFEF15
:10BFD0008093CB029093CC02A093CD02B093CE027B
:10BFE000B090BA052B2D332780914D0790914E07C5
:10BFF000289F7001299FF00C389FF00C11249701A5
:10C00000F7FE02C0295F3F4F790153E0F594E794B2
:10C010005A95E1F70091AF011091B00198014427C2
:10C0200037FD4095542F8091CB029091CC02A09186
:10C03000CD02B091CE02BC01CD010E944578E20E46
:10C04000F31E90909B01692D7727882799279601E9
:10C05000D7FE04C0222733272C193D0937FF02C021
:10C060002F5F3F4F3595279548A159A1240F351FC4
:10C07000442737FD4095542F0E94D17797FF04C085
:10C08000615C7F4F8F4F9F4F26E095958795779501
:10C0900067952A95D1F79B016E157F050CF47B01FE
:10C0A000309521953F4FE216F3060CF4790180910B
:10C0B0003007909131076091AB027091AC02861B02
:10C0C000970B90932F0780932E072091C7023091F2
:10C0D000C8024091C9025091CA02AA2041F0261A12
:10C0E000370AC101AA2797FDA095BA2F04C0AA2735
:10C0F00097FDA095BA2F280F391F4A1F5B1F209369
:10C10000C7023093C8024093C9025093CA0280917B
:10C11000C7029091C802A091C902B091CA02815091
:10C120009A4FA040B04064F080E09AEFA0E0B0E009
:10C130008093C7029093C802A093C902B093CA0229
:10C140008091C7029091C802A091C902B091CA0221
:10C1500080509640AF4FBF4F64F480E096E0AFEF61
:10C16000BFEF8093C7029093C802A093C902B09317
:10C17000CA022B2D332780912E0790912F07289FDD
:10C18000D001299FB00D389FB00D11249D01B7FF3C
:10C1900002C0295F3F4F5901B3E0B594A794BA9507
:10C1A000E1F79801442737FD4095542F8091C7024D
:10C1B0009091C802A091C902B091CA02BC01CD0100
:10C1C0000E944578A20EB31E692D772788279927EC
:10C1D0009601D7FE04C0222733272C193D0937FFCB
:10C1E00002C02F5F3F4F35952795E8A1F9A12E0F8B
:10C1F0003F1F442737FD4095542F0E94D17797FF6A
:10C2000004C0615C7F4F8F4F9F4FF6E095958795F7
:10C2100077956795FA95D1F79B016A157B050CF424
:10C220005B01309521953F4FA216B3060CF45901DE
:10C23000EEE56E2EE6E07E2E75E1872E76E0972EF7
:10C240006BE0362E5DE5452E57E0552ED4012C913E
:10C2500012160CF0DFC0203419F408A119A11EC079
:10C26000E8A1F9A1CF01AA2797FDA095BA2F3327FE
:10C2700027FD3095432F532FBC01CD010E94D1776C
:10C2800097FF04C0615C7F4F8F4F9F4F46E09595AD
:10C290008795779567954A95D1F78B01F4012181B0
:10C2A000203419F40E0D1F1D22C0203C19F40E1964
:10C2B0001F091DC0C701AA2797FDA095BA2F3327D4
:10C2C00027FD3095432F532FBC01CD010E94D1771C
:10C2D00097FF04C0615C7F4F8F4F9F4F36E095956D
:10C2E0008795779567953A95D1F7060F171FF40153
:10C2F0002281203419F40A0D1B1D22C0203C19F4A0
:10C300000A191B091DC0C501AA2797FDA095BA2FC0
:10C31000332727FD3095432F532FBC01CD010E94B9
:10C32000D17797FF04C0615C7F4F8F4F9F4F26E00E
:10C3300095958795779567952A95D1F7060F171FDD
:10C34000F4012381203419F40C0D1D1D22C0203C62
:10C3500019F40C191D091DC0C601AA2797FDA09547
:10C36000BA2F332727FD3095432F532FBC01CD0122
:10C370000E94D17797FF04C0615C7F4F8F4F9F4F22
:10C38000B6E09595879577956795BA95D1F7060F9D
:10C39000171FD2018D919C91801791075CF4BC010D
:10C3A000600F711F77FF02C06F5F7F4F8B01159584
:10C3B000079504C0000F111F081B190BB8A98B2F7C
:10C3C0009927880F991F880F991F8017910754F498
:10C3D000E9A98E2F9927880F991F880F991F081791
:10C3E00019070CF08C01C80117FD039695958795E8
:10C3F00095958795F3018183880F991F880F991F61
:10C400009801281B390BC901880F8283D2010D9333
:10C410001C9303C0F301118212823A9402E010E0EF
:10C42000400E511E24E030E0820E931E48E050E0A2
:10C43000640E751E37FE0ACFE2E1CB5C0C947C786B
:10C440008091820390918303A0918403B09185032E
:10C4500080937A0390937B03A0937C03B0937D0336
:10C4600080917E0390917F03A0918003B09181031E
:10C470008093760390937703A0937803B093790326
:10C48000089510928D0310928C0310928B031092DA
:10C490008A03089584B1806A84B93D9A82E58CBD8F
:10C4A0001DBC459A81E080938F078AEA8093A0079C
:10C4B00083E88093A1078AE08093A2071092A407E3
:10C4C0001092A3071092A6071092A5071092FA07E0
:10C4D0001092C207089530918F07332309F085C069
:10C4E0000DB407FE82C084E080932002459A2EB5E9
:10C4F0008091910399278130910589F082309105CF
:10C500001CF4892B21F03EC00297B9F03BC0309358
:10C51000C107209392032138A9F581E008C0253591
:10C5200049F480919203820F8093920382E080937A
:10C53000910328C03093910325C08091C107E82F53
:10C54000FF27E352F84F20838F5F8093C1079091BC
:10C5500092038A31A0F0291769F48AE1ADEDB7E0C2
:10C56000E3ECF7E00D9001928A95E1F781E080938A
:10C57000C20702C03093C2071092910303C0920F0A
:10C580009093920320919F07203208F028C045988D
:10C59000000000000000000000000000000000009B
:10C5A000000000000000000000000000000000008B
:10C5B000000000000000000000000000000000007B
:10C5C000E0919807F0919907E20FF11D80818EBDEF
:10C5D0008091BF079081890F8093BF0703C081E0DE
:10C5E00080938F072F5F20939F070895EF92FF920C
:10C5F0000F931F938091B3059927880F991F880F78
:10C60000991F7C010027F7FC0095102F80910303F0
:10C6100090910403A0910503B0910603BC01CD01E4
:10C62000A80197010E9445783093A4072093A3079F
:10C630008091FB029091FC02A091FD02B091FE025C
:10C64000BC01CD01A80197010E9445783093A6074F
:10C650002093A50720918507309186074091870791
:10C6600050918807DA01C901E3E0880F991FAA1FDA
:10C67000BB1FEA95D1F7820F931FA41FB51F820F2E
:10C68000931FA41FB51F20919501309196014091F1
:10C69000970150919801BC01CD010E9445783093DB
:10C6A000AC072093AB078091140390911503209160
:10C6B000420230914302821B930B9093B207809306
:10C6C000B107E0910A03F0910B0380915407909118
:10C6D0005507BF010E941078CB019B01220F331F29
:10C6E000220F331F280F391F280F391F37FF02C0B1
:10C6F0002D5F3F4F35952795359527953093A807A2
:10C700002093A7078091810790918207BF010E9423
:10C7100010789B01220F331F220F331F260F371F64
:10C72000260F371F37FF02C02D5F3F4F35952795E6
:10C73000359527953093AA072093A90710920B03EC
:10C7400010920A0310925507109254071092820714
:10C75000109281078091A20799278D30910509F4E5
:10C7600066C08E3091055CF48B30910509F48EC063
:10C770008C3091050CF00FC10A9761F0A8C18F3081
:10C78000910509F47CC18F3091050CF45CC1409790
:10C7900099F19DC1809190028093B30780918F029F
:10C7A0008093B40780918E028093B50780918D02AB
:10C7B0008093B60780918C028093B70780918B029B
:10C7C0008093B80780918A028093B907809189028B
:10C7D0008093BA0780917B028093BB0780917B0294
:10C7E000837F80937B020E94852F8093BC0780917A
:10C7F00007038093BD076BC18091FC079091FD07F3
:10C800009093B4078093B30780910008909101083A
:10C810009093B6078093B50780911D0190911E01FA
:10C820008093B707809100018093B80750C1809131
:10C83000E5058093B3078091E6058093B407809166
:10C84000E7058093B5078091E8058093B60780914E
:10C85000E9058093B7078091ED058093B807809133
:10C86000EE058093B9078091EF058093BA07809118
:10C87000F2058093BB078091F0058093BC078091FF
:10C88000F1058093BD078091F305DAC0F89480919B
:10C890009A05E82FFF27EE0FFF1FE154F94F019093
:10C8A000F081E02DE038F1051CF0EFE7F0E006C084
:10C8B0002FEFE138F20714F4E1E8FFEFE093B3075C
:10C8C00080919B05E82FFF27EE0FFF1FE154F94FE2
:10C8D0000190F081E02DE038F1051CF0EFE7F0E089
:10C8E00006C06FEFE138F60714F4E1E8FFEFE093DC
:10C8F000B40780919905E82FFF27EE0FFF1FE15441
:10C90000F94F0190F081E02DE038F1051CF0EFE7E0
:10C91000F0E006C08FEFE138F80714F4E1E8FFEF2C
:10C92000E093B50780919805E82FFF27EE0FFF1FD2
:10C93000E154F94F0190F081E02DE038F1051CF051
:10C94000EFE7F0E006C02FEFE138F20714F4E1E87A
:10C95000FFEF7894E093B6078091B0028093B70719
:10C960008091B1028093B8078091B2028093B90799
:10C970008091B3028093BA078091B4028093BB0781
:10C980008091B5028093BC078091B6028093BD0769
:10C990008091B70255C08091EF03863018F0109255
:10C9A000EF0385E08093B3078091F4058093B4078B
:10C9B0008091A1029091A202A091A302B091A40241
:10C9C000BC01CD0125E030E040E050E00E94457818
:10C9D0003093B6072093B50780919D0290919E02F7
:10C9E000A0919F02B091A002BC01CD0125E030E0F2
:10C9F00040E050E00E9445783093B8072093B70795
:10CA00008091EA058093B9078091EB058093BA077E
:10CA10008091EC058093BB078091AF028093BC07A7
:10CA20008091BF069091C0068093BD07809150050C
:10CA30009091510597FD03969595879595958795C6
:10CA40008093BE0744C01092B30780E58093B4077B
:10CA500083E08093B5078EE08093B6078091020152
:10CA60008093B7078091D4038093B8078091D50352
:10CA70008093B9078091D6038093BA0728C080912C
:10CA8000CC058093B3078091F9058093B40780911A
:10CA9000A1018093B5078091C5058093B607809169
:10CAA000C6058093B7078091C7058093B80780912A
:10CAB000A0018093B9078091C9058093BA0780913E
:10CAC000CA058093BB078091CB058093BC078091FA
:10CAD000C207882309F4CFC08AEF8093E801409110
:10CAE000C4075091C507CA0181509E4F8F5F934084
:10CAF000B0F42091C6073091C707C90181509E4FFD
:10CB00008F5F934060F48091A40585FF08C0509327
:10CB10008D0340938C0330938B0320938A03809181
:10CB2000CA079091CB0721E08936920724F49093AD
:10CB3000C2028093C1028091C1029091C2022091F1
:10CB4000BF023091C002821B930B845E9D4F68E64A
:10CB500071E00E941078845B90409093BE028093B5
:10CB6000BD022091CE073091CF0780912102909194
:10CB700022028217930740F48091EF03882321F467
:10CB800030932202209321028091C307992788368F
:10CB9000910549F18936910524F48736910531F0E4
:10CBA00072C08936910509F445C06DC08091D007E7
:10CBB0008093F7078091D1078093F9078091D2077E
:10CBC0008093F8078091D3078093FA078091D40768
:10CBD0008093FB078091D5078093E9018091D60768
:10CBE0008093900350C08091D00780939A078091E2
:10CBF000D10780939B078091D20780939C078091F7
:10CC0000D30780939D078091D40780939E078091DE
:10CC100040059091D507892B809340059091D607C8
:10CC200090938E038091410583709C70892B809333
:10CC3000410529C08091D007809390078091D1074A
:10CC4000809391078091D207809392078091D307B8
:10CC5000809393078091D4079091D507909395077F
:10CC6000809394078091D6079091D7079093970768
:10CC70008093960708C010928D0310928C03109237
:10CC80008B0310928A031F910F91FF90EF900895EC
:10CC900080918F07882309F43BC0459880EA97E08C
:10CCA000909399078093980790918F03E92FFF271E
:10CCB000E152FE4F9F5F90938F0380818093A20784
:10CCC000993010F010928F0310928F070E94F66235
:10CCD00081E080939F07000000000000000000003A
:10CCE0000000000000000000000000000000000044
:10CCF0000000000000000000000000000000000034
:10CD00000000000000008091A0078093BF078EBD47
:10CD1000089587B18C6087B9429843981092940324
:10CD200080E88093EB01109293038093EA010895C9
:10CD3000809199038150809399038F3F09F0F4C04B
:10CD400094E09093990380917B02807BE1F0809145
:10CD5000E305882349F080919C03882311F4909384
:10CD6000940381E080939C038091E4058823B9F0CB
:10CD700080919D03882319F484E08093930381E0DC
:10CD800080939D030CC080939C0380939D038091AE
:10CD9000DF0580939A038091E10580939B03809146
:10CDA0009C03882309F040C08091F805282F332781
:10CDB00024FF07C08091A602882319F425FD4DC0E9
:10CDC0004EC09091E005983F50F0809156078D3D00
:10CDD00030F080919A0388230CF43FC040C0983F04
:10CDE00048F0809156078A3028F480919A0388236E
:10CDF000B4F133C0809194038150809394038F3FAA
:10CE000079F5809156078150809394038091EB01CE
:10CE1000813011F480E801C086958093EB01809108
:10CE2000EB0190919A0317C08091940381508093F5
:10CE300094038F3FA9F489E0809394038091EB01E0
:10CE4000813011F480E801C086958093EB018091D8
:10CE5000EB019091E305892311F0429A01C04298B9
:10CE600080919D03882309F043C08091F805282F05
:10CE7000332724FF07C08091A602882319F426FDDA
:10CE800050C034C09091E205983F50F080917C07EB
:10CE90008D3D30F080919B0388230CF442C026C066
:10CEA000983F48F080917C078A3028F480919B035A
:10CEB0008823E4F036C080919303815080939303DC
:10CEC0008F3F91F580917C078150809393038091EF
:10CED000EA01813011F480E801C086958093EA016F
:10CEE0008091EA0190919B038923D9F44398089596
:10CEF000809193038150809393038F3FA9F489E03D
:10CF0000809393038091EA01813011F480E801C09D
:10CF100086958093EA018091EA019091E405892346
:10CF200011F0439A0895439808954FB724E130E0F3
:10CF3000F8948091C9008F778093C9008091C900CF
:10CF40008F7B8093C9008091C9008F7D8093C90039
:10CF50005A9A52985B9A539A832F99278093CD00BF
:10CF60002093CC008091C80082608093C80080E14B
:10CF70008093C9008091CA008F778093CA00809106
:10CF8000CA008F7B8093CA008091CA008F7D8093F6
:10CF9000CA008091CA008F7E8093CA008091CA0027
:10CFA000877F8093CA008091C9008B7F8093C900DE
:10CFB0008091CA0084608093CA008091CA00826018
:10CFC0008093CA008091C80087FF03C08091CE0083
:10CFD000F9CF8091C90080688093C9004FBF089540
:10CFE000FF920F931F93CF93DF9380E197E20E940C
:10CFF0008C16EC01FF248091C9008F778093C900C3
:10D000008091C9008F7E8093C9005A988FE29AE080
:10D010009F938F9309E612E11F930F93E091BB0357
:10D02000F091BC0309950F900F900F900F9002C0E4
:10D030004A996CC0CE010E9495168823C9F3E091ED
:10D04000BB03F091BC03FF2009F468C085E69AE0B9
:10D050009F938F931F930F930995529A0F900F9060
:10D060000F900F90CE010E9495168823D9F383E686
:10D0700090E05A9A019797FFFCCF8FE891E05A9879
:10D08000019797FFFCCF89E090E05A9A019797FFAC
:10D09000FCCF89E090E05A98019797FFFCCF8FE88A
:10D0A00091E05A9A019797FFFCCF8FE891E05A9848
:10D0B000019797FFFCCF89E090E05A9A019797FF7C
:10D0C000FCCF89E090E05A98019797FFFCCF8FE85A
:10D0D00091E05A9A019797FFFCCF8FE891E05A9818
:10D0E000019797FFFCCF89E090E05A9A019797FF4C
:10D0F000FCCF89E090E05A98019797FFFCCF8FE82A
:10D1000091E05A9A019797FFFCCF13C08AE590E00F
:10D110000E948C16EC0191E0F92E91CF8BE69AE0FB
:10D120009F938F931F930F9309950F900F900F90DC
:10D130000F9052985A980E949567E5E0CDB7DEB7F8
:10D140000C948978EF92FF920F931F93CF93DF9304
:10D15000482F00E010E08091EC01813061F41092E2
:10D16000EC0184E480939E031092A00310929F032D
:10D170001092A1032BC180919E03882319F421E012
:10D1800030E001C0980190919F03992371F4232B03
:10D1900011F081E010C084E480939E039093A0037B
:10D1A00090939F039093A103FAC0913069F4232BCD
:10D1B00009F0EBC082E080939F038091A0038F5F12
:10D1C0008093A00383E0E9C09230D1F4232B09F0CF
:10D1D000DCC083E080939E034093A1039091A00361
:10D1E000923039F41092A20347FF03C081E080938C
:10D1F000A20383E080939F039F5F9093A003CFC01F
:10D20000933009F0C2C0232B09F0BFC090939E0356
:10D2100082E080939F038091A0038F5F8093A0039F
:10D220002091A103822F9927782F6627842F992791
:10D23000682B792B8091BE05813049F47370CB0146
:10D240008050924063E070E00E94107817C08230F6
:10D2500061F47770CB018050944066E070E00E94EA
:10D2600010782695269526950BC0737068567140E8
:10D27000CB0177FD0196BC0175956795269526959E
:10D28000022F11270F7010700F5F1F4F0D30110507
:10D2900008F074C07801E00EF11EF701E154F94F77
:10D2A000808191819B01281B390BC90137FF03C085
:10D2B000909581959F4F069794F48091AF02883C9A
:10D2C00030F48091AF02865F8093AF0208C088EC93
:10D2D0008093AF0280916F008F7D80936F00F70184
:10D2E000E154F94F808191819C01220F331F280F57
:10D2F000391F260F371F37FF02C02D5F3F4FE9014F
:10D30000D595C795D595C795CB0101968C179D07E7
:10D3100014F4219706C061507040C617D7070CF46B
:10D3200021968091AF02843BD0F0F701E154F94F90
:10D3300080819181FE01E81BF90BCF0163E070E071
:10D340000E941078CB01880F991F860F971F23EF3B
:10D3500036E0E20EF31EF7019183808307C023EFCE
:10D3600036E0E20EF31EF70111821082000F111F4A
:10D370000154194FF801D183C08311C00231110546
:10D3800070F081E08093EC010AC081E08093EC01B1
:10D390001092A0031092A20384E480939E038091D4
:10D3A000A003803198F08091A203882331F480910A
:10D3B000EC01882311F4809393011092A003109242
:10D3C000A20310929F0384E480939E03E6E0CDB70E
:10D3D000DEB70C948878CF93FC0197FF05C0CFEFA0
:10D3E000F095E195FF4F01C0C1E028E631E0CF01A3
:10D3F000B9010E941078FC018B35910554F08B55D2
:10D4000090408A35910538F484EB90E08E1B9F0B99
:10D41000FC0141E00DC0CF01855B90408A3591054C
:10D4200018F4E45BF04003C02E1B3F0BF9014FEFF3
:10D43000EE0FFF1FEA58F54F259134918C2F992755
:10D4400087FD9095289FB001299F700D389F700D22
:10D450001124842F992787FD9095689FA001699FCB
:10D46000500D789F500D1124CA01CF9108952AE5DF
:10D4700030E0281B390BC9010E94EB690895CF9356
:10D48000DF9380E00E94A06F80911D0190911E01AA
:10D490006AE070E00E9410789F938F9380911D0145
:10D4A00090911E016AE070E00E9410787F936F9364
:10D4B00084E49BE09F938F93C3E9DFE6DF93CF93F0
:10D4C000E091BB03F091BC0309952DB73EB7285FEF
:10D4D0003F4F2DBF8091E8018823B9F186E00E947B
:10D4E000A06F80919407909195076AE070E00E9488
:10D4F000FC777F936F938FED90E09F938F93809154
:10D50000850790918607A0918707B09188072091A1
:10D510009501309196014091970150919801BC017D
:10D52000CD010E9445783F932F938DE49BE09F931C
:10D530008F93DF93CF93E091BB03F091BC030995E8
:10D540008DB79EB70A968DBF12C086E00E94A06F6D
:10D5500089E59BE09F938F93DF93CF93E091BB038B
:10D56000F091BC0309950F900F900F900F90809150
:10D570008E038823C1F086E00E94A06F80918E0305
:10D5800099279F938F9380E69BE09F938F93DF93E0
:10D59000CF93E091BB03F091BC0309952DB73EB743
:10D5A0002A5F3F4F2DBF80E10E94A06F8091F30161
:10D5B0009091F4016CE370E00E94FC779F938F934D
:10D5C0008091F3019091F4016CE370E00E94FC778C
:10D5D0007F936F9380910008909101089F938F93A0
:10D5E0008BE69BE09F938F93C3E9DFE6DF93CF93B6
:10D5F000E091BB03F091BC0309958091A4052DB780
:10D600003EB7265F3F4F2DBF80FF29C08AE10E94B1
:10D61000A06F8091940199279F938F938091A1028D
:10D620009091A202A091A302B091A402BC01CD01ED
:10D6300024E630E040E050E00E9445783F932F938D
:10D6400088E79BE09F938F93DF93CF93E091BB0399
:10D65000F091BC0309958DB79EB708968DBFDF91F9
:10D66000CF910895CF93DF9380E00E94A06F8091C7
:10D670007D06992787FD90959F938F9380917506DE
:10D68000992787FD90959F938F9380916D06992799
:10D6900087FD90959F938F9380916506992787FDCD
:10D6A00090959F938F938FE79BE09F938F93C3E910
:10D6B000DFE6DF93CF93E091BB03F091BC030995C4
:10D6C00080E10E94A06F2DB73EB7245F3F4F2DBF72
:10D6D00080919D06992787FD90959F938F938091C8
:10D6E0009506992787FD90959F938F9380918D063E
:10D6F000992787FD90959F938F9380918506992711
:10D7000087FD90959F938F938FE89BE09F938F93D6
:10D71000DF93CF93E091BB03F091BC030995809117
:10D7200096052DB73EB7245F3F4F2DBF853098F447
:10D7300080E10E94A06F8FE99BE09F938F93DF931E
:10D74000CF93E091BB03F091BC0309950F900F902C
:10D750000F900F9018C08730B0F488E10E94A06F3E
:10D760008FED90E09F938F9380EB9BE09F938F933F
:10D77000DF93CF93E091BB03F091BC0309958DB784
:10D780009EB706968DBFDF91CF9108950F931F939B
:10D7900080E00E94A06F2AE030E08091FC07909129
:10D7A000FD07B9010E94FC779F938F938091FC073E
:10D7B0009091FD07B9010E94FC777F936F93809150
:10D7C0001D0190911E01B9010E9410789F938F93C3
:10D7D00080911D0190911E01B9010E9410787F93E4
:10D7E0006F9389EB9BE09F938F9303E91FE61F9351
:10D7F0000F93E091BB03F091BC03099580E10E9477
:10D80000A06F8DB79EB70C968DBF80910008909148
:10D8100001089F938F938091FE079091FF079F933C
:10D820008F938CEC9BE09F938F931F930F93E091CA
:10D83000BB03F091BC0309958DB79EB708968DBFC9
:10D840001F910F9108950F931F93CF93DF938091B2
:10D85000E801C3E9DFE6882309F478C080E00E948C
:10D86000A06F8091910799279F938F938091930741
:10D8700099279F938F9388ED9BE09F938F938E01C1
:10D88000DF93CF93E091BB03F091BC0309958DB773
:10D890009EB708968DBF80919207833031F48CE05B
:10D8A0000E94A06F87EE9BE005C08CE00E94A06FF5
:10D8B0008CEE9BE09F938F93DF93CF93E091BB031C
:10D8C000F091BC0309950F900F900F900F908091ED
:10D8D000900781FF12C08CE00E94A06F81EF9BE057
:10D8E0009F938F931F930F93E091BB03F091BC0321
:10D8F00009950F900F900F900F9080E10E94A06FFC
:10D900008FED90E09F938F9380919607909197076A
:10D910009F938F9380919407909195076AE070E0B0
:10D920000E94FC777F936F9386EF9BE09F938F938A
:10D9300083E99FE69F938F93E091BB03F091BC0333
:10D9400009958DB79EB70A968DBF12C082E00E94DE
:10D95000A06F86E09CE09F938F93DF93CF93E0913D
:10D96000BB03F091BC0309950F900F900F900F909F
:10D97000DF91CF911F910F910895CF93C82F2091E0
:10D98000A3032093A40399278F32910509F18033D3
:10D9900091051CF44F97A1F02CC08F34910501F133
:10D9A0008F38910531F5222319F481E090E038C0D9
:10D9B00086E0289FF0011124E45DF44F849117C0A4
:10D9C00086E0289FF0011124E35DF44F84910FC09D
:10D9D00086E0289FF0011124E25DF44F849107C096
:10D9E00086E0289FF0011124E15DF44F849180933B
:10D9F000A3039091A3038091A4039813C0E00E9415
:10DA0000A66F9091A30386E0989FF0011124E05D3A
:10DA1000F44F259134918C2FF901099580E090E025
:10DA2000CF9108951092FD071092FC071092010803
:10DA3000109200081092FF071092FE071092020841
:10DA40008AE090E00E948C169093A6038093A50331
:10DA50000895CF93DF938091A5039091A6030E9430
:10DA60009516882309F4AFC08091A5039091A60371
:10DA70000A969093A6038093A503E0E0F0E09F014F
:10DA800090E05FEFAEE5B6E04BE0ED018B8187FF04
:10DA90000BC09F5F8D81E80FF11D8981280F311D1B
:10DAA0008E81851708F4582F4150189647FFEDCF07
:10DAB00050930208232B41F52091AB033091AC0326
:10DAC0004091AD035091AE03BB27A52F942F832F18
:10DAD0009093AA038093A903AA27BB27281B390B7D
:10DAE0004A0B5B0BCF01AA27BB27280F391F4A1F00
:10DAF0005B1F2093AB033093AC034093AD03509373
:10DB0000AE03E5E0F0E013C02091A9033091AA0331
:10DB10002E173F0718F4E21BF30B02C0E0E0F0E021
:10DB2000892F9927880F991FE80FF91F3596F093D1
:10DB3000FD07E093FC07EF3FF10578F480911D01AC
:10DB400090911E018E9F90018F9F300D9E9F300DF2
:10DB50001124C90164E670E013C0CF019695879542
:10DB60009695879520911D0130911E01289FA00157
:10DB7000299F500D389F500D1124CA0169E170E0B2
:10DB80000E94FC777093FF076093FE072091A70324
:10DB90003091A8032E0F3F1F3093A8032093A703B3
:10DBA0005EE02131350778F08091000890910108FE
:10DBB0000196909301088093000820513E403093D5
:10DBC000A8032093A703DF91CF9108954FB720E4D6
:10DBD00030E0F8948091C9008F778093C9008091DC
:10DBE000C9008F7B8093C9008091C9008F7D80938D
:10DBF000C9005A9A52985B9A539A832F9927809317
:10DC0000CD002093CC008091C80082608093C80032
:10DC100088E18093C9008091CA008F778093CA0001
:10DC20008091CA008F7B8093CA008091CA008F7D4B
:10DC30008093CA008091CA008F7E8093CA00809131
:10DC4000CA00877F8093CA008091C9008B7F809330
:10DC5000C9008091CA0084608093CA008091CA0084
:10DC600082608093CA008091C80087FF03C08091C2
:10DC7000CE00F9CF8091C90080688093C9004FBF62
:10DC800008950F931F93CF93DF93482F4F5F8931F0
:10DC900008F089C08091BE06841710F44093BE0638
:10DCA000CB0183539B4268E170E00E941078A42F5F
:10DCB000BB27FD01EA0FFB1FE154F94F80819181E1
:10DCC0009B01281B390BC90137FF03C09095819533
:10DCD0009F4F069794F48091AF02883C30F4809176
:10DCE000AF02865F8093AF0208C088EC8093AF02DA
:10DCF00080916F008F7D80936F00FD01EA0FFB1F05
:10DD0000E154F94F808191819C01220F331F280F2C
:10DD1000391F260F371F37FF02C02D5F3F4FE90124
:10DD2000D595C795D595C795CB0101968C179D07BD
:10DD300014F4219706C061507040C617D7070CF441
:10DD400021968091AF02843BD8F08D010A0F1B1FF2
:10DD5000F801E154F94F80819181FE01E81BF90B34
:10DD6000CF0163E070E00E941078CB01880F991F0B
:10DD7000860F971F0D50194FF8019183808307C0BC
:10DD8000AA0FBB1FAD50B94F11961C921E92E42FE3
:10DD9000FF27EE0FFF1FE154F94FD183C0834430BA
:10DDA00011F410929301DF91CF911F910F9108957B
:10DDB000CF93DF9320910308822F9927807F907063
:10DDC000409709F06CC02F3109F046C080910408DB
:10DDD0008093B303209106082093B5038091070830
:10DDE0008093B403822F99279093C0068093BF0637
:10DDF000222309F054C080919805282F3327220F41
:10DE0000331FF901ED50F94F11821082809199056D
:10DE1000A82FBB27AA0FBB1FFD01ED50F94F1182A0
:10DE2000108280919B05E82FFF27EE0FFF1FCF0187
:10DE30008D50994FEC01198218822154394FE90114
:10DE400019821882A154B94F11961C921E92E15466
:10DE5000F94F1182108223C0C22FCF70CA30F8F45C
:10DE60008091040880932D088091050880932C08E8
:10DE70008091060880932F088091070880932E08D0
:10DE800060912C0870912D088C2F0E94416E60913A
:10DE90002E0870912F088C2F8F5F0E94416EDF91AA
:10DEA000CF910895CF93C82F8F3F49F48091B60347
:10DEB0008F3F29F41092B8031092B70332C020911B
:10DEC000B803222339F4CF3111F485E001C084E096
:10DED0008093B9038091B9039091B7038217A0F49E
:10DEE000892F80958093B7038F3F19F48EEF80932D
:10DEF000B7038091B703C81711F40E94D86E10922F
:10DF0000B8031092B7030BC0E22FFF27ED5FF74F66
:10DF1000C0832F5F2093B8039C0F9093B703C093E7
:10DF2000B603CF9108959091B203933240F4E92F54
:10DF3000FF27E75FF74F80839F5F9093B2030895B9
:10DF4000833218F48D5F8093B203089590E2ECE081
:10DF5000F8E08FE19193815087FFFCCF0895CF9334
:10DF6000CFB723E031E0F8948091C9008F77809398
:10DF7000C9008091C9008F7B8093C9008091C9003E
:10DF80008F7D8093C9005A9A52985B9A539A832F37
:10DF900099278093CD002093CC008091C8008260A7
:10DFA0008093C80088E18093C9008091CA008F7770
:10DFB0008093CA008091CA008F7B8093CA008091B1
:10DFC000CA0080628093CA008091CA0080618093F9
:10DFD000CA008091CA0088608093CA008091C900FD
:10DFE00084608093C9008091CA0084608093CA00D5
:10DFF0008091CA0082608093CA008091C80087FF28
:10E0000003C08091CE00F9CF8091C90080688093D1
:10E01000C9008091C90080648093C9000E94A66FE6
:10E02000CFBFCF910895282F99278F709070892B9B
:10E0300031F420958091B103822B8093B103089530
:10E040008091EF01882309F441C080917B0285FF14
:10E050000AC082E98093090883E280930A0885E573
:10E0600080930B0802C0109209088091F0018F3054
:10E0700071F48091B1030E94BD6C882341F081E965
:10E080008093090880930A0881E380930B0810921B
:10E09000EF018091C80085FFFCCF8091C9008F7E81
:10E0A0008093C9008091C9008E7F8093C9008091C0
:10E0B0000908882311F48EEF01C08EE78093CE000B
:10E0C0008091B1038093F0011092B10308951F92E3
:10E0D0000F920FB60F9211248F939F93EF93FF939C
:10E0E0009091EF01992309F040C08091BA038823F1
:10E0F00061F480910908882311F483E003C0813919
:10E1000099F481E08093BA030FC0833099F4809131
:10E110000908882349F0909309088091C9008E7FEF
:10E120008093C9008EEF1EC08091C90081608093EA
:10E13000C9000EC0833261F48091C9008E7F809344
:10E14000C9008FEF8093CE0081E08093EF0114C06F
:10E150008091BA03E82FFF27E75FF74F8F5F809327
:10E16000BA0380818093CE0007C01092BA038091D9
:10E17000C90080618093C900FF91EF919F918F91B9
:10E180000F900FBE0F901F901895EF92FF920F9374
:10E190001F93CF93DF937C018B01EA01452B39F06C
:10E1A000F80181918F01F70109952197C9F7E6E000
:10E1B000CDB7DEB70C948878EF92FF920F931F9340
:10E1C000CF93DF937C018B01EA01452B41F0F801ED
:10E1D0000F5F1F4F8491F70109952197C1F7E6E082
:10E1E000CDB7DEB70C9488780F931F93CF938C0133
:10E1F000C62F161634F480E2F8010995C1501C169A
:10E20000D4F3CF911F910F9108950F931F93CF9344
:10E210008C01C62F161634F480E3F8010995C1501D
:10E220001C16D4F3CF911F910F910895A5E3B0E090
:10E23000ECE1F1E70C9460782E96EEADFFAD2E97F1
:10E240008824992454018091B003882321F42C96CA
:10E250001FAE1EAE2C975EE4452E512C4C0E5D1E5B
:10E260006F01B60105C0153239F00894C11CD11CEC
:10E27000F60114911123B9F7A601461B570B31F093
:10E280002C968EAD9FAD2C970E94DC70112309F463
:10E290006AC20894C11CD11CFF24FDA6FCA64FEF46
:10E2A000E42EF9A6F6010894C11CD11C149115376F
:10E2B00021F0812F80628837B1F4F0FE0AC0F201AC
:10E2C00024E030E0420E531E80809180A280B38013
:10E2D0000AC0F20142E050E0440E551E8081918157
:10E2E0004C01AA24BB24103221F489A58823D1F63D
:10E2F0001DC0133219F458E0F52AD4CF1A3211F0A8
:10E300001D3291F41A3259F4F20182E090E0480E85
:10E31000591EE081ECA7EE232CF6E195ECA790E1E5
:10E32000F92AAFEDFA22BECF1B3211F419A7BACFEA
:10E330001E32C1F5F6010894C11CD11C14911A3289
:10E3400079F4F20122E030E0420E531E4081518107
:10E350003FEF4F3F530714F44FEF5FEFE42EA2CF90
:10E3600040E050E0812F80538A30A0F4CA0133E0AE
:10E37000880F991F3A95E1F7840F951F480F591F91
:10E38000410F511D40535040F6010894C11CD11C4F
:10E390001491E8CF8FEF4F3F580714F44FEF5FEF22
:10E3A000E42E85CF103329F4F4FC7CCF90E2F92AD7
:10E3B00079CF812F81538930D8F440E050E0CA01F1
:10E3C00023E0880F991F2A95E1F7840F951F480FC6
:10E3D000591F410F511D40535040F6010894C11C74
:10E3E000D11C1491812F80538A3048F34CA75FCF02
:10E3F000183619F4A4E0FA2A55CF1C3619F4B1E006
:10E40000FB2A50CF133661F43E010894611C711C45
:10E41000F20122E030E0420E531E808189833CC12C
:10E42000143421F0143611F0193651F5143411F466
:10E4300031E0F32AF0FE0AC0F20144E050E0440E5D
:10E44000551E80809180A280B3800CC0F20182E0D2
:10E4500090E0480E591E808191814C01AA2497FCBE
:10E46000A094BA2CB7FE0AC0B094A0949094809463
:10E47000811C911CA11CB11C8DE289A70AE06FC010
:10E480001F3411F01F3631F41F3411F491E0F92AD2
:10E4900008E064C0103779F4F201A2E0B0E04A0E5F
:10E4A0005B1E808191814C01AA24BB2400E1B0E471
:10E4B000FB2A18E753C01337C1F5F20122E030E020
:10E4C000420E531E608071806114710489F43E0114
:10E4D0000894611C711C88E289838EE6F3018183B4
:10E4E00085E78B838CE68C838D8389E28E831F8204
:10E4F000E7FC13C08E2D992787FD9095AC0160E055
:10E5000070E0C3010E942D76009729F0382E36184E
:10E51000E3140CF0C3C03E2CC1C0F30101900020F5
:10E52000E9F731973E2E3618B9C0153511F0153779
:10E5300031F4153511F4F1E0FF2A0AE00FC0183567
:10E5400019F0183709F0A0C000E1F3FE07C08114EC
:10E550009104A104B10411F020E4F22A19A6EDA659
:10E56000E7FC02C03FEDF32289E2682E712C6C0EAD
:10E570007D1E81149104A104B10421F44DA544230E
:10E5800009F47BC0802F9927AA27BB278EA79FA7B6
:10E59000A8ABB9AB202E332490E0891690E0990601
:10E5A00091E0A90690E0B90648F0C501B4012EA596
:10E5B0003FA548A959A90E94237817C0AFEF8A1632
:10E5C0009104A104B10449F040F0C401B1010E94DA
:10E5D000FC779B014427552708C0882D602F0E9497
:10E5E000F077282F3327442755272AAB3BAB4CAB7A
:10E5F0005DAB0A3059F48AA9880F880F880F9AA951
:10E60000990F890F382D381B832F10C0003139F432
:10E610008AA98295807F482D481B842F07C08AA92C
:10E62000880F880F880F582D581B852F90E02EA536
:10E630003FA548A959A982169306A406B50608F075
:10E6400091E08AA89BA8ACA8BDA88A3010F4805D90
:10E6500004C0895A183509F48F7DD3018E933D018A
:10E66000992309F099CF083041F4F3FE06C08033B6
:10E6700021F080E3FD0182933F01CE010196382E07
:10E680003618F8E23F0E0BC0112309F46CC03E01AE
:10E690000894611C711C1983B1E03B2E19A6032D4F
:10E6A0002DA4231827FC222489A5882311F00F5FAD
:10E6B00002C0F6FC0E5F020DEF2CFF24C701807331
:10E6C0009070892B49F48CA5801B682F2C968EADF9
:10E6D0009FAD2C970E94F47089A5882331F041E00A
:10E6E00050E0BE01675D7F4F0AC0E6FE0EC080E3CA
:10E6F0008AA71BA742E050E0BE01665D7F4F2C96C3
:10E700008EAD9FAD2C970E94C570C701807390702D
:10E71000809749F48CA5801B682F2C968EAD9FADF9
:10E720002C970E940571622D2C968EAD9FAD2C9773
:10E730000E940571832D992787FD9095AC01B30147
:10E740002C968EAD9FAD2C970E94C570E4FE89CDAE
:10E750002CA5201B2CA7622F2C968EAD9FAD2C973D
:10E760000E94F4707ECDE2E1CB5C0C947C782FB7F4
:10E7700040E0F894E0E0F0E081E28093570094916B
:10E78000E2E0F0E0809357003491E4E0F0E0809321
:10E79000570084912FBF9E3199F4363941F4893066
:10E7A00011F441E00DC08A3059F442E009C0373914
:10E7B00039F4863011F443E003C0853009F444E0B5
:10E7C000842F992708959FB7F8948091C900877F77
:10E7D0008093C9008091C9008F7E8093C900809189
:10E7E000C9008F778093C9008091C9008F7B809387
:10E7F000C9008091C9008F7D8093C90052985A9AB0
:10E8000053985B9A9FBF08951F93CF93DF93182F60
:10E810008091B003882309F48DC08091EE01181710
:10E8200009F488C08091AF03882321F40E94B77354
:10E830008093AF038FEF9CE09F938F93C9E6D2E163
:10E84000DF93CF93E091BB03F091BC0309950F9048
:10E850000F900F900F90812F99278230910501F131
:10E86000833091052CF4009761F0019769F024C082
:10E8700084309105D9F084309105ACF00597C9F04A
:10E880001BC08FEE9CE002C08DED9CE09F938F93A8
:10E89000DF93CF93E091BB03F091BC03099518C0BF
:10E8A00084EC9CE0F3CF81EA9CE0F0CF83E99CE02C
:10E8B000EDCF8BE89CE0EACF8CE09DE09F938F93B7
:10E8C000DF93CF93E091BB03F091BC03099510E077
:10E8D0000F900F900F900F908091AF03843011F044
:10E8E000823099F40E94E373812F8150833018F4B1
:10E8F0000E9495671DC0143019F40E94AF6F18C0B4
:10E900001530B1F40E94E66D13C0112389F082E244
:10E910009DE09F938F9389E692E19F938F93E0917F
:10E92000BB03F091BC0309950F900F900F900F90CF
:10E930001093EE01DF91CF911F9108950F931F93D4
:10E9400081E08093B0034091ED01EBE3FCE020E037
:10E9500030E05FE4849199272F5F3F4F829FB001A1
:10E96000839F700D929F700D112446275150319650
:10E9700057FFF0CF4093ED01E3E1FCE020E030E011
:10E9800057E2849199272F5F3F4F829FB001839F69
:10E99000700D929F700D112446275150319657FFEC
:10E9A000F0CF4093ED018091AF03882321F40E94C2
:10E9B000B7738093AF038091ED01833459F088E100
:10E9C00090E029E20FB6F894A895809360000FBEFE
:10E9D0002093600086E191E79093BC038093BB0392
:10E9E0008DE39DE09F938F9309E612E11F930F93B0
:10E9F000E091BB03F091BC0309950F900F900F902D
:10EA00000F9084E690E09F938F9380E590E09F9332
:10EA10008F931F921F92809102016AE00E94F0770B
:10EA2000892F99279F938F93809102010E94F077FD
:10EA300099279F938F9383E69DE09F938F931F93D6
:10EA40000F93E091BB03F091BC0309958BE39CE02D
:10EA50009F938F931F930F93E091BB03F091BC039F
:10EA6000099583E19CE09F938F931F930F93E0910F
:10EA7000BB03F091BC0309958DB79EB746968DBF39
:10EA800087E99DE09F938F931F930F93E091BB03C2
:10EA9000F091BC03099582EC8093810080916F0016
:10EAA000806280936F000F900F900F900F901F91D6
:10EAB0000F9108958091B003882361F08091EE0159
:10EAC000843011F40E9420708091ED01833411F0A4
:10EAD0001092B00308951F920F920FB60F92112457
:10EAE0002F933F934F935F936F937F938F939F9356
:10EAF000AF93BF93EF93FF932091CE009091EE01DF
:10EB0000892F8150833020F4822F0E94A2680BC08D
:10EB1000943021F4822F0E94137005C0953019F4AF
:10EB2000822F0E94526FFF91EF91BF91AF919F9101
:10EB30008F917F916F915F914F913F912F910F90A6
:10EB40000FBE0F901F9018950024222733274427CB
:10EB500051E0BB27EE27FF27A0E1660F771F881F34
:10EB6000991F001C221F331F441F660F771F881F29
:10EB7000991F001C221F331F441F2AF4050E2B1F50
:10EB80003E1F4F1F04C0051A2B0B3E0B4F0B550F9A
:10EB9000BB1FEE1F587F556047FD5250AA95E9F6FE
:10EBA000E695B7955795E695B7955795852F9B2F81
:10EBB00008952227332741E0552768E0880F991FE1
:10EBC000221F331F880F991F221F331F1AF4240F8F
:10EBD000351F02C0241B350B440F551F487F45606D
:10EBE00037FD42506A9551F756954795569547958A
:10EBF000842F0895AA2797FF04C0809590958A1FB7
:10EC00009A1F77FF04C0609570956A1F7A1F669FF0
:10EC10009001779FA001679F300D411D5A1F300D55
:10EC2000411D5A1F889FF001999F2E0F3F1F401DC5
:10EC3000511D899F300D411D5A1F300D411D5A1F16
:10EC4000CA01B901112480CFFB01DC0102C005908B
:10EC50000D9241505040D8F70895FC01415050406A
:10EC600030F001900616D1F73197CF01089588272B
:10EC700099270895A0E0B0E0E0E4F6E70C94687806
:10EC80006C017B01EA01590121978FEFCF3FD80733
:10EC900089F086010894C11CD11CC7010894E11CAD
:10ECA000F11CF5010995F80180832197FFEFCF3F13
:10ECB000DF0779F7EAE0CDB7DEB70C948478CF921E
:10ECC000DF92EF92FF920F931F937C016B01FB0188
:10ECD0000995082FC7010196F6010995182FC8015B
:10ECE0001F910F91FF90EF90DF90CF900895A0E0DB
:10ECF000B0E0EDE7F6E70C946A788C017B01EA015D
:10ED0000690121978FEFCF3FD80771F0F70121916B
:10ED10007F01C8010F5F1F4F622FF60109952197F0
:10ED2000FFEFCF3FDF0791F7E8E0CDB7DEB70C94F8
:10ED30008678CF92DF92EF92FF920F931F936C0130
:10ED40008B017A01FA010995812F9927682FC60155
:10ED50000196F70109951F910F91FF90EF90DF90B9
:10ED6000CF9008955058BB27AA270ED0E0C0D1D02D
:10ED700030F0D6D020F031F49F3F11F41EF4C6C01D
:10ED80000EF4E095E7FBBCC0E92FE2D080F3BA17A0
:10ED9000620773078407950718F071F49EF5FAC0AF
:10EDA0000EF4E0950B2EBA2FA02D0B01B9019001A6
:10EDB0000C01CA01A0011124FF27591B99F0593FEA
:10EDC00050F4503E68F11A16F040A22F232F342F32
:10EDD0004427585FF3CF469537952795A795F04080
:10EDE0005395C9F77EF41F16BA0B620B730B840B95
:10EDF000BAF09150A1F0FF0FBB1F661F771F881F4D
:10EE0000C2F70EC0BA0F621F731F841F48F48795A4
:10EE100077956795B795F7959E3F08F0B3CF939593
:10EE2000880F08F09927EE0F97958795089598D049
:10EE300088F09F5790F0B92F9927B751A0F0D1F0E3
:10EE4000660F771F881F991F1AF0BA95C9F712C06D
:10EE5000B13081F09FD0B1E008959CC0672F782F2A
:10EE60008827B85F39F0B93FCCF3869577956795D9
:10EE7000B395D9F73EF490958095709561957F4F45
:10EE80008F4F9F4F0895E89409C097FB3EF49095EB
:10EE90008095709561957F4F8F4F9F4F9923A9F073
:10EEA000F92F96E9BB279395F69587957795679502
:10EEB000B795F111F8CFFAF4BB0F11F460FF1BC046
:10EEC0006F5F7F4F8F4F9F4F16C0882311F096E9D9
:10EED00011C0772321F09EE8872F762F05C0662387
:10EEE00071F096E8862F70E060E02AF09A95660F40
:10EEF000771F881FDAF7880F9695879597F90895F9
:10EF000097F99F6780E870E060E008959FEF80ECDC
:10EF1000089500240A94161617061806090608957F
:10EF200000240A9412161306140605060895092EE5
:10EF30000394000C11F4882352F0BB0F40F4BF2B54
:10EF400011F460FF04C06F5F7F4F8F4F9F4F089594
:10EF500057FD9058440F551F59F05F3F71F047958A
:10EF6000880F97FB991F61F09F3F79F0879508956F
:10EF7000121613061406551FF2CF4695F1DF08C08E
:10EF8000161617061806991FF1CF869571056105AB
:10EF900008940895E894BB2766277727CB0197F953
:10EFA0000895629FD001739FF001829FE00DF11DD3
:10EFB000649FE00DF11D929FF00D839FF00D749FF3
:10EFC000F00D659FF00D9927729FB00DE11DF91F9F
:10EFD000639FB00DE11DF91FBD01CF0111240895FC
:10EFE000991B79E004C0991F961708F0961B881F9B
:10EFF0007A95C9F780950895AA1BBB1B51E107C0FC
:10F00000AA1FBB1FA617B70710F0A61BB70B881FB8
:10F01000991F5A95A9F780959095BC01CD01089547
:10F0200097FB092E07260AD077FD04D0E5DF06D02E
:10F0300000201AF4709561957F4F0895F6F790952A
:10F0400081959F4F0895A1E21A2EAA1BBB1BFD01BB
:10F050000DC0AA1FBB1FEE1FFF1FA217B307E407B7
:10F06000F50720F0A21BB30BE40BF50B661F771F0F
:10F07000881F991F1A9469F76095709580959095EF
:10F080009B01AC01BD01CF01089597FB092E052618
:10F090000ED057FD04D0D7DF0AD0001C38F45095AD
:10F0A0004095309521953F4F4F4F5F4F0895F6F7AC
:10F0B00090958095709561957F4F8F4F9F4F0895E4
:10F0C0002F923F924F925F926F927F928F929F9278
:10F0D000AF92BF92CF92DF92EF92FF920F931F9366
:10F0E000CF93DF93CDB7DEB7CA1BDB0B0FB6F89417
:10F0F000DEBF0FBECDBF09942A88398848885F8457
:10F100006E847D848C849B84AA84B984C884DF80C7
:10F11000EE80FD800C811B81AA81B981CE0FD11DAB
:10F120000FB6F894DEBF0FBECDBFED010895EE0F10
:0CF13000FF1F0590F491E02D0994FFCF23
:10F13C005E010A010164FF01FFFF01FC01FC0101FA
:10F14C00737373FF03007D0000C409C409640011CC
:10F15C0048656C6C6F20576F726C64000000000087
:10F16C000000000000000000000000000000000093
:10F17C000000000000000000000000000000000083
:10F18C000000000000000000000000000000000073
:10F19C000000000000000000000000000000000063
:10F1AC0053706F727400004E6F726D616C00004290
:10F1BC006567696E6E6572000051756164726F00EF
:10F1CC0000640001200B050000ECFF6440415A462E
:10F1DC0064640A02969696960840403A10FB3038C2
:10F1EC000190D0030090D00300F4017800FF036479
:10F1FC0000020406070808080706040200FEFCFAD1
:10F20C00F9F8F8F8F9FAFCFE000204060708080BF6
:10F21C000A0D0B0C0E0B0F10FA2001010170FF01EF
:02F22C000F00D1
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/Flight-Ctrl_MEGA644_V0_80d_SVN1749.hex
0,0 → 1,3902
:100000000C94E3060C9427070C9427070C942707FD
:100010000C9427070C9427070C9427070C942707A8
:100020000C9427070C941F170C9427070C94270790
:100030000C9414350C9427070C9427070C9427076D
:100040000C9427070C9427070C9487150C9427070A
:100050000C94570C0C9427070C94210C0C94270734
:100060000C947C1C0C9427070C94B8300C94270734
:100070000C9469770C9427070C946572A71CAC1C30
:10008000B11CBA1CD11CE81CF81C081D251D111F31
:10009000E81CD31DE41D131E311E4E1EA81E031F97
:1000A000E12073213022B0221923C923D42531261F
:1000B0009E26E82633278027D1272B288A28242923
:1000C000BF29B92AE03007314A31BA31D23113326F
:1000D000C632863386338633863386338633863319
:1000E00086338633863386333D333F3344335C3344
:1000F0005E330A0D426174743A0020256420436522
:100100006C6C732000204C6F77207761726E696E83
:1001100067206C6576656C3A2025642E2564000A9C
:100120000D466F756E6420424C2D4374726C3A20FC
:10013000002564000A0D0A0D2121204D4953534921
:100140004E4720424C2D4354524C3A2025642021E6
:1001500021000A0D3D3D3D3D3D3D3D3D3D3D3D3D8B
:100160003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DBF
:100170003D3D3D3D3D3D3D000A0D43616C69627270
:100180006174696E67207072657373757265207330
:10019000656E736F722E2E004F4B0A0D000A0D46CE
:1001A0006C696768742D74696D65202575206D69AB
:1001B0006E2020546F74616C3A2575206D696E0055
:1001C0000A0D436F6E74726F6C3A2000486561646B
:1001D000696E67486F6C64004E6F726D616C2028A9
:1001E0004143432D4D6F646529000A0D3D3D3D3D62
:1001F0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D2F
:100200003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0A51
:100210000D00416E676C654E69636B2020202020C5
:100220002020416E676C65526F6C6C20202020206E
:1002300020204163634E69636B2020202020202012
:100240002020416363526F6C6C20202020202020EE
:1002500020205961774779726F20202020202020AC
:1002600020204865696768742056616C7565202098
:1002700020204163635A202020202020202020209D
:1002800020204761732020202020202020202020B3
:100290002020436F6D706173732056616C7565200B
:1002A0002020566F6C74616765205B302E31565D7F
:1002B00020205265636569766572204C6576656CB1
:1002C00020204779726F20436F6D70617373202017
:1002D00020204D6F746F722031202020202020209C
:1002E00020204D6F746F722032202020202020208B
:1002F00020204D6F746F722033202020202020207A
:1003000020204D6F746F7220342020202020202068
:1003100020203136202020202020202020202020B6
:1003200020203137202020202020202020202020A5
:100330002020313820202020202020202020202094
:100340002020313920202020202020202020202083
:100350002020536572766F2020202020202020202E
:100360002020486F7665726761732020202020204E
:10037000202043757272656E74205B302E31415DB2
:1003800020204361706163697479205B6D41685D11
:100390002020323420202020202020202020202037
:1003A0002020323520202020202020202020202026
:1003B0002020323620202020202020202020202015
:1003C0002020323720202020202020202020202004
:1003D00020204932432D4572726F72202020202048
:1003E0002020424C204C696D697420202020202060
:1003F00020204750535F4E69636B2020202020202F
:1004000020204750535F526F6C6C2020202020200A
:10041000202021212120494E434F4D504154494233
:100420004C4520212121002E000A0D20444143206B
:100430006F7220493243204552524F522120436867
:1004400065636B204932432C2033567265662C203D
:1004500044414320616E6420424C2D4374726C0011
:100460005B25695D005B25695D002B204D696B7222
:100470006F4B6F70746572202B0048573A56256495
:100480002E25642053573A25642E256425632D417B
:1004900072746875722D500053657474696E673A92
:1004A0002564202573004861726477617265204578
:1004B00072726F7220313A2564202121004D6973D8
:1004C00073696E6720424C2D4374726C3A25642127
:1004D00021004D69786572204572726F7221004962
:1004E0003243204552524F5221212100486569670D
:1004F00068743A202025356900536574706F696E01
:10050000743A2535690050726573737572653A25C2
:100510003569004F66667365743A20202535690099
:1005200048656967687420636F6E74726F6C00440D
:10053000495341424C4544004865696768742063EB
:100540006F6E74726F6C0044495341424C454400D5
:100550006163742E2062656172696E67004E696323
:100560006B3A20202020202025356900526F6C6CCA
:100570003A20202020202025356900436F6D7061CE
:1005800073733A202020253569004B313A253469B0
:1005900020204B323A25346920004B333A25346908
:1005A00020204B343A25346920004B353A253469F4
:1005B00020204B363A25346920004B373A253469E0
:1005C00020204B383A25346920004E693A25346999
:1005D0002020526F3A253469200047733A25346948
:1005E000202047693A253469200050313A25346982
:1005F000202050323A253469200050333A2534699E
:10060000202050343A25346920004779726F202D1C
:100610002053656E736F72004E69636B25346920D9
:10062000282533692E25692900526F6C6C253469A1
:1006300020282533692E25692900476965722534EC
:1006400069202825336929004E69636B20253469A8
:1006500020282533692E25782900526F6C6C2025BF
:10066000346920282533692E25782900596177209F
:1006700020253469202825336929004E69636B20C1
:100680002534692028253369292825336929005212
:100690006F6C6C202534692028253369292825337F
:1006A000692900596177202025346920282533697C
:1006B00029282533692900414343202D2053656EA5
:1006C000736F72004E69636B2025346920282533CF
:1006D000692900526F6C6C20253469202825336904
:1006E00029005A2020202025346920282533692913
:1006F00000566F6C746167653A2020202533692E9F
:10070000253169560043757272656E743A20202057
:100710002533692E2531694100506F7765723A2083
:100720002020202025346957004469736368617272
:1007300067653A202535696D4168005265636569D2
:100740007665720052432D525353493A202020209F
:100750002534690052432D5175616C6974793A20D2
:100760002534690052432D4368616E6E656C733A9F
:1007700025346900436F6D7061737300486561646F
:10078000696E673A20202535690056616C75653AB7
:10079000202020202535690053746172743A20208E
:1007A000202025356900506F7469313A20202533A7
:1007B0006900506F7469323A202025336900506F08
:1007C0007469333A202025336900506F7469343AD4
:1007D000202025336900506F7469353A2020253375
:1007E0006900506F7469363A202025336900506FD4
:1007F0007469373A202025336900506F7469383A9C
:10080000202025336900536572766F2020005365E0
:1008100074706F696E74202025336900506F73699E
:1008200074696F6E3A202533690052616E67653ACC
:100830002533692D2533690045787465726E436FE1
:100840006E74726F6C2020004E693A253469202046
:10085000526F3A253469200047733A2534692020C5
:1008600047693A253469200048693A2534692020CF
:1008700043663A2534692000424C2D4374726C2043
:100880004572726F72732000253364202533642013
:100890002533642025336420002533642025336408
:1008A000202533642025336420002533642025333C
:1008B0006420253364202533642000424C20546595
:1008C0006D7065726174757265002533692025331A
:1008D00069202533692025336920002533692025C7
:1008E00033692025336920253369200025336920A9
:1008F00025336920253369202533692000424C2D9A
:100900004374726C20666F756E642000202563202E
:10091000202025632020202563202020256320001F
:1009200020256320202025632020202563202020EF
:10093000256320002025632020202D2020202D202D
:1009400020202D2000313000313100313200466C42
:10095000696768742D54696D65202000546F746157
:100960006C3A2535756D696E004163743A20202517
:1009700035756D696E0028726573657429000A0DFE
:1009800047656E65726174696E672064656661753E
:100990006C7420506172616D65746572205365746A
:1009A000202564000A0D5573696E672050617261DD
:1009B0006D6574657220536574202564000A0D47C7
:1009C000656E65726174696E672064656661756CD9
:1009D00074204D69786572205461626C65000A0D5F
:1009E0004D697865722D436F6E6669673A202725D9
:1009F000732720282575204D6F746F727329000AA4
:100A00000D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D46
:100A10003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D0043
:100A20000A0D414343206E6F742063616C696272EA
:100A300061746564210D0A000A0D506C656173656F
:100A400020636F6E6E656374205370656B7472758E
:100A50006D20726563656976657220666F722062CB
:100A6000696E64696E67204E4F572E2E2E006F6B95
:100A70002E0A0D0054696D656F75742E0A0D000005
:100A8000008F001E01AD013B02CA025803E6037449
:100A90000402058F051B06A7063307BE074808D2C8
:100AA000085B09E3096B0AF20A780BFD0B810C0461
:100AB0000D860D070E870E060F840F00107B10F5B4
:100AC000106E11E5115B12CF124213B3132314926F
:100AD00014FE146A15D3153B16A11605176717C81F
:100AE0001727188318DE1837198E19E319361A8755
:100AF0001AD61A231B6E1BB61BFD1B411C831CC37D
:100B00001C001D3C1D751DAB1DE01D121E421E6FFD
:100B10001E9A1EC31EE91E0D1F2E1F4D1F691F8426
:100B20001F9B1FB01FC31FD31FE11FEC1FF51FFB2F
:100B30001FFF1F002003010000BD6B00020101B078
:100B40006C01030202446D02000303A16D253269AA
:100B50002E25316956002533642563202530336402
:100B60006D00537461747573004552524F523A20B0
:100B700025326400253469202532693A25303269EE
:100B8000002534696D2563002533692025336920EC
:100B900025336920253369002533692025336920F1
:100BA000253369202533690054656D706572617461
:100BB00075726573202020200025634320202020AB
:100BC00020002532692E2531695620202533692ED3
:100BD000253169410025346957202536696D416802
:100BE000002532756D2F73205361743A25642000FF
:100BF00020203344004E6F4678004447505300484D
:100C00006F6D653A2533646D202533642563004E8E
:100C10006F204E6176694374726C21000A0D7777FC
:100C2000772E4D696B726F4B6F707465722E6465B1
:100C30002028632920486953797374656D732047B0
:100C40006D6248000A0D74686520757365206F66D3
:100C5000207468697320736F6674776172652069A8
:100C600073206F6E6C79207065726D697474656441
:100C7000200A0D6F6E206F726967696E616C204D7E
:100C8000696B726F4B6F707465722D486172647717
:100C9000617265004143542044534C004A657469B5
:100CA00020736174656C6C6974005370656B747249
:100CB000756D20736174656C6C697420284C6F7756
:100CC000207265736F6C7574696F6E29005370655F
:100CD0006B7472756D20736174656C6C6974202817
:100CE0003230343829005370656B7472756D20731F
:100CF0006174656C6C6974004D756C7469736967B7
:100D00006E616C2050504D000A0D52656365697626
:100D100065723A2000756E6B6E6F776E2E2055737C
:100D2000696E672050504D2E2E2E006E6F7420730A
:100D30007570706F72746564206279206861726486
:100D40007761726521000A0D3D3D3D3D3D3D3D3DD4
:100D50003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3DC3
:100D60003D3D3D3D3D3D3D3D3D3D3D000A0D466C1B
:100D700069676874436F6E74726F6C0A0D486172B4
:100D800064776172653A25642E25640A0D536F6697
:100D900074776172653A5625642E256425632000B8
:100DA0000A0D3D3D3D3D3D3D3D3D3D3D3D3D3D3DD6
:100DB0003D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D63
:100DC0003D3D3D3D3D0011241FBECFEFD0E1DEBFD4
:100DD000CDBF11E0A0E0B1E0E0EDF2EF02C0059080
:100DE0000D92A43FB107D9F718E0A4EFB1E001C01C
:100DF0001D92A23AB107E1F76AEAE2E0F0E081E28F
:100E0000809357007491AE014F5F5F4F20EF37EF33
:100E1000DA019FE0F9012F5F3F4F84918D9391504C
:100E200097FFF8CF773911F40000FECFFA019EE06A
:100E3000819168276095915097FFFACF888968174C
:100E400021F0773911F40000FECF0C94E8070C94E0
:100E5000000080910A06E82FFF27EE0FFF1FEF5CCE
:100E6000F84F808191818D5E9F4F14F010920301A5
:100E7000808191818A5B9F4FCCF48091030188230C
:100E8000A9F481E080930301809161048F5F8093D6
:100E90006104853038F088EE93E0909324028093CB
:100EA000230204C066E970E00E947E3880916104EC
:100EB00099279093DB058093DA0508951F93CF93CC
:100EC000DF93182F882389F082EF90E09F938F9310
:100ED0008BE692E19F938F93E0912D04F0912E0485
:100EE00009950F900F900F900F9080912D068233EF
:100EF00008F044C084EF91E00E948E16EC011123AB
:100F000029F0CE010E9497168823D9F3C2E0D0E0E1
:100F100026E530E080911F01909120018217930710
:100F200030F02196255D3F4FC730D10598F3809171
:100F30002D069927C89F9001C99F300DD89F300D6D
:100F40001124209300011123D9F068EC70E08C2F5C
:100F50000E947E38DF93CF938AEF90E09F938F9328
:100F60008BE692E19F938F93E0912D04F0912E04F4
:100F700009958DB79EB706968DBF02C0809300017C
:100F8000112311F1809100016AE00E949378892F6A
:100F900099279F938F93809100010E9493789927BE
:100FA0009F938F9385E091E09F938F938BE692E1DF
:100FB0009F938F93E0912D04F0912E0409952DB706
:100FC0003EB7285F3F4F2DBFDF91CF911F9108950E
:100FD000CFEFD0E1DEBFCDBF8824992414B815B877
:100FE00007EE13E00253104017FFFCCF189B06C01A
:100FF000199B02C08DE007C08BE005C0199B02C0A1
:1010000084E101C08AE08093020181E887B93E9AB9
:101010008FEF88B98BE184B981E085B98EE38AB915
:1010200087E48BB9469A84B7877F84BF809160003C
:101030008861809360001092600084EC99E0909346
:1010400024028093230210921C0310921B0310921F
:1010500036071092350710921E0310921D0310924E
:10106000200310921F0320910201243128F084EC08
:1010700094E0A0E0B0E004C08BE095E0A0E0B0E038
:101080008093970190939801A0939901B0939A014E
:101090002A3011F0243110F0289801C0289A0E94BB
:1010A00008170E94C8160E9473120E94F8340E940A
:1010B000351B0E946F300E94C8630E94906E0E9490
:1010C0009C76809102018C3010F4299A01C02998F5
:1010D00078940E948E2F80917102826080937102B9
:1010E000109273020E94E64384EF91E00E948E16F4
:1010F0008C018091710280FD05C0C8010E94971685
:101100008823B9F38FE191E09F938F93BBE6AB2ED9
:10111000B2E1BB2EBF92AF92E0912D04F0912E046C
:10112000099580EA9FE00E948E168C01C0E0D0E015
:101130000F900F900F900F90A3EDEA2EA6E0FA2EDD
:10114000F7E8CF2EF6E0DF2E0E94E6438091710291
:1011500080FD05C0C8010E9497168823B9F3F601E7
:1011600080811816ACF40BC00E94E6438091710296
:1011700080FD05C0C8010E9497168823B9F3C801F5
:101180000E949716882321F4F7018081882364F751
:10119000F701808187FF18C02196DF93CF932197B5
:1011A00081E391E09F938F93BF92AF92E0912D04E2
:1011B000F0912E0409958091F4018F5F8093F401E2
:1011C0008DB79EB706968DBF2196E4E0F0E0CE0E77
:1011D000DF1E88E090E0E80EF91ECC30D10508F45F
:1011E000B3CFC0E0D0E000ED16E0E7E8EE2EE6E099
:1011F000FE2EF801838187FD1CC0F701808118163F
:10120000C4F42196DF93CF93219784E391E09F93D9
:101210008F938BE692E19F938F93E0912D04F09151
:101220002E04099582E0809321028DB79EB7069621
:101230008DBFF801838180788383219684E090E0DC
:10124000E80EF91E085F1F4FCC30D10590F282E501
:1012500091E09F938F93CBE6D2E1DF93CF93E09120
:101260002D04F0912E040995909108068091F401C7
:101270000F900F900F900F90981728F480914704CB
:1012800080618093470488E791E09F938F93DF9379
:10129000CF93E0912D04F0912E04099588EE93E010
:1012A0000E948E168C010E943B1B0F900F900F9096
:1012B0000F90C8010E9497168823D9F388E991E01E
:1012C0009F938F93DF93CF93E0912D04F0912E04A1
:1012D000099580E00E944039809102010F900F90A3
:1012E0000F900F908A3011F0843110F0289801C0CF
:1012F000289A80ED97E0909324028093230285E55D
:10130000809363048EE090E00E945D2E9927182F51
:1013100000278FE090E00E945D2E080F111D1093B2
:10132000FA010093F9018AE090E00E945D2E99276E
:10133000182F00278BE090E00E945D2E080F111DF2
:101340001093F8010093F7010F5F1F4F39F0809160
:10135000F9019091FA018F5F9F4F41F41092FA01C9
:101360001092F9011092F8011092F7018091F701A3
:101370009091F8019F938F938091F9019091FA01D8
:101380009F938F938DE991E09F938F93DF93CF93FA
:10139000E0912D04F0912E0409958DB79EB7089623
:1013A0008DBF80EC91E09F938F93DF93CF93E0917B
:1013B0002D04F0912E040995809116060F900F9040
:1013C0000F900F90E0912D04F0912E0482FF07C042
:1013D0008CEC91E09F938F93DF93CF9308C088EDBF
:1013E00091E09F938F938BE692E19F938F93099562
:1013F0000F900F900F900F900E94582088E893E173
:10140000909394018093930181E0809362040E9401
:101410005E07809130060E9402768AEE91E09F93EB
:101420008F93DF93CF93E0912D04F0912E040995D3
:1014300080ED97E00E948E168C018AEF90E00E946A
:101440008E16EC0183E08093B2050F900F900F9001
:101450000F90CE010E949716882339F084E690E021
:101460000E948E16EC010E945877809127028823F3
:1014700009F4DFC180911101882309F4DAC11092C7
:10148000270280916104882319F00E94290702C075
:101490000E947A460E94E643209102012A3011F010
:1014A000243110F0289801C0289A8091210390914E
:1014B0004704882339F080912103815080932103D0
:1014C000977F0AC080916F00806280936F001092B6
:1014D00032071092310798609093470480919301EE
:1014E000909194010197909394018093930180913E
:1014F000930190919401892B29F0809172028823A5
:1015000009F43EC08091930190919401892B01F5DB
:101510000E94953085E090E0909394018093930130
:101520008091EC059091ED0501969093ED058093E7
:10153000EC058091ED0280688093ED028091470474
:101540008160809347048091B30582608093B305E6
:1015500080910801909109018F5F9F4F19F580914B
:1015600018038823F9F080E197E290932402809396
:10157000230280E890E0909309018093080112C053
:101580002A3011F0243110F0289801C0289A809157
:10159000230290912402892B29F48091ED028F7708
:1015A0008093ED0280912702882309F042C10E94B6
:1015B000B7120E94950EC8010E949716882309F45D
:1015C00034C10C5E1F4F80917202909147048823B2
:1015D00039F09260909347048091B30582600CC00B
:1015E0009D7F909347048091930190919401079778
:1015F00028F08091B3058D7F8093B305809193018E
:1016000090919401079728F0809147048E7F8093F2
:10161000470480910501882321F0815080930501C2
:1016200025C080936D041092F9021092F802109276
:10163000F7021092F6021092F5021092F4028091D5
:101640000801909109018F5F9F4F81F480912103E0
:10165000882361F488E99AE390932402809323021B
:1016600080E09CE090930901809308018091EA0159
:10167000893C70F081508093EA018091ED028F7B6C
:101680008093ED02809147048B7F8093470435C09F
:1016900080910F08882309F18091ED028064809386
:1016A000ED02809147048460809347048091080193
:1016B000909109018F5F9F4F81F4809118038823D7
:1016C00061F088E99AE3909324028093230280E0FA
:1016D00098EA90930901809308011092FF031092F9
:1016E000FE031092FD031092FC038FEF9FEF909387
:1016F0003D0880933C081092EA0180910001282F58
:10170000332780911F019091200182179307CCF419
:101710008091ED0280628093ED02809108019091AA
:1017200009018F5F9F4FC1F480E797E190932402F6
:101730008093230280E093E0909309018093080155
:101740000BC08091230290912402892B29F480916F
:10175000ED028F7D8093ED020E94C66784E0809346
:10176000220280911803882329F45AEA852E55E035
:10177000952E12C08091FB018F5F8093FB01813316
:1017800059F41092FB018091F5019091F6010196B8
:101790009093F6018093F5010894811C911CF2E767
:1017A0008F16FBE09F0609F040C088249924209101
:1017B000F9013091FA012F5F3F4F3093FA012093E6
:1017C000F9018091F7019091F80101969093F80149
:1017D0008093F701832F9927682F8EE090E00E9475
:1017E000632E8091F9019091FA019070682F8FE03B
:1017F00090E00E94632E8091F7019091F801892F6B
:101800009927682F8AE090E00E94632E8091F7016B
:101810009091F8019070682F8BE090E00E94632E09
:1018200084E190E00E948E168C010E9416680E944E
:10183000A76E80912202882309F00BCE0E94E963F3
:1018400008CE1F920F920FB60F9211248F939F9381
:10185000EF93FF93809107018823E1F480911502B3
:101860009091160201969093160280931502FC0146
:10187000EE5EFA4FE081ED3019F0803A910539F4CF
:10188000109216021092150281E080930701E093F6
:10189000C60004C01092160210921502FF91EF913B
:1018A0009F918F910F900FBE0F901F9018951F92D0
:1018B0000F920FB60F9211242F933F934F935F9384
:1018C0006F937F938F939F93AF93BF93CF93EF9338
:1018D000FF9390E08091C60080930D0250911B020F
:1018E000503A10F090931C0280910D028D3009F057
:1018F00065C080911C02823009F060C090931C0288
:10190000852F992780599B4FFC0132974081209168
:10191000170230911802241B3109DC0111978C91B8
:10192000281B3109C9019F709093180280931702F8
:1019300046E0969587954A95E1F7982F935C9093AA
:1019400019022F733070235C20931A02808198173C
:1019500029F48C91281711F491E006C090E0809151
:101960000A028F5F80930A02C0910C02CC2309F017
:1019700074C0992309F471C081E080930C02580F60
:10198000509309025150E52FFF27E059FB4F8DE09E
:10199000808380917204823509F05FC00E945820D4
:1019A00088E190E02CE00FB6F894A8958093600051
:1019B0000FBE20936000C09321024FC020911C02F3
:1019C000822F992781309105F9F0823091051CF41E
:1019D000892B21F040C0029711F13DC080910D028A
:1019E000833239F480910C02882319F481E08093CA
:1019F0001C0280910D028093700481E080931B0291
:101A000080910D02992722C02F5F20931C02E52FA1
:101A1000FF27E059FB4F80910D02808309C0E52F1D
:101A2000FF27E059FB4F80910D028083503A20F44C
:101A30005F5F50931B0202C010921C0220910D02A6
:101A40008091170290911802820F911D90931802B5
:101A50008093170202C010921C02FF91EF91CF9168
:101A6000BF91AF919F918F917F916F915F914F91B6
:101A70003F912F910F900FBE0F901F901895AC01C2
:101A8000A0E0B0E09D01A817B90748F4E2E1F5E055
:101A90008191280F311D1196A417B507C8F33F7027
:101AA000FD01EE5EFA4FC90156E0969587955A956D
:101AB000E1F7835C80831196FD01EE5EFA4F2F7390
:101AC0003070822F835C8083AD5EBA4F8DE08C9343
:101AD00010920701809112058093C6000895A0E03E
:101AE000B0E0E5E7FDE00C940C792C859D850E8532
:101AF000BB2483E2809312059F5990931305209392
:101B0000140533E0E32EF12C002309F49EC0CF84AA
:101B1000D888BE016D5E7F4FA989BA8901501097A0
:101B200009F493C01097B9F0F601EB0DF11DB394D1
:101B30009081119791F4002349F1FB016E5F7F4F73
:101B4000DB01C080D1806E5F7F4F0D90BC91A02DD6
:101B5000BB24015002C090E019C01097B9F0F60103
:101B6000EB0DF11DB3944081119791F4002341F1E5
:101B7000FB016E5F7F4FDB01C080D1806E5F7F4FC6
:101B80000D90BC91A02DBB24015002C040E018C0B4
:101B90001097B1F0F601EB0DF11DB3941081119780
:101BA00081F4002371F0FB013296DB01CD90DC90D3
:101BB000BF016E5F7F4FA081B181BB24015001C086
:101BC00010E0F701EE5EFA4F892F86958695835CCB
:101BD00080830894E11CF11CF701EE5EFA4F892F17
:101BE00099278370907024E0880F991F2A95E1F758
:101BF00055279A0194E0369527959A95E1F7822B1F
:101C0000835C80830894E11CF11CF701EE5EFA4FBF
:101C10004F705070440F551F440F551F812F992747
:101C200026E0969587952A95E1F7842B835C80833F
:101C30000894E11CF11CF701EE5EFA4F1F73135C70
:101C400010830894E11CF11C6ACFC7010E943F0D6C
:101C5000E9E00C942879A3E07A2F409109024650DC
:101C6000442309F458C0E72FFF27E059FB4F808138
:101C70008D537F5FE72FFF27E059FB4F20812D53C6
:101C80007F5FE72FFF27E059FB4F30813D537F5F98
:101C9000E72FFF27E059FB4F60816D537F5F992746
:101CA000880F991F880F991F522F52955F70582BDC
:101CB000822F99278F709070F4E0880F991FFA9502
:101CC000E1F7232F26952695282B832F99278370BC
:101CD0009070E6E0880F991FEA95E1F7682B415074
:101CE0004F3FC9F0EA2FFF27E059FB4F5083AF5F0A
:101CF00041504F3F81F0EA2FFF27E059FB4F2083EF
:101D0000AF5F41504F3F39F0EA2FFF27E059FB4FBB
:101D10006083AF5FA5CF83E794E090930802809340
:101D20000702A350A09306020895A2E0B0E0EBE9F9
:101D3000FEE00C94127980910C02882309F4C7C349
:101D40000E942B0E80917104823609F081C280912D
:101D5000720499278137910509F4C0C08237910533
:101D6000C4F48D36910509F482C08E36910544F491
:101D70008B34910531F18636910509F454C168C25E
:101D80008E36910509F45BC08037910509F49FC038
:101D90005FC28537910509F4E2C18637910544F4A5
:101DA0008337910509F4DCC08437910539F150C2BD
:101DB0008737910509F410C28937910509F46AC182
:101DC00047C2E0910702F0910802808191819093CF
:101DD0003403809333032091310330913203821B0B
:101DE000930B845E9D4F68E671E00E94B378845B3C
:101DF00090409093300380932F032AC28091090270
:101E0000A0910702B0910802853140F080E1EBE437
:101E1000F4E00D9001928A95E1F70DC08D919D91AE
:101E20000D90BC91A02D80934B0490934C04A093F3
:101E30004D04B0934E0480EF809304024BC0809118
:101E400007018823E1F38DE490E09F938F938AE765
:101E500096E09F938F9381E08F938F938EE48F937F
:101E60000E946F0D8DB79EB707968DBFF1C1A091EF
:101E70000702B09108021C91113081F48DE4EAE769
:101E8000F6E00D9001928A95E1F70E941A2F1983CE
:101E9000809147048F7E8093470401C0198280910E
:101EA00007018823E1F381E090E09F938F93CE01B7
:101EB00001969F938F9381E08F938F938DE48F93FF
:101EC0000E946F0DADB7BEB71796ADBFC1C181E01F
:101ED00080930F028FEF80930501BAC1E091070252
:101EE000F091080280818F3F39F40E947F2FE091AA
:101EF0000702F09108028083E0910702F091080246
:101F00008081882311F481E003C0863010F085E0E1
:101F10008083E0910702F091080280810E94722E76
:101F2000E0910702F0910802808189838091070186
:101F30008823E1F380E790E09F938F9389E096E018
:101F40009F938F9381E090E09F938F93CE010196B2
:101F50009F938F9382E08F9381E08F9381E571C18E
:101F60002091070230910802D9018C91815085306F
:101F700008F040C0F90181818435E1F52F5F3F4FC2
:101F800080E7E9E0F6E0D9010D9001928A95E1F74A
:101F9000F90182910E94B62E809148069927AA27BE
:101FA000BB27BC01CD0124EC39E040E050E00E94A9
:101FB0007478DC01CB018093B7019093B801A093B2
:101FC000B901B093BA01809149069927AA27BB2786
:101FD000BC01CD010E947478DC01CB018093B30178
:101FE0009093B401A093B501B093B6010E947F2FE6
:101FF000898301C01982809107018823E1F381E080
:1020000090E09F938F93CE0101969F938F9381E0F1
:102010008F938F9383E58F930E946F0D8DB79EB73B
:1020200007968DBF26C0E0910702F0910802E0817B
:102030008E2F8150853018F48E2F0E94722E0E94B0
:102040007F2F8983809107018823E1F381E090E06D
:102050009F938F93CE0101969F938F9381E08F93EF
:102060008F9386E48F930E946F0DADB7BEB717961E
:10207000ADBF80911803882329F46EE670E0898152
:102080000E947E3880E00E945E07809130060E94A8
:102090000276DEC0E0910702F09108028081992764
:1020A00087FD909590934C0780934B0781819927EA
:1020B00087FD909590934E0780934D0782819927D5
:1020C00087FD90959093500780934F0783819927C0
:1020D00087FD9095909352078093510784819927AB
:1020E00087FD909590935407809353078581992796
:1020F00087FD909590935607809355078681992781
:1021000087FD90959093580780935707878199276B
:1021100087FD909590935A0780935907808599275A
:1021200087FD909590935C0780935B078185992745
:1021300087FD909590935E0780935D078285992730
:1021400087FD90959093600780935F07838599271B
:1021500087FD9095909362078093610779C0E09125
:102160000702F091080280810E9451348A838823FB
:1021700019F481E0898301C01982809107018823C5
:10218000E1F388E090E09F938F9388EC96E09F9333
:102190008F9321E030E03F932F938091070290913D
:1021A00008029F938F933F932F93CE0102969F93A4
:1021B0008F933F932F93CE01820F931F9F938F9303
:1021C00084E08F9381E08F9385E58F930E946F0D5C
:1021D000EDB7FEB773963BC0809106028930C0F11F
:1021E00020910702309108022F5F3F4F88E0A8EC52
:1021F000B6E0F90101900D928A95E1F7D9018E912F
:102200000E94A7338A83882319F481E0898301C05F
:102210001982809107018823E1F321E030E03F93A8
:102220002F93CE0102969F938F933F932F93CE01CE
:10223000820F931F9F938F9382E08F9381E08F9300
:1022400087E58F930E946F0DEDB7FEB73B96EDBF0C
:102250008091720499278436910509F4CDC08536A2
:102260009105ACF48136910509F481C0823691055F
:102270002CF48B34910509F45DC021C1823691059F
:1022800009F482C08336910509F491C018C18C36D7
:10229000910509F4FFC08D3691054CF48736910500
:1022A00009F40AC18836910509F4C4C008C184370D
:1022B000910529F08637910509F4FAC000C1809193
:1022C0000902A0910702B0910802803140F080E13C
:1022D000EBE4F4E00D9001928A95E1F70DC08D9149
:1022E0009D910D90BC91A02D80934B0490934C0434
:1022F000A0934D04B0934E04809107018823E1F32D
:102300001F92809104018F9384E58F930E946F0D3B
:102310008AEF809304028FEF8093050180EA9FE0AB
:102320000E948E169093FD018093FC010F900F90F8
:102330000F90C5C0E0910702F09108028081918161
:10234000909334038093330320913103309132030F
:10235000821B930B845E9D4F68E671E00E94B37808
:10236000845B90409093300380932F03A8C0E0914A
:102370000702F0910802808180930601803298F074
:102380008FE1809306010FC0A0910702B09108026F
:102390008BE0E3E6F4E00D9001928A95E1F78091FD
:1023A0006C048093F4058FEF8093050188C08091C1
:1023B000000290910102892B89F4E0910702F091CB
:1023C0000802E081EE2351F08AE0E89FC001112469
:1023D0000E948E1690933E0480933D04E091070284
:1023E000F091080290818AE0989FC0011124909397
:1023F00001028093000215C08FEF80930501E091E8
:102400000702F091080290818AE0989FC001112490
:102410009093030280930202892B19F081E080934C
:10242000110280EA9FE00E948E169093FD01809336
:10243000FC0145C08FEF80930501E0910702F09108
:102440000802908197FD08C082E080930E021092EE
:10245000FF011092FE011AC0909580916A02892BAB
:1024600080936A0291818AE0989FC0011124909321
:10247000FF018093FE0184E080930E0280EA9FE0DA
:102480000E948E169093FD018093FC0181E0809361
:10249000120215C08FEF80930501E0910702F091C1
:1024A0000802808180936B0281E08093130207C051
:1024B00081E08093100203C081E0809314021092A7
:1024C0000C02109208021092070210920602E3E03A
:1024D000CE5F0C942E79982F8091C00085FFFCCFA1
:1024E0009093C60008950F931F9388E18093C100D5
:1024F0008091C00082608093C0008091C10080689C
:102500008093C1008091C10080648093C10000E08D
:1025100010E00093C5008AE290E08093C4008091AF
:102520000202909103020E948E16909340048093C1
:102530003F048CED90E00E948E1690936F04809380
:102540006E041092410480E58093420483E08093FE
:1025500045048BE0809343041092440410930802D6
:1025600000930702109206021F910F910895A0E1B7
:10257000B0E0EDEBF2E10C940F7980910701882334
:1025800009F4C1C28091FC019091FD010E9497164F
:10259000882361F01092FF011092FE011092030255
:1025A0001092020210920102109200028091FE012C
:1025B0009091FF01892B41F08091100590911105B8
:1025C0000E949716882329F480911202882309F427
:1025D00060C080910701882309F45BC080910E02DE
:1025E00002E211E08430A8F00E946C2080E590E0C7
:1025F0009F938F931F930F9381E08F938F9388E422
:102600008F930E946F0D2DB73EB7295F3F4F2DBFAF
:1026100034C010926C0282E194E09F938F9381E624
:1026200090E29F938F93E0912D04F0912E040995F1
:1026300084E190E09F938F931F930F9381E090E04C
:102640009F938F938EE092E09F938F9382E08F937E
:1026500081E08F9388E48F930E946F0D80910E022A
:10266000982F8F5F80930E022DB73EB7215F3F4FAB
:102670002DBF943010F010920E028091FE019091C7
:10268000FF010E948E169093110580931005109201
:10269000120280911302882351F18091070188234F
:1026A00031F10E946C2080E590E09F938F9382E24D
:1026B00091E09F938F9321E030E03F932F9381E24D
:1026C00091E09F938F933F932F938BE692E09F939C
:1026D0008F9383E08F9381E08F938CE48F930E949C
:1026E0006F0D109213028DB79EB70F968DBF80911C
:1026F00010028823D1F0809107018823B1F08AE08D
:1027000090E09F938F9381E494E09F938F9381E077
:102710008F938F9386E58F930E946F0D1092100216
:102720002DB73EB7295F3F4F2DBF809114028823FC
:10273000D9F0809107018823B9F08BE090E09F9356
:102740008F9383E694E09F938F9381E08F938091A2
:1027500004018F9387E48F930E946F0D10921402EF
:102760008DB79EB707968DBF80916E0490916F04D0
:102770000E949716882309F461C08091070188237D
:1027800009F45CC0809125069927880F991F880F4E
:10279000991F7C010027F7FC0095102F809175038D
:1027A00090917603A0917703B0917803BC01CD019D
:1027B000A80197010E94E87830935C0420935B04A1
:1027C00080916D0390916E03A0916F03B09170039F
:1027D000BC01CD01A80197010E94E87830935E0406
:1027E00020935D048091020380935F048091010334
:1027F0008093600488E090E09F938F938BE594E052
:102800009F938F9381E08F9383E08F938BE68F93D9
:102810000E946F0D809161042DB73EB7295F3F4F35
:102820002DBF853018F086E08093610483E690E048
:102830000E948E1690936F0480936E048091020222
:1028400090910302892B41F080913F0490914004C4
:102850000E949716882321F480911102882339F170
:1028600080910701882319F10E94743782E490E077
:102870009F938F9382EB95E09F938F9381E08F934B
:102880008F9384E48F930E946F0D109211028DB785
:102890009EB707968DBF8091020290910302009728
:1028A00031F00E948E169093400480933F048091F3
:1028B000000290910102892B09F4B8C080913D0477
:1028C00090913E040E949716882309F4AFC080912E
:1028D0000701882309F4AAC0809125069927880F4B
:1028E000991F880F991F7C010027F7FC0095102F76
:1028F0008091750390917603A0917703B09178034E
:10290000BC01CD01A80197010E94E8783093300402
:1029100020932F0480916D0390916E03A0916F031B
:10292000B0917003BC01CD01A80197010E94E87825
:1029300030933204209331042091F7073091F80747
:102940004091F9075091FA07DA01C90163E0880F55
:10295000991FAA1FBB1F6A95D1F7820F931FA41F4F
:10296000B51F820F931FA41FB51F209197013091AF
:1029700098014091990150919A01BC01CD010E94AA
:10298000E878309334042093330480913D03909190
:102990003E03A0913F03B091400339E0B595A79560
:1029A000979587953A95D1F78093350480913903AF
:1029B00090913A03A0913B03B0913C0329E0B59577
:1029C000A795979587952A95D1F78093360480919E
:1029D000450390914603A0914703B091480309E055
:1029E000B595A795979587950A95D1F78093370464
:1029F0008EE090E09F938F938FE294E09F938F936C
:102A000081E08F938F9383E48F930E946F0D809169
:102A10000002909101020E948E1690933E048093D2
:102A20003D042DB73EB7295F3F4F2DBF8091060172
:102A30008F3F71F1992714E0880F991F1A95E1F7DC
:102A40008E5E9D4F40E150E0BC01CE0101960E9498
:102A5000A27780E190E09F938F93CE0101969F93A0
:102A60008F9381E090E09F938F9386E091E09F9316
:102A70008F9382E08F9381E08F9381E48F930E9404
:102A80006F0D8FEF809306018DB79EB70B968DBFAC
:102A90008091F4058823D1F0809107018823B1F05B
:102AA00081E090E09F938F9384EF95E09F938F93C5
:102AB00081E08F938F9382E48F930E946F0D109229
:102AC000F4052DB73EB7295F3F4F2DBF80910F0210
:102AD0008823C9F0809107018823A9F084E390E05E
:102AE0009F938F9381E397E09F938F9381E08F93E0
:102AF0008F9380E58F930E946F0D10920F028DB718
:102B00009EB707968DBFE6E0C05F0C942B791F92AD
:102B10000F920FB60F9211242F933F935F936F93F1
:102B20007F938F939F93AF93BF93EF93FF9320E097
:102B300080912202882329F0809122028150809383
:102B4000220280911004882319F081508093100490
:102B500080912E02815080932E028F3F09F057C042
:102B600089E080932E02809128029091290201969B
:102B7000909329028093280280910C018F5F8170CD
:102B800080930C01882319F481E08093270286B199
:102B90008091230290912402892B21F180912302BC
:102BA000909124020B9750F080912302909124027F
:102BB0000A97909324028093230204C01092240267
:102BC0001092230280912302909124022091080107
:102BD0003091090182239323892B11F021E008C051
:102BE00020E006C08FEF9FEF9093090180930801CA
:102BF00080910201222331F08A3011F45A9A07C0E1
:102C0000479A05C08A3011F45A9801C047988091BC
:102C10002F02882309F472C02091EA01222309F0CF
:102C20006DC08091160683FF69C086B19927FC01AB
:102C3000E071F07084FF14C080912502909126020B
:102C4000019690932602809325028091250290910F
:102C50002602895E934008F451C020932F024EC093
:102C60008091250290912602892B09F443C080911E
:102C70002502909126028A569140E0F58091250226
:102C80009091260269E270E00E949F78809125026F
:102C900090912602860F971F90932602809325021B
:102CA00080912502909126020B9750F08091250289
:102CB000909126020A97909334038093330304C0C3
:102CC000F0933403E0933303809133039091340302
:102CD0002091310330913203821B930B845E9D4F10
:102CE00068E671E00E94B378845B90409093300373
:102CF00080932F031092260210922502FF91EF91EC
:102D0000BF91AF919F918F917F916F915F913F9113
:102D10002F910F900FBE0F901F90189520912802B1
:102D200030912902280F391FC90101960895209179
:102D3000280230912902821B930B892F99278695AF
:102D4000807490700895CF93DF930E948E16EC01EB
:102D5000CE010E9497168823D9F3DF91CF91089571
:102D6000CF93DF930E948E16EC0109C08091110170
:102D7000882329F0909311018FEC80937A00CE0183
:102D80000E949716982F882389F3DF91CF91089599
:102D90004FB78091FB02282F33272F773070C9015E
:102DA000880F991F880F991F820F931F90932D02F0
:102DB00080932C02F8945F983E9A469A8091B000D6
:102DC0008F708093B0008091B00083608093B000DA
:102DD0008091B1008B738093B1008091B1008B60C2
:102DE0008093B1001092B2008FEF8093B300809176
:102DF000B00080688093B000809170008A7F8093DB
:102E00007000809170008260809370004FBF0895C1
:102E10008AE090E00E948E169093370280933602EB
:102E200082E085BD83EA84BD17BC84EB88BD86E063
:102E300086BD80916E00816080936E0008951F9220
:102E40000F920FB60F9211242F933F934F935F93DE
:102E50006F937F938F939F93AF93BF93CF93DF93A2
:102E6000EF93FF9380910201843108F017C18091A4
:102E7000FB0287FD13C180913002882309F0AEC3A5
:102E80008091B00086FFECC08091B0008F7B809372
:102E9000B00089EA93E090933202809331028091EE
:102EA0000D0190910E019C01220F331F280F391F35
:102EB0008091A3019927880F991F880F991F280FC8
:102EC000391F37FF02C02D5F3F4FC9019595879588
:102ED0009595879590930E0180930D019093200214
:102EE00080931F0280916B066091370620917503D5
:102EF00030917603409177035091780380FF2CC086
:102F0000772788279927EA01D90157FF04C0A158DC
:102F1000BF4FCF4FDF4FE7E0D595C795B795A79542
:102F2000EA95D1F79D01AE010E9474789B01AC0136
:102F300097FF04C0215C3F4F4F4F5F4F66E05595B0
:102F40004795379527956A95D1F780911F02909103
:102F50002002820F931F2BC0772788279927EA0129
:102F6000D90157FF04C0A158BF4FCF4FDF4F27E013
:102F7000D595C795B795A7952A95D1F79D01AE012F
:102F80000E9474789B01AC0197FF04C0215C3F4F05
:102F90004F4F5F4FF6E05595479537952795FA9532
:102FA000D1F780911F0290912002821B930B909386
:102FB000200280931F0280913806282F3327220F8A
:102FC000331F220F331F80911F029091200282171E
:102FD00093077CF080913906282F3327220F331F67
:102FE000220F331F80911F0290912002281739076A
:102FF00024F43093200220931F022091310230915B
:10300000320280911F0290912002280F391F205018
:103010003240309332022093310280911F0290910E
:10302000200297FD039695958795959587959093A2
:10303000200280931F0245E02D3D340718F08CEDEF
:1030400095E005C02757314030F487E791E0909331
:10305000320280933102809131029091320287C214
:103060008091B00080648093B00080913E06282F4C
:1030700033278DED96E0289FA001299F500D389FA2
:10308000500D1124CA012091330230913402821B69
:10309000930B90933202809331029DC28091300253
:1030A000882309F09BC28091B00086FF65C28091A1
:1030B000B0008F7B8093B000E0913502EE23F1F4F5
:1030C00080913E06282F33278DED96E0289FA001A2
:1030D000299F500D389F500D1124CA0120913302B1
:1030E00030913402821B930B909332028093310211
:1030F0001092340210923302469A6DC249EA53E0AC
:1031000050933202409331028E2F992783309105DC
:1031100009F4A4C1843091053CF48130910561F03B
:10312000029709F4D2C0ECC18430910509F4DBC1E7
:10313000059709F4DBC1E4C180910D0190910E0166
:103140009C01220F331F280F391F8091A30199275B
:10315000880F991F880F991F280F391F37FF02C04A
:103160002D5F3F4FC90195958795959587959093CC
:103170000E0180930D019093200280931F02809195
:103180006B0660913706209175033091760340916C
:1031900077035091780380FF2CC0772788279927E1
:1031A000EA01D90157FF04C0A158BF4FCF4FDF4FED
:1031B00027E0D595C795B795A7952A95D1F79D0195
:1031C000AE010E9474789B01AC0197FF04C0215CA2
:1031D0003F4F4F4F5F4FF6E05595479537952795F1
:1031E000FA95D1F780911F0290912002820F931FD0
:1031F00027C077278827992757FF04C021583F4FBA
:103200004F4F5F4FE7E05595479537952795EA95DE
:10321000D1F70E9474789B01AC0197FF04C0215C38
:103220003F4F4F4F5F4F66E0559547953795279530
:103230006A95D1F780911F0290912002821B930B17
:103240009093200280931F0280913806282F332705
:10325000220F331F220F331F80911F0290912002F3
:10326000821793077CF080913906282F3327220F8D
:10327000331F220F331F80911F02909120022817C5
:10328000390724F43093200220931F0280913102E9
:103290009091320220911F0230912002820F931FE1
:1032A00080509240909332028093310280911F02AD
:1032B0009091200297FD0396959587959595879512
:1032C0009093200280931F022EC180910F01909154
:1032D00010019C01220F331F280F391F8091A2017A
:1032E0009927880F991F880F991F280F391F37FFBB
:1032F00002C02D5F3F4FC90195958795959587959C
:103300009093100180930F0190931E0280931D02F1
:1033100080916B0660913B06A0916D03B0916E03A6
:10332000C0916F03D091700381FF2AC0772788274F
:1033300099279D01AE01D7FF04C021583F4F4F4F41
:103340005F4FE7E05595479537952795EA95D1F773
:103350000E9474789B01AC0197FF04C0215C3F4F31
:103360004F4F5F4FC6E05595479537952795CA95BE
:10337000D1F780911D0290911E02820F931F29C0E8
:103380007727882799279D01AE01D7FF04C02158D0
:103390003F4F4F4F5F4FB7E055954795379527956E
:1033A000BA95D1F70E9474789B01AC0197FF04C0D5
:1033B000215C3F4F4F4F5F4FA6E05595479537959E
:1033C0002795AA95D1F780911D0290911E02821B2C
:1033D000930B90931E0280931D0280913C06282F30
:1033E0003327220F331F220F331F80911D0290912C
:1033F0001E02821793077CF080913D06282F332709
:10340000220F331F220F331F80911D0290911E0245
:103410002817390724F430931E0220931D0280914F
:1034200031029091320220911D0230911E02820FD2
:10343000931F80509240909332028093310280918A
:103440001D0290911E0297FD03969595879595957F
:10345000879590931E0280931D0265C0809110068F
:10346000E82FFF27EE0FFF1FEF5CF84F808191815F
:10347000805E9F4FACF18081918181971CF08CED33
:1034800095E04DC080912C0290912D02C29778F06A
:1034900020912A0230912B0280912C0290912D02D2
:1034A0002817390749F410922B0210922A025093E0
:1034B00032024093310237C080912A0290912B0250
:1034C000019690932B0280932A0220912A02309138
:1034D0002B0280910A0190910B012817390719F5E9
:1034E00087E791E01CC080919F0702C08091CD07C3
:1034F0009927880F991F880F991F87559E4F0FC0D6
:10350000FF27EE0FFF1FEF5CF84F20813181220F64
:10351000331F8091310290913202820F931F90935A
:10352000320280933102809131029091320245E063
:103530008D3D940718F08CED95E005C087579140BC
:1035400030F487E791E0909332028093310220912A
:103550003102309132022C5B3040309332022093A2
:1035600031028091330290913402820F931F909325
:103570003402809333022FC08091B0008064809326
:10358000B0008CEB90E090933202809331028091F6
:1035900033029091340284549F4F9093340280936D
:1035A000330280912102882321F080912103853B01
:1035B00020F480912102823011F4469801C0469A8D
:1035C000809135028F5F8093350290913E06981767
:1035D00010F41092350281E0809330022091310284
:1035E0003091320281E02F37380730F08FEF80932F
:1035F000B3002F5F30400FC02F3F3105C9F0C0F03E
:10360000A9014F5F50404F37510550F480E8809337
:10361000B30020583040309332022093310212C060
:103620008FEF8093B30050933202409331020AC06F
:10363000809131028093B3001092320210923102D5
:1036400010923002FF91EF91DF91CF91BF91AF9136
:103650009F918F917F916F915F914F913F912F91AA
:103660000F900FBE0F901F90189510927C008FEC5A
:1036700080937A000895CF93DF9383E090E00E94D7
:103680005D2EC82FDD27C531D10508F02A97C7BDAB
:1036900010923C0284E690E00E94B01680911501E1
:1036A000909116018052934010F4C0E0D0E0CA3FE0
:1036B000D105F8F4C7BD82E390E00E94B01687E21E
:1036C00094E09F938F938BE692E19F938F93E09189
:1036D0002D04F0912E040995809115019091160109
:1036E0000F900F900F900F908052934010F0219602
:1036F000DECF6C2F83E090E00E94632EC09305061E
:103700008091160680FF09C08C2F8A508B3E28F0CE
:1037100080914604806480934604C7BD8CE291E0AA
:103720000E94B016DF91CF910895EF92FF921F9300
:10373000CF9310E080ED97E00E948E167C01CCE8DC
:10374000133019F4CB3008F0C9E010E080914C023E
:1037500090914D028C5F934024F48091140181502C
:103760000AC080914C0290914D028750944034F0F1
:10377000809114018F5F8093140101C011E080914A
:103780004A0290914B028C5F934024F48091130184
:1037900081500AC080914A0290914B028750944018
:1037A00034F0809113018F5F8093130101C01F5F7C
:1037B00080914802909149028C5F934024F480915B
:1037C000120181500AC080914802909149028750AD
:1037D0009440C4F0809112018F5F8093120113C056
:1037E00089E294E09F938F938BE692E19F938F936E
:1037F000E0912D04F0912E0409950F900F900F90F9
:103800000F905FC01F5F82E180937602809171020A
:103810008E7F8093710285EA8093BC0080911401B1
:103820008A3040F4809146048160809346048AE0A7
:103830008093140180911401863F40F080914604EA
:1038400081608093460485EF809314018091130179
:103850008A3040F4809146048260809346048AE076
:103860008093130180911301863F40F080914604BC
:1038700082608093460485EF80931301809112014A
:103880008A3040F4809146048460809346048AE044
:103890008093120180911201863F40F0809146048E
:1038A00084608093460485EF8093120180917602B4
:1038B000882339F0C7010E949716882309F090CF1A
:1038C000F5CF109211018FEC80937A008091110155
:1038D0008823E1F3CA3020F48AE090E00E94B01619
:1038E000C15009F02DCF86E490E00E94B016CF9130
:1038F0001F91FF90EF9008951F920F920FB60F92B5
:103900001124AF92BF92CF92DF92EF92FF920F936A
:103910001F932F933F934F935F936F937F938F9357
:103920009F93AF93BF93EF93FF9380915502282FFE
:103930003327442755278F5F80935502F9012231A1
:10394000310508F08CC3E25CFF4F0C943A7980910A
:1039500078009091790046C080917800909179002C
:103960002CC18091780090917900909358028093B7
:10397000570257C180917E0390917F032091780078
:1039800030917900821B930B9093F6058093F50597
:103990008091F5059091F605909362028093610203
:1039A0005EC18091780090917900209180033091E0
:1039B0008103821B930B90930406809303068091EE
:1039C000030690910406909364028093630249C3B6
:1039D00080915B0290915C02209178003091790097
:1039E000820F931F90935C0280935B0281E03AC345
:1039F0008091590290915A0220917800309179007B
:103A0000820F931F90935A028093590284E02AC335
:103A100080911F01909120019C01220F331F280FDC
:103A2000391F809178009091790063E070E00E94E6
:103A30009F78260F371F3695279536952795309313
:103A4000200120931F0185E00DC3809178009091A3
:103A5000790040917A0350917B03841B950B9093DE
:103A60004302809342028091420290914302029766
:103A700004F122E04E3E520784F4209156022B5F5F
:103A80002093560225508091EE029091EF02845FC0
:103A9000914018F4215F209356028091560285369A
:103AA00084F14F5F5F4F50937B0340937A038456BA
:103AB00026C080914202909143028F5F9F4F0CF588
:103AC00032E047325307ECF0209156022550209304
:103AD00056022B5F8091EE029091EF02845F91403D
:103AE00018F42F5020935602809156028C394CF4D2
:103AF0004150504050937B0340937A038C598093FC
:103B0000560281E080934102809178009091790083
:103B10009093FC058093FB058091420290914302B3
:103B20009C01442737FD4095542F80913503909197
:103B30003603A0913703B0913803820F931FA41F5F
:103B4000B51F8093350390933603A0933703B0934A
:103B5000380320913503309136034091370350915B
:103B6000380357FF04C021503C4F4F4F5F4F0AE0CE
:103B700055954795379527950A95D1F78091350347
:103B800090913603A0913703B0913803821B930BB9
:103B9000A40BB50B8093350390933603A0933703A2
:103BA000B09338032EC18091590290915A0220910E
:103BB000780030917900820F931F90935A0280937E
:103BC00059021092540250C2809102018A3071F45D
:103BD000809178009091790020915702309158029D
:103BE000820F931F01969695879517C040915702B3
:103BF00050915802843158F020917800309179002A
:103C0000240F351F8FEF97E0821B930B06C0809126
:103C1000780090917900840F951F909349028093CA
:103C2000480286E01FC280917E0390917F0320911D
:103C3000780030917900821B930B9093F605809366
:103C4000F5058091F5059091F6052091610230917E
:103C50006202820F931F909347028093460287E08F
:103C600001C2809178009091790020918003309179
:103C70008103821B930B909304068093030680912B
:103C80000306909104062091630230916402820F32
:103C9000931F9093450280934402E3C120915B02FD
:103CA00030915C028091780090917900280F391F43
:103CB00030935C0220935B02809102018A3019F4F8
:103CC000220F331F04C0220F331F220F331F3093E4
:103CD0005C0220935B0220915B0230915C02C9017F
:103CE00037FD0796A3E095958795AA95E1F7909300
:103CF0004D0280934C0280915D0290915E02820F92
:103D0000931F97FD01969595879590935E028093FA
:103D10005D0220918A0330918B03821B930B909359
:103D20001E0180931D012091520230915302809117
:103D30001D0190911E01280F391F37FF02C02F5F10
:103D40003F4F3595279530935302209352024ECE24
:103D50002091590230915A02809178009091790017
:103D6000280F391F30935A02209359028091020183
:103D70008A3019F4220F331F04C0220F331F220F81
:103D8000331F30935A0220935902209159023091E7
:103D90005A02C90137FD079663E0959587956A95A4
:103DA000E1F790934B0280934A0280915F029091D9
:103DB0006002820F931F97FD0196959587959093CA
:103DC000600280935F022091880330918903821BF7
:103DD000930B90931C0180931B0120915002309112
:103DE000510280911B0190911C01280F391F37FF50
:103DF00002C02F5F3F4F3595279530935102209396
:103E0000500283E02FC11092550281E0809311018E
:103E100080913802909139020196909339028093F3
:103E200038028091780090917900909316018093E8
:103E300015018091150190911601AA27BB27A0902A
:103E40006502B0906602C0906702D0906802A80E2A
:103E5000B91ECA1EDB1EA0926502B0926602C09215
:103E60006702D0926802809169028F5F8093690235
:103E7000823108F4F6C08091170190911801A09149
:103E80001901B0911A017C018D0123E0EE0CFF1C99
:103E9000001F111F2A95D1F7E81AF90A0A0B1B0B0C
:103EA000EA0CFB1C0C1D1D1D80913C02992787FD0F
:103EB0009095A92FB92FBC01CD0126EC34E240E04A
:103EC00050E00E947478DC01CB01E81AF90A0A0B71
:103ED0001B0BD801C7010496A11DB11DB7FF05C07A
:103EE000D801C7010B96A11DB11D13E0B595A7958B
:103EF000979587951A95D1F780931701909318019C
:103F0000A0931901B0931A018091FD059091FE05CF
:103F10007C010027F7FC0095102F809117019091EC
:103F20001801A0911901B0911A01E81AF90A0A0BB7
:103F30001B0BE0921303F0921403009315031093EC
:103F4000160320913D0230913E0240913F02509174
:103F5000400257FF04C0215F3F4F4F4F5F4FF4E0D7
:103F60005595479537952795FA95D1F780913D025C
:103F700090913E02A0913F02B0914002821B930BB0
:103F8000A40BB50B80933D0290933E02A0933F0299
:103F9000B093400280913D0290913E02A0913F0279
:103FA000B09140028E0D9F1DA01FB11F80933D0256
:103FB00090933E02A0933F02B093400280913A0258
:103FC00090913B02AC01E5E0440F551FEA95E1F703
:103FD000481B590B80913D0290913E02A0913F02F7
:103FE000B0914002B7FF03C00F96A11DB11D74E050
:103FF000B595A795979587957A95D1F72091130355
:1040000030911403281B390B63E0220F331F6A958C
:10401000E1F7240F351F37FF02C0215E3F4F45E017
:10402000359527954A95E1F730933B0220933A0264
:10403000D601C501D7FE03C00196A11DB11DB595DE
:10404000A795979587958093650290936602A093B4
:104050006702B093680289E08093690202C01092FF
:10406000550282E0809354028091540280937C0038
:1040700080915502882319F08FEC80937A00FF918C
:10408000EF91BF91AF919F918F917F916F915F91D0
:104090004F913F912F911F910F91FF90EF90DF90E3
:1040A000CF90BF90AF900F900FBE0F901F901895BC
:1040B00090E2E2E2F1E08FE49193815087FFFCCF40
:1040C000089590916C02E2E2F1E0E90FF11D808326
:1040D0009F5F90936C020895EF92FF920F931F934E
:1040E000CF93DF9320916A0220FF0AC080916B0278
:1040F000882311F0815002C08091210180936B02CE
:1041000021FF0CC090916B0280912101981719F446
:1041100010926B0203C09F5F90936B02822F9927CE
:1041200080FF04C081FF02C010926B020E945820E1
:1041300080916B02282F3327C1E6EC2EC0E2FC2EC3
:10414000C0912D04D0912E048A3098F481E180939F
:104150006C023F932F9380E694E09F938F93FF929E
:10416000EF92FE0109952DB73EB72A5F3F4F2DBF55
:1041700011C080E180936C023F932F9385E694E019
:104180009F938F93FF92EF92FE0109958DB79EB793
:1041900006968DBF20916B02822F9927AA27BB27F5
:1041A000FC01429710F00C94192BE05BFF4FB1E635
:1041B000EB2EB0E2FB2EC0912D04D0912E040C9476
:1041C0003A7910926C028AE694E09F938F9301E60D
:1041D00010E2FF92EF92FE01099584E180936C0258
:1041E0000F900F900F900F9084E690E09F938F9325
:1041F00080E590E09F938F931F921F928091020120
:104200006AE00E949378892F99279F938F938091DA
:1042100002010E94937899279F938F938AE794E0F5
:104220009F938F93FF92EF92E0912D04F0912E04D3
:10423000099588E280936C022DB73EB7225F3F4F0D
:104240002DBF8BE796E09F938F930E947F2F992736
:104250009F938F9388E994E09F938F93FF92EF92BF
:10426000E0912D04F0912E0409958DB79EB7089624
:104270008DBF90914604992351F08CE380936C029A
:10428000892F99279F938F9386EA94E085C6909112
:104290007202992371F08CE380936C02892F992725
:1042A0009F938F938DEB94E09F938F931F930F9326
:1042B00091C08091470484FF07C08CE380936C0217
:1042C00082ED94E00C94AB2A80919301909194013B
:1042D000069710F00C94222B8CE380936C028FEDE8
:1042E00094E00C94AB2A80911606A1E6EA2EA0E297
:1042F000FA2EC0912D04D0912E0480FF74C010922C
:104300006C028091130390911403A0911503B09156
:104310001603BC01CD0125E030E040E050E00E94F2
:10432000E8783F932F938CEE94E09F938F93FF92C6
:10433000EF92FE01099584E180936C022DB73EB7A0
:104340002A5F3F4F2DBF80910F0390911003A091E2
:104350001103B0911203BC01CD0125E030E040E033
:1043600050E00E94E8783F932F9389EF94E09F9369
:104370008F93FF92EF92E0912D04F0912E04099516
:1043800088E280936C028DB79EB706968DBF8091B0
:104390001501909116019F938F9386E095E09F936E
:1043A0008F93FF92EF92E0912D04F0912E040995E6
:1043B0008CE380936C022DB73EB72A5F3F4F2DBF31
:1043C00087B599279F938F9383E195E09F938F9370
:1043D000FF92EF92E0912D04F0912E0409958DB794
:1043E0009EB706962FC710926C0280E295E09F93CD
:1043F0008F93FF92EF92FE01099584E180936C0206
:104400000F900F900F900F908FE295E09F938F93F6
:10441000FF92EF92E0912D04F0912E04099588E22D
:1044200080936C020F900F900F900F9088E395E0AF
:104430009F938F93FF92EF92E0912D04F0912E04C1
:1044400009958CE380936C020F900F900F900F9062
:1044500087E495E09F938F93FF92EF920C94AF2A9D
:1044600010926C0280E595E09F938F9301E610E235
:10447000FF92EF92FE01099584E180936C020F9008
:104480000F900F900F908091750390917603A091FB
:104490007703B0917803B7FF04C081509C4FAF4FB2
:1044A000BF4FFAE0B595A79597958795FA95D1F7FF
:1044B000BF93AF939F938F938DE595E09F938F93D9
:1044C0001F930F93E0912D04F0912E04099588E23B
:1044D00080936C022DB73EB7285F3F4F2DBF809170
:1044E0006D0390916E03A0916F03B0917003B7FFBD
:1044F00004C081509C4FAF4FBF4FEAE0B595A795E0
:1045000097958795EA95D1F7BF93AF939F938F9334
:104510008CE695E09F938F931F930F93E0912D046A
:10452000F0912E0409958CE380936C028DB79EB7B1
:1045300008968DBF80913303909134039F938F939E
:104540008BE795E09F938F931F930F93E0912D043A
:10455000F0912E0409952DB73EB72A5F3F4F0DC746
:1045600010926C0280913507909136079F938F933C
:1045700080913307909134079F938F938AE895E059
:104580009F938F93FF92EF92FE01099584E18093B0
:104590006C028DB79EB708968DBF809139079091B8
:1045A0003A079F938F9380913707909138079F9395
:1045B0008F938AE995E09F938F93FF92EF92E0911A
:1045C0002D04F0912E04099588E280936C022DB79A
:1045D0003EB7285F3F4F2DBF80913D0790913E072A
:1045E0009F938F9380913B0790913C079F938F936C
:1045F0008AEA95E09F938F93FF92EF92E0912D04CA
:10460000F0912E0409958CE380936C028DB79EB7D0
:1046100008968DBF80914107909142079F938F9399
:1046200080913F07909140079F938F938AEB95E08D
:10463000A2C010926C0280910B06E82FFF27EE0FAC
:10464000FF1FEF5CF84F808191819F938F93809142
:104650000A06E82FFF27EE0FFF1FEF5CF84F80815F
:1046600091819F938F938AEC95E09F938F93FF9214
:10467000EF92FE01099584E180936C028DB79EB79D
:1046800008968DBF80910D06E82FFF27EE0FFF1FC4
:10469000EF5CF84F808191819F938F9380910C06FE
:1046A000E82FFF27EE0FFF1FEF5CF84F808191810D
:1046B00088589F4F9F938F938AED95E09F938F9398
:1046C000FF92EF92E0912D04F0912E04099588E27B
:1046D00080936C022DB73EB7285F3F4F2DBF80916E
:1046E0000F06E82FFF27EE0FFF1FEF5CF84F8081CA
:1046F000918182599F4F9F938F9380910E06E82F4F
:10470000FF27EE0FFF1FEF5CF84F808191818259E8
:104710009F4F9F938F938AEE95E09F938F93FF9285
:10472000EF92E0912D04F0912E0409958CE3809393
:104730006C028DB79EB708968DBF80911106E82F49
:10474000FF27EE0FFF1FEF5CF84F808191818259A8
:104750009F4F9F938F9380911006E82FFF27EE0FB6
:10476000FF1FEF5CF84F8081918182599F4F9F938B
:104770008F938AEF95E09F938F93FF92EF92E09152
:104780002D04F0912E0409952DB73EB7285F3F4FB9
:10479000F4C510926C028AE096E09F938F9301E635
:1047A00010E2FF92EF92FE010995809102010F90B5
:1047B0000F900F900F908A3009F0A1C084E1809390
:1047C0006C0280918A0390918B039C0197FF02C039
:1047D000295F3F4F287F821B930B9F938F9380917C
:1047E0008A0390918B0397FD079673E095958795C3
:1047F0007A95E1F79F938F9320918A0330918B03F1
:1048000037FF02C0295F3F4F63E0359527956A95D2
:10481000E1F780914C0290914D02821B930B9F9384
:104820008F9388E196E09F938F931F930F93E0916E
:104830002D04F0912E04099588E280936C028DB7C7
:104840009EB70A968DBF80918803909189039C0141
:1048500097FF02C0295F3F4F287F821B930B9F93D6
:104860008F93809188039091890397FD079653E079
:10487000959587955A95E1F79F938F93209188039B
:104880003091890337FF02C0295F3F4F43E03595E0
:1048900027954A95E1F780914A0290914B02821B3D
:1048A000930B9F938F9389E296E09F938F931F932F
:1048B0000F93E0912D04F0912E0409958CE38093E1
:1048C0006C022DB73EB7265F3F4F2DBF8091860308
:1048D000909187039F938F93809186039091870394
:1048E0002091480230914902821B930B9F938F9332
:1048F0008AE396E09F938F931F930F93A3C38B300C
:1049000019F0843108F4ADC084E180936C02809189
:104910008A0390918B039C0197FF02C0215F3F4F58
:10492000207F821B930B97FD0196959587959F930A
:104930008F9380918A0390918B0397FD0F9624E0CB
:10494000959587952A95E1F79F938F9320918A03F8
:1049500030918B0337FF02C0295F3F4F83E03595CD
:1049600027958A95E1F780914C0290914D02821B28
:10497000930B9F938F9388E496E09F938F931F935D
:104980000F93E0912D04F0912E04099588E2809315
:104990006C022DB73EB7265F3F4F2DBF8091880335
:1049A000909189039C0197FF02C0215F3F4F207FB8
:1049B000821B930B97FD0196959587959F938F93F7
:1049C000809188039091890397FD0F96B4E09595A7
:1049D0008795BA95E1F79F938F9320918803309143
:1049E000890337FF02C0295F3F4FA3E03595279524
:1049F000AA95E1F780914A0290914B02821B930B9A
:104A00009F938F938AE596E09F938F931F930F93C5
:104A1000E0912D04F0912E0409958CE380936C02B3
:104A20008DB79EB70A968DBF8091860390918703BC
:104A300097FD0196959587959F938F938091860317
:104A4000909187032091480230914902821B930B79
:104A50009F938F938CE696E09F938F931F930F9372
:104A60008ECE8D3009F0EEC584E180936C0280918A
:104A7000140199279F938F9380918A0390918B03C0
:104A800097FD0F96E4E095958795EA95E1F79F935A
:104A90008F9320918A0330918B0337FF02C0295FE7
:104AA0003F4F73E0359527957A95E1F780914C0259
:104AB00090914D02821B930B9F938F938BE796E00F
:104AC0009F938F931F930F93E0912D04F0912E04E9
:104AD000099588E280936C028DB79EB70A968DBFC8
:104AE0008091130199279F938F93809188039091D0
:104AF000890397FD0F9664E0959587956A95E1F790
:104B00009F938F93209188033091890337FF02C0D0
:104B1000295F3F4F53E0359527955A95E1F78091EE
:104B20004A0290914B02821B930B9F938F938FE8C5
:104B300096E09F938F931F930F93E0912D04F09134
:104B40002E0409958CE380936C022DB73EB7265F47
:104B50003F4F2DBF8091120199279F938F93809192
:104B600086039091870397FD0196959587959F936E
:104B70008F93809186039091870320914802309112
:104B80004902821B930B9F938F9383EA96E09F9336
:104B90008F931F930F93E0912D04F0912E040995AC
:104BA0008DB79EB70A964EC310926C0287EB96E0C3
:104BB0009F938F93FF92EF92FE01099584E180937A
:104BC0006C020F900F900F900F9080918003909146
:104BD00081039F938F9380914402909145029F930C
:104BE0008F9384EC96E09F938F93FF92EF92E091E6
:104BF0002D04F0912E04099588E280936C022DB764
:104C00003EB7285F3F4F2DBF80917E0390917F0379
:104C10009F938F9380914602909147029F938F9329
:104C200083ED96E09F938F93FF92EF92E0912D0496
:104C3000F0912E0409958CE380936C028DB79EB79A
:104C400008968DBF80917A0390917B039F938F93F9
:104C500080914202909143029F938F9382EE96E05F
:104C60008ACD10926C0280911F01909120016AE020
:104C700070E00E94B3789F938F9380911F01909171
:104C800020016AE070E00E94B3787F936F9381EF18
:104C900096E09F938F93FF92EF92FE01099584E136
:104CA00080936C028DB79EB708968DBF80916E0879
:104CB00090916F086AE070E00E949F789F938F93B5
:104CC00080916E0890916F086AE070E00E949F7872
:104CD0007F936F9385E097E09F938F93FF92EF927E
:104CE000E0912D04F0912E04099588E280936C02E6
:104CF0002DB73EB7285F3F4F2DBF80917008909130
:104D000071089F938F9389E197E09F938F93FF9210
:104D1000EF92E0912D04F0912E0409958CE380939D
:104D20006C028DB79EB706968DBF809172089091E8
:104D300073089F938F9389E297E02EC110926C02C3
:104D40008BE397E09F938F93FF92EF92FE0109957B
:104D500084E180936C020F900F900F900F908091E0
:104D60003107909132079F938F9384E497E09F934C
:104D70008F93FF92EF92E0912D04F0912E0409950C
:104D800088E280936C028DB79EB706968DBF8091A6
:104D9000210399279F938F9384E597E09F938F93A7
:104DA000FF92EF92E0912D04F0912E0409958CE38F
:104DB00080936C022DB73EB72A5F3F4F2DBF809185
:104DC0003007992701979F938F9384E697E0FECA57
:104DD00010926C0284E797E09F938F93FF92EF927B
:104DE000FE01099584E180936C020F900F900F9063
:104DF0000F9080912F03909130039F938F938CE7B6
:104E000097E09F938F93FF92EF92E0912D04F091A2
:104E10002E04099588E280936C022DB73EB72A5F75
:104E20003F4F2DBF80913303909134039F938F9315
:104E30008AE897E09F938F93FF92EF92E0912D0481
:104E4000F0912E0409958CE380936C028DB79EB788
:104E500006968DBF80913103909132039F938F937B
:104E600088E997E099C010926C02809122039927FB
:104E70009F938F9386EA97E09F938F93FF92EF9291
:104E8000FE01099584E180936C028DB79EB706966A
:104E90008DBF8091230399279F938F9382EB97E097
:104EA0009F938F93FF92EF92E0912D04F0912E0447
:104EB000099588E280936C022DB73EB72A5F3F4F79
:104EC0002DBF8091240399279F938F938EEB97E0BA
:104ED0009F938F93FF92EF92E0912D04F0912E0417
:104EE00009958CE380936C028DB79EB706968DBFB3
:104EF0008091250399279F938F938AEC97E04CC06C
:104F000010926C028091260399279F938F9386EDD0
:104F100097E09F938F93FF92EF92FE01099584E1B2
:104F200080936C028DB79EB706968DBF8091270344
:104F300099279F938F9382EE97E09F938F93FF9291
:104F4000EF92E0912D04F0912E04099588E2809370
:104F50006C022DB73EB72A5F3F4F2DBF80912803CB
:104F600099279F938F938EEE97E09F938F93FF9255
:104F7000EF92E0912D04F0912E0409958CE380933B
:104F80006C028DB79EB706968DBF80912903992735
:104F90009F938F938AEF97E09F938F93FF92EF9267
:104FA000D5CA10926C0286E098E09F938F93FF928F
:104FB000EF92FE01099584E180936C020F900F90AF
:104FC0000F900F908091A30199279F938F938EE06C
:104FD00098E09F938F93FF92EF92E0912D04F091D0
:104FE0002E04099588E280936C028DB79EB70696D1
:104FF0008DBF80911F02909120029F938F938CE12F
:1050000098E09F938F93FF92EF92E0912D04F0919F
:105010002E0409958CE380936C022DB73EB72A5F6E
:105020003F4F2DBF8091390699279F938F93809191
:10503000380699279F938F938AE298E09F938F93E6
:10504000FF92EF92E0912D04F0912E0409958DB717
:105050009EB70896F7C010926C0288E398E09F9381
:105060008F93FF92EF92FE01099584E180936C0289
:105070000F900F900F900F9080916704992787FDF4
:1050800090959F938F9380916604992787FD9095C3
:105090009F938F9388E498E09F938F93FF92EF9272
:1050A000E0912D04F0912E04099588E280936C0222
:1050B0002DB73EB7285F3F4F2DBF809168049927D9
:1050C00087FD90959F938F938091690499279F9373
:1050D0008F9388E598E09F938F93FF92EF92E091F2
:1050E0002D04F0912E0409958CE380936C028DB70A
:1050F0009EB708968DBF80916D0499279F938F93DB
:1051000080916A04992787FD90959F938F9388E6F5
:1051100098E031CB10926C0288E798E09F938F93D0
:10512000FF92EF92FE01099584E180936C020F904B
:105130000F900F900F908091EB0699278F779070CA
:105140009F938F938091E30699278F7790709F9319
:105150008F938091DB0699278F7790709F938F9321
:105160008091D30699278F7790709F938F9388E8CB
:1051700098E09F938F93FF92EF92E0912D04F0912E
:105180002E04099588E280936C028DB79EB70C9629
:105190008DBF80910B0799278F7790709F938F9386
:1051A0008091030799278F7790709F938F938091B9
:1051B000FB0699278F7790709F938F938091F306CA
:1051C00099278F7790709F938F9389E998E09F93A9
:1051D0008F93FF92EF92E0912D04F0912E040995A8
:1051E0008CE380936C022DB73EB7245F3F4F2DBFF9
:1051F00080912B0799278F7790709F938F93809141
:10520000230799278F7790709F938F9380911B0727
:1052100099278F7790709F938F9380911307992789
:105220008F7790709F938F938AEA98E09F938F93E4
:10523000FF92EF92E0912D04F0912E0409958DB725
:105240009EB70C968DBFFEC110926C028BEB98E05E
:105250009F938F93FF92EF92FE01099584E18093D3
:105260006C020F900F900F900F908091EF0699278E
:1052700087FD90959F938F938091E706992787FDEF
:1052800090959F938F938091DF06992787FD909546
:105290009F938F938091D706992787FD90959F9331
:1052A0008F938AEC98E09F938F93FF92EF92E09117
:1052B0002D04F0912E04099588E280936C022DB79D
:1052C0003EB7245F3F4F2DBF80910F07992787FD81
:1052D00090959F938F9380910707992787FD9095CD
:1052E0009F938F938091FF06992787FD90959F93B9
:1052F0008F938091F706992787FD90959F938F93C1
:105300008BED98E09F938F93FF92EF92E0912D04A5
:10531000F0912E0409958CE380936C028DB79EB7B3
:105320000C968DBF80912F07992787FD90959F93AD
:105330008F9380912707992787FD90959F938F934F
:1053400080911F07992787FD90959F938F93809158
:105350001707992787FD90959F938F938CEE98E080
:105360009F938F93FF92EF92E0912D04F0912E0482
:1053700009952DB73EB7245F3F4F2DBF63C11092F3
:105380006C028DEF98E09F938F9301E610E2FF92FD
:10539000EF92FE01099584E180936C020F900F90CB
:1053A0000F900F908091EB06881F8827881F97E049
:1053B000899FC00111248D969F938F938091E3065E
:1053C000881F8827881F96E0899FC00111248D9629
:1053D0009F938F938091DB06881F8827881F95E015
:1053E000899FC00111248D969F938F938091D3063E
:1053F000881F8827881F9927880F991F880F991F52
:105400008D969F938F938CE099E09F938F93FF925B
:10541000EF92E0912D04F0912E04099588E280939B
:105420006C028DB79EB70C968DBF80910B07881FBD
:105430008827881F9BE0899FC00111248D969F9328
:105440008F9380910307881F8827881F9AE0899F80
:10545000C00111248D969F938F938091FB06881F26
:105460008827881F99E0899FC00111248D969F93FA
:105470008F938091F306881F8827881F992723E040
:10548000880F991F2A95E1F78D969F938F9380E25D
:1054900099E09F938F93FF92EF92E0912D04F0910A
:1054A0002E0409958CE380936C022DB73EB7245FE0
:1054B0003F4F2DBF80911307881F8827881F9CE0CE
:1054C000899FC00111248D969F938F9384E399E067
:1054D0009F938F93FF92EF92E0912D04F0912E0411
:1054E000099580911B072DB73EB72A5F3F4F2DBF0F
:1054F00087FF12C080E480936C0285E499E09F935B
:105500008F93FF92EF92E0912D04F0912E04099574
:105510000F900F900F900F908091230787FF12C07C
:1055200084E480936C0288E499E09F938F931F93A7
:105530000F93E0912D04F0912E0409950F900F9098
:105540000F900F9080912B0787FF7CC088E4809399
:105550006C028BE499E09F938F931F930F93E091DC
:105560002D04F0912E0409950F900F900F900F903D
:1055700069C010926C028EE499E09F938F93FF9222
:10558000EF92FE01099584E180936C020F900F90D9
:105590000F900F908091F7019091F8019F938F9356
:1055A0008CE599E09F938F93FF92EF92E0912D0409
:1055B000F0912E04099588E280936C028DB79EB716
:1055C00006968DBF8091F9019091FA019F938F9378
:1055D00089E699E09F938F93FF92EF92E0912D04DB
:1055E000F0912E04099589E480936C022DB73EB7A3
:1055F0002A5F3F4F2DBF86E799E09F938F93FF92DD
:10560000EF92E0912D04F0912E04099580916A02A9
:105610000F900F900F900F9083FF14C01092FA011B
:105620001092F90160E070E08EE090E00E946D2E33
:1056300009C080912101281719F4215020932101DC
:1056400010926B0210926A02E6E0CDB7DEB70C94BE
:105650002B794AEA20E030E02617370740F4FC01B6
:105660008191480F2F5F3F4F26173707C8F3842FCC
:1056700099270895AC019AEA20E030E02617370711
:1056800050F4DA01A20FB31F0E944079802D980FC9
:105690002F5F3F4FF3CF892F9927089581E08093A3
:1056A0000C0682E080930B0683E080930A0684E078
:1056B00080930D0685E080930E0686E080930F06AA
:1056C00087E08093100688E08093110689E080933C
:1056D00012068AE0809313068BE0809314068CE018
:1056E0008093150608951F93CF93DF9384E58093ED
:1056F000090680910201843150F08AE080932906E6
:1057000010924B068BE1809325068EE40AC083E05D
:105710008093290680E280934B068EE180932506D4
:1057200085E580934806809349068AE680931606AD
:1057300083E080936C06AEE1A09317068FEF809311
:105740001906EFE0E0931A06A093180610921C06C3
:10575000F8E0F0931D0680E480931E0610921F0669
:1057600084E180931B068EE080932006B0E1B09325
:1057700021061CE010932206F093230686EE809308
:10578000240680E88093260650E55093270686E994
:105790008093280650932A0680932B0676E0709318
:1057A0002C0681E280932D068DE280932E069AE5E9
:1057B00090932F0680E28093310610923206109269
:1057C0003306109234061092350610924D06109250
:1057D0004E0610924F061092500634E6309336066D
:1057E00048E24093370661E060936B0610923806FA
:1057F00027EF2093390670933E068DE780933F068E
:10580000809340068093410630933A0640933B06CE
:1058100010923C0620933D0682E3809342069093CB
:1058200043068093440610926A069093450650936F
:10583000460660934706B0934A0630934C068FE5C0
:105840008093510683EF809353068AEA809355062E
:1058500080935606E0935206E09354068EEF8093B1
:105860005706309358069093590690935A06909392
:105870005B068BE480935C0680935D0680935E06F6
:1058800010925F0670936006F09361069093620633
:10589000A0936306309364063093650682E080939C
:1058A0006606609330061092680610926906ADE6AF
:1058B000B6E0E2E7F1E0ED01019009921A95E1F717
:1058C00060E770E0CD01845690400E94292B8093C0
:1058D0007906DF91CF911F910895CF93DF9384E5EF
:1058E0008093090680910201843150F08AE0809310
:1058F000290610924B068BE1809325068EE40AC0A0
:1059000083E08093290680E280934B068EE18093AA
:10591000250685E580934806809349068AE68093AC
:10592000160683E080936C067EE1709317068FEF76
:10593000809319069FE090931A06709318061092B0
:105940001C0668E060931D0680E480931E0610929A
:105950001F0690931B068AE08093200680E18093C7
:10596000210656E0509322066093230686EE80932C
:10597000240680E8809326062AE52093270688E7F8
:105980008093280620932A0680932B0650932C069A
:1059900081E280932D068DE280932E0620932F06C0
:1059A000E0E2E09331061092320610923306109234
:1059B00034061092350610924D0610924E06109243
:1059C0004F061092500644E64093360638E2309374
:1059D0003706F1E0F0936B061092380697EF90933C
:1059E000390650933E068DE780933F06809340062C
:1059F0008093410640933A0630933B0610923C0652
:105A000090933D0682E38093420620934306809361
:105A1000440610926A062093450680E58093460668
:105A20008CE380934706E0934A069BE490934C06F0
:105A30008FE58093510683EF809353068AEA809323
:105A400055068093560684E180935206809354064F
:105A50008EEF809357064093580620935906209363
:105A60005A0620935B0690935C0690935D06909394
:105A70005E0610925F065093600660936106209365
:105A8000620670936306409364064093650682E065
:105A900080936606F09330061092680610926906AD
:105AA000ADE6B6E08CE0E9E7F1E0ED0101900992A6
:105AB0008A95E1F760E770E0CD01845690400E943E
:105AC000292B80937906DF91CF910895CF93DF93AF
:105AD00084E58093090680910201843150F08AE0C8
:105AE0008093290610924B068BE1809325068EE465
:105AF0000AC083E08093290680E280934B068EE102
:105B00008093250685E580934806809349068AE6BA
:105B10008093160683E080936C066EE1609317060F
:105B20008FEF809319069FE090931A0660931806F2
:105B300010921C0678E070931D0680E480931E0688
:105B400010921F0690931B067093200690E190938D
:105B5000210656E0509322067093230686EE80932A
:105B6000240680E88093260634E63093270688E7EB
:105B70008093280630932A0680932B0650932C0698
:105B800081E280932D068DE280932E062AE52093F4
:105B90002F0690933106109232061092330610921F
:105BA00034061092350610924D0610924E06109251
:105BB0004F06109250063093360648E2409337065F
:105BC000E1E0E0936B061092380697EF9093390668
:105BD00050933E068DE780933F0680934006809366
:105BE000410630933A0640933B0610923C06909350
:105BF0003D0682E380934206209343068093440649
:105C000010926A062093450680E58093460696E446
:105C10009093470680E280934A0690934C068FE566
:105C20008093510683EF809353068AEA809355064A
:105C30008093560660935206609354068EEF8093CD
:105C40005706309358062093590620935A062093FE
:105C50005B068BE480935C0680935D0680935E0612
:105C600010925F065093600670936106209362065F
:105C700060936306309364063093650682E08093F8
:105C80006606E09330061092680610926906ADE64B
:105C9000B6E08CE0E1E8F1E0ED01019009928A952F
:105CA000E1F760E770E0CD01845690400E94292B17
:105CB00080937906DF91CF910895DC010E944079AD
:105CC000802D99270895DC01062E0E9452790895AF
:105CD000DC010E944D79CF010895DC010B010E9487
:105CE0005E790895FF920F931F93CF93DF93982FC0
:105CF0008150853008F093E081E7F82E9F9D800168
:105D00001124E8012D9760E770E0CE010E943A2B44
:105D1000982FD801AD59BF4F0E944079802D891727
:105D200031F4DE010E944079802D843519F080E045
:105D300090E00AC0E9E0F6E0DE011F2C0E944879FD
:105D40000E94076881E090E0E5E0CDB7DEB70C94F3
:105D50002C79863010F085E003C0882309F481E0B7
:105D6000A2E0B0E0082E0E94527908951F93CF93CD
:105D7000DF93182FC9E0D6E080910906843591F5AC
:105D8000163010F015E002C0112361F160E770E0F9
:105D900089E096E00E94292B8093790681E7189F7D
:105DA000D00111241D97FE01182E0E946379EAE0AC
:105DB000F6E0A0E5B0E02CE030E0122E0E9463791E
:105DC000B9018AE096E00E94292BACE5B0E0082EEC
:105DD0000E945279812F0E94A92E0E94076881E0BB
:105DE00090E002C080E090E0DF91CF911F91089594
:105DF0006DE470E088EE93E00E943A2BA5E3B4E0F6
:105E00000E944079902D981739F4A8EEB3E00E94D3
:105E10004079802D813019F080E090E00895EAE724
:105E2000F6E0A8EEB3E08EE4182E0E94487981E0F7
:105E300090E00895CF93DF93CAE7D6E080917A0689
:105E4000813089F46DE470E0CE010E94292B8093AB
:105E5000C706A8EEB3E08EE4FE01182E0E94637917
:105E600081E090E002C080E090E0DF91CF91089562
:105E7000CF93DF9381E080937A06EAE7F6E08FE044
:105E8000158616861786108A8150349687FFF8CFBC
:105E900080E4809387068093880610928906809319
:105EA0008A0680938B0690EC90938C0610928D0658
:105EB00080938E0680938F061092900690939106A1
:105EC0009093920680939306109294068093950681
:105ED00090939606ABE7B6E087E0EBE8F1E0ED01E2
:105EE000019009928A95E1F76DE470E0CD01019788
:105EF0000E94292B8093C706DF91CF910895A2E0DD
:105F0000B0E00E944079802D863030F083E0A2E03E
:105F1000B0E0082E0E94527999270895DF92EF92FF
:105F2000FF920F931F93CF93FF24DF2CEF2C81E080
:105F300090E00E945D2E843539F031E0E32E64E577
:105F400081E090E00E94632E6CE070E080E590E0DC
:105F50000E943A2BC82FACE5B0E00E944079802D1A
:105F60008C1711F421E0D22EC1E001E010E0EE2008
:105F700029F48C2F0E94722E8823B1F591E0F92E1E
:105F80001F930F938EE799E09F938F938BE692E197
:105F90009F938F93E0912D04F0912E0409958DB776
:105FA0009EB706968DBF0230110549F003301105EA
:105FB0004CF40130110531F40E94732B05C00E948E
:105FC0006D2C02C00E94662DDD2049F0EAE0F6E06B
:105FD000A0E5B0E08CE0182E0E94487902C00E9433
:105FE0004E2B8C2F0E94B62ECF5F0F5F1F4FC630F7
:105FF00008F4BDCFFF2019F083E00E94A92E0E9473
:106000007F2FC82F0E94722E8C2F99279F938F93DA
:1060100084EA99E09F938F930BE612E11F930F930D
:10602000E0912D04F0912E0409958DB79EB7069648
:106030008DBFEE2021F40E94F82E882399F48DEB79
:1060400099E09F938F931F930F93E0912D04F0910C
:106050002E0409950E94382F0E941A2F0F900F903E
:106060000F900F901092080690E0E7E8F6E0CFE07E
:106070008081349618160CF49F5FC150C7FFF8CF8B
:1060800090930806892F99279F938F938BE796E02B
:106090009F938F938EED99E09F938F931F930F9310
:1060A000E0912D04F0912E0409958DB79EB70896C6
:1060B0008DBF8FEF99E09F938F931F930F93E09184
:1060C0002D04F0912E0409950F900F900F900F90D2
:1060D000CF911F910F91FF90EF90DF9008959FB7A0
:1060E000F8943998389A88B1836088B98091B9005A
:1060F0008C7F8093B9008AE28093B8001092760278
:106100001092740210927302E0EDF6E08BE01082C0
:106110001182128213821482158216821782815094
:10612000389687FFF4CF9FBF08951092760284E9D6
:106130008093BC00109274021092730280E88093E6
:10614000BC001092BD001092BA001092BB001092D9
:10615000B9001092B8000E946F301092BB0085E821
:106160008093BC00809171028260809371020895D7
:106170001F920F920FB60F9211242F933F934F93BC
:106180005F938F939F93EF93FF9380917602282FD5
:106190003327442755278F5F80937602F9012731F3
:1061A000310508F0B3C2EE59FF4F0C943A79809153
:1061B00074028C3090F4809174028F5F809374022B
:1061C00080917402E82FFF27EE0FFF1FEE0FFF1FD5
:1061D000E658F94F8585181654F7809174028C3073
:1061E00070F01092700210926F021092740285E0AB
:1061F0008093760280917302880F8D5A04C080913B
:106200007402880F8E5A8093BB0085E874C2809117
:106210007402E82FFF2783E0EE0FFF1F8A95E1F756
:10622000E053F94F81818093BB0085E88093BC00E7
:1062300080917402E82FFF27EE0FFF1FEE0FFF1F64
:10624000EE0FFF1FE053F94F808180FF91C08091D6
:106250007402E82FFF27EE0FFF1FEE0FFF1FEE0F58
:10626000FF1FE053F94F8281882329F080910806AF
:10627000873008F45FC280916F0290917002892B81
:1062800009F058C280916D0290916E02892B09F03D
:1062900051C26EC08091740221E030E002C0220F32
:1062A000331F8A95E2F780916D0290916E02282348
:1062B0003923232B79F080917402E82FFF27EE0F0A
:1062C000FF1FEE0FFF1FEE0FFF1FE053F94F80E19E
:1062D00084830DC080917402E82FFF27EE0FFF1F0B
:1062E000EE0FFF1FEE0FFF1FE053F94F1482809156
:1062F0007402E82FFF2753E0EE0FFF1F5A95E1F7D6
:10630000E053F94F8481282F332743E0220F331FB6
:106310004A95E1F780917402E82FFF2793E0EE0F92
:10632000FF1F9A95E1F7E053F94F82818770822B26
:106330008093BB0085E88093BC002091740281E0CB
:1063400090E002C0880F991F2A95E2F720916F0212
:106350003091700282239323892B51F088EC96E0D0
:1063600090937A028093790288E080937B02E2C165
:1063700084E080C1E0917902F0917A02819180936A
:10638000BB0085E88093BC00F0937A02E093790229
:1063900080917B02815080937B02882309F4CAC1DB
:1063A00083E068C18091B900803351F58091770214
:1063B000882329F4809174028F5F80937702809103
:1063C0007402E82FFF2783E0EE0FFF1F8A95E1F7A5
:1063D000E053F94F838199278F7790708F3791051C
:1063E0007CF480917402E82FFF27EE0FFF1FEE0F61
:1063F000FF1FEE0FFF1FE053F94F83818F5F8383F1
:106400001092760284E98093BC008AE090E0909339
:10641000940180939301809174028F5F8093740242
:106420001092760262C18091B9008034A9F1809106
:106430007302E82FFF27EE0FFF1FEE0FFF1FEE0F77
:10644000FF1FE053F94F83818F778383809173021D
:106450008F5F80937302809173028C30A0F0109252
:10646000730210926E0210926D02809178028F5F1B
:10647000809378028C3038F010927802809171020B
:106480008D7F80937102809171028160809371028F
:106490001092760284E971C080917302E82FFF2781
:1064A000EE0FFF1FEE0FFF1FEE0FFF1FE053F94F20
:1064B00083818068838380917302E82FFF27EE0F2A
:1064C000FF1FEE0FFF1FEE0FFF1FE053F94F8081FC
:1064D00080FF2FC080917302E82FFF2753E0EE0F5B
:1064E000FF1F5A95E1F7E053F94F848199270097F0
:1064F00051F04097D9F588EC96E090937A0280931A
:10650000790288E031C080917302992743E0880FB7
:10651000991F4A95E1F78B52994F90937A02809395
:10652000790290917302809178029817E1F483E0E8
:106530001BC080917302992733E0880F991F3A9509
:10654000E1F78B52994F90937A0280937902809170
:10655000710281FD06C090917302809178029817B4
:1065600011F482E001C081E080937B0280917B0284
:10657000813011F485E801C085EC8093BC008091E6
:1065800077028093720210927702D4C0E091790270
:10659000F0917A028091BB00808380917902909182
:1065A0007A02019690937A028093790280917B021D
:1065B000815080937B02823010F085EC58C081308E
:1065C00011F485E854C08091710281FF2DC0809143
:1065D000ED0280FD1DC080917302E82FFF2723E0AC
:1065E000EE0FFF1F2A95E1F7E053F94F86818A3FAE
:1065F00079F480917302E82FFF2793E0EE0FFF1FDD
:106600009A95E1F7E053F94F8081816080830CC057
:1066100080917302E82FFF2783E0EE0FFF1F8A951A
:10662000E1F7E053F94F1082809173028F5F8093FE
:106630007302809173028C30A0F01092730210925A
:106640006E0210926D02809178028F5F80937802C3
:106650008C3038F010927802809171028D7F809397
:1066600071021092760284E98093BC0049C0809345
:10667000BC0086E0809376025DC088E9C4CD80913D
:106680007502880F805FBFCD809175029927813098
:10669000910561F0823091051CF4892B21F04AC0EC
:1066A000029739F047C080911401ADCD809113015C
:1066B000AACD80911201A7CD80E8A5CD10927602D7
:1066C00084E98093BC008AE090E0909394018093E9
:1066D000930180917502823088F4809175028F5FFA
:1066E0008093750282E180937602809171028E7FA1
:1066F0008093710285EA8093BC001CC010927502E1
:106700008091710281608093710214C010927602B0
:1067100084E98093BC008091710281608093710252
:106720008AE090E090939401809393011092740218
:1067300010927302FF91EF919F918F915F914F9112
:106740003F912F910F900FBE0F901F9018951F93A0
:10675000CF93DF93182F80911803882321F4809121
:106760000402882319F081E090E097C01D3008F002
:1067700092C01123B1F0E12FFF2723E0EE0FFF1F9E
:106780002A95E1F7E053F94F3597808135968823B4
:106790000CF081C03897808180FD03C083E090E0D9
:1067A0007CC08091C806823019F084E090E075C00A
:1067B00067E070E088EC96E00E94292B9091CF066C
:1067C000891719F085E090E068C080ED97E00E949D
:1067D0008E16EC018091710280FD05C0CE010E94F1
:1067E00097168823B9F3112319F48FEF90E00BC0AB
:1067F000212F33272150304081E090E002C0880FE4
:10680000991F2A95E2F79093700280936F02A1E09E
:10681000B0E0E0EDF6E040E050E06BE0CD01042EAA
:1068200002C0880F991F0A94E2F720916F023091FD
:10683000700282239323892B11F0118212826150FE
:106840004F5F5F4F389667FFE9CF10927402109246
:106850007602809171028E7F8093710285EA809327
:10686000BC008091710280FD05C0CE010E94971688
:106870008823B9F380916F0290917002892B29F0DF
:10688000CE010E949716882311F380916F02909198
:106890007002009711F082E090E0DF91CF911F919C
:1068A00008950F931F93CF93DF93982F8091180330
:1068B000882321F480910402882319F081E090E07C
:1068C00092C09D30A0F4992319F486E090E08BC02B
:1068D000C92FDD27FE0133E0EE0FFF1F3A95E1F7E8
:1068E000E053F94F35978081359687FD03C082E0EC
:1068F00090E079C03897808180FD03C083E090E00C
:1069000072C080ED97E00E948E168C01809171021A
:1069100080FD05C0C8010E9497168823B9F321970E
:1069200021E030E0C90102C0880F991FCA95E2F743
:1069300090936E0280936D02D901E0EDF6E040E0A5
:1069400050E06BE0CD01042E02C0880F991F0A941D
:10695000E2F720916D0230916E0282239323892BFE
:1069600011F01182128261504F5F5F4F389667FFBE
:10697000E9CF109273021092C8061092CF061092BF
:106980007602809171028E7F8093710285EA8093F6
:10699000BC008091710280FD05C0C8010E9497165D
:1069A0008823B9F380916D0290916E02892B29F0B2
:1069B000C8010E949716882311F38091C80682307F
:1069C00019F084E090E00FC067E070E088EC96E09A
:1069D0000E94292B9091CF06891719F085E090E04D
:1069E00002C080E090E0DF91CF911F910F91089558
:1069F00089E1A5E6B7E0E1E3F7E011821082329683
:106A000011961C921E921296815087FFF6CF10921B
:106A100087031092860310928903109288031092C4
:106A20008B0310928A0308951F920F920FB60F9254
:106A300011240F931F932F933F934F935F936F9363
:106A40007F938F939F93AF93BF93CF93DF93EF93F6
:106A5000FF9380916C0682FDCFC0409186005091DB
:106A6000870080917D0290917E02481B590B809196
:106A700086009091870090937E0280937D02CA01E8
:106A80008D549440A0917F02B0918002835F9A411F
:106A900078F480917F0280933007149714F010925D
:106AA000950181E090E09093800280937F0207C27D
:106AB000AD30B1050CF003C2CA018B5F9040845B1E
:106AC000914008F074C0425D5140FD01EA0FFB1F88
:106AD000EF5CF84F80819181FA01E81BF90BCF013F
:106AE000F7FF03C0909581959F4F06975CF48091C6
:106AF0002103883C20F480912103865F01C088EC4B
:106B000080932103FD01EA0FFB1FEF5CF84F8081AA
:106B100091819C01220F331F280F391F240F351F2D
:106B200037FF02C02D5F3F4FE901D595C795D59539
:106B3000C795CA0101968C179D0714F4219706C0CA
:106B400041505040C417D5070CF421968091210381
:106B5000833CE0F08D010A0F1B1FF801EF5CF84F3A
:106B6000808191819E01281B390BC90163E070E08F
:106B70000E94B378CB01880F991F860F971F0B597E
:106B8000184FD80111969C938E9307C0AA0FBB1F74
:106B9000AB59B84F11961C921E92E0917F02F09172
:106BA0008002EE0FFF1FEF5CF84FD183C08320916E
:106BB0007F02309180022F5F3F4F309380022093FD
:106BC0007F0280910201843108F079C125303105BE
:106BD00011F45D9A01C05D9880917F0290918002CE
:106BE0008630910511F45C9A01C05C98079711F406
:106BF0005B9A65C15B9863C14091860050918700A4
:106C00008091810290918202481B590B80918600ED
:106C1000909187009093820280938102CA018D54E3
:106C200094406091EB02835F9A4108F07AC06093D0
:106C30007C0280917C02843008F453C0909130072C
:106C400080917C02981709F04CC05091EC025B30A7
:106C500008F43FC0109295011092EB0240E05F31C2
:106C6000C0F0E42FFF27EE0FFF1F9F0129543D4F77
:106C7000DF01AF5CB84F8D919C91D9018D939C93AE
:106C8000DF01AB59B84F8D919C91EF52FD4F91832D
:106C90008083E42FFF27EE0FFF1F9F012F5C384FEB
:106CA000DF01AD57BD4F8D919C91D90111969C93F9
:106CB0008E93DF01A356BD4F8D919C91EB59F84FF8
:106CC00091838083842F8F5F482F8D3040F2809393
:106CD000EB028091EC028F3FB9F08F5F8093EC0262
:106CE00013C08091EC02853620F08AE08093EC029C
:106CF00002C01092EC02809102018A3011F08431BE
:106D000010F0289A01C0289881E08093EB028091CE
:106D10001803882309F0D3C080917C028093300748
:106D2000CEC06D3008F0A3C0CA018B5F9040845B79
:106D3000914008F07EC0425D5140E62FFF27EE0FE4
:106D4000FF1FED57FD4F80819181FA01E81BF90B80
:106D5000CF0105960B97B0F48091EC028A3120F0B8
:106D600080912103865F05C08B3028F0809121033C
:106D70008E5F8093210380912103893C18F088EC79
:106D800080932103E62FFF27EE0FFF1FED57FD4FE6
:106D9000808191819C01220F331F280F391F240FFE
:106DA000351F37FF02C02D5F3F4FE901D595C795CD
:106DB000D595C795CA0101968C179D0714F42197A4
:106DC00006C041505040C417D5070CF4219680915D
:106DD00021038E3BD8F0E62FFF27EE0FFF1FDF01C8
:106DE000AD57BD4F8D919C919E01281B390BC90158
:106DF00063E070E00E94B378CB01880F991F860F83
:106E0000971FE356FD4F9183808308C0E62FFF272D
:106E1000EE0FFF1FE356FD4F118210828091EB02AF
:106E2000E82FFF27EE0FFF1FED57FD4FD183C083E3
:106E300009C0809102018A3011F0843110F0289A43
:106E400001C0289880910201843188F48091EB027E
:106E5000853011F45D9A05C05D98863011F45C9A16
:106E600005C05C98873011F45B9A01C05B988091F3
:106E7000EB02843120F48F5F8093EB0220C08431D9
:106E8000F1F4809102018A3011F0843110F0289AD7
:106E900001C028988EE18093EB022CE0C5E6D7E094
:106EA000A7EBB2E0E1E3F7E08D919D9191838083C0
:106EB0003296198218822296215027FFF5CFFF9132
:106EC000EF91DF91CF91BF91AF919F918F917F9182
:106ED0006F915F914F913F912F911F910F910F9063
:106EE0000FBE0F901F901895EF92FF920F931F9374
:106EF000809125069927880F991F880F991F7C017B
:106F00000027F7FC0095102F809175039091760370
:106F1000A0917703B0917803BC01CD01A80197013E
:106F20000E94E8783093B5052093B40580916D03F5
:106F300090916E03A0916F03B0917003BC01CD01DD
:106F4000A80197010E94E8783093B7052093B60511
:106F50008091EB079091EC0797FD039695958795A7
:106F6000959587959093B9058093B8058091FB0717
:106F70009091FC0797FD0396959587959595879534
:106F80009093BB058093BA05809186039091870307
:106F90002091480230914902821B930B9093BD05CA
:106FA0008093BC058091130390911403A091150365
:106FB000B0911603BC01CD0125E030E040E050E087
:106FC0000E94E8783093BF052093BE05809142026D
:106FD000909143029093C1058093C0058091330343
:106FE000909134039093C5058093C40580911F014F
:106FF000909120019093C7058093C605809121034D
:1070000099279093C9058093C8058091F7079091BF
:10701000F807A091F907B091FA07209197013091F4
:1070200098014091990150919A01BC01CD010E94B3
:10703000E8783093CB052093CA058091D106992733
:107040009093CD058093CC058091D9069927909394
:10705000CF058093CE058091E10699279093D105C5
:107060008093D0058091E90699279093D30580936A
:10707000D20580911F02909120029093DD058093AC
:10708000DC0580916E0890916F089093E1058093E4
:10709000E00580917208909173089093E3058093C6
:1070A000E2058091740899279093EF058093EE058F
:1070B0008091FE039091FF039093F1058093F0057A
:1070C0008091FC039091FD039093F3058093F2056A
:1070D00080914604882321F480914704882321F07D
:1070E0008091B305816003C08091B3058E7F80934A
:1070F000B3051F910F91FF90EF9008951F93CF93C9
:10710000DF93182FEB01809118038823A1F411500D
:107110001F3F89F0D0932402C09323028091230261
:1071200090912402892BD1F7CE018C0F9D1F0E94D4
:10713000A316115078F7DF91CF911F910895CF9347
:10714000DF93809102018D3011F40E94951B109203
:107150007A0080914C0290914D029093B2078093F7
:10716000B10780914A0290914B029093A3078093BC
:10717000A20780914802909149029093F107809371
:10718000F0072091440230914502C901880F991FF0
:10719000880F991F820F931F820F931F9093EC0704
:1071A0008093EB072091460230914702C901880F76
:1071B000991F880F991F820F931F820F931F90931F
:1071C000FC078093FB078FEC80937A00A2E2B3E088
:1071D000CEE0D6E097E08991E82FFF27EE0FFF1F62
:1071E000EF5CF84F0190F081E02DE259FF4F1E1641
:1071F0001F061CF0E0E0F0E005C0EF3FF10514F0E1
:10720000EFEFF0E08C91282F3327E217F30714F407
:10721000815004C02E173F0714F48F5F8C93915058
:10722000119697FFD8CF809148069927AA27BB27A8
:10723000BC01CD0124EC39E040E050E00E947478BC
:10724000DC01CB018093B7019093B801A093B90101
:10725000B093BA01809149069927AA27BB27BC01A0
:10726000CD010E947478DC01CB018093B30190932F
:10727000B401A093B501B093B601DF91CF91089509
:10728000A0E0B0E0E6E4F9E30C940979882EC0E0D0
:10729000D0E07E016E0110924604469AD09381039D
:1072A000C0938003D0937F03C0937E03D0937B036E
:1072B000C0937A03D0938B03C0938A03D09389033E
:1072C000C0938803D0938703C09386031092A001D4
:1072D00010929F0110923C020E949F3884E690E039
:1072E0000E94B0160E949F388091160680FF10C041
:1072F0008091150190911601875B934038F480913D
:107300001501909116018E5E924010F40E943B1B75
:107310000FE18AE090E00E94B016809148029091BF
:107320004902C80FD91F80914C0290914D02E80E7E
:10733000F91E80914A0290914B02C80ED91E01504D
:1073400007FFE7CF9701205F3F4F3695279536958A
:10735000279530938B0320938A03C6014096969518
:107360008795969587959093890380938803609677
:10737000F5E0D695C795FA95E1F7D0938703C093CA
:107380008603909385038093840330938303209333
:107390008203882009F441C08091EB079091EC07AB
:1073A00097FF03C0909581959F4F6CE070E00E941D
:1073B000B3789B0170938103609380038091FB07F6
:1073C0009091FC0797FF03C0909581959F4F6CE0CB
:1073D00070E00E94B37870937F0360937E03809186
:1073E000FB059091FC0590937B0380937A03B90190
:1073F00084E090E00E946D2E60917E0370917F0387
:1074000086E090E00E946D2E60917A0370917B037C
:1074100088E090E00E946D2E65C084E090E00E94BC
:10742000682E909381038093800386E090E00E9411
:10743000682E90937F0380937E0388E090E00E9403
:10744000682E9C0190937B0380937A038091800344
:10745000909181038150984050F480917E039091E7
:107460007F038150984018F421503440D8F180E2D5
:107470009AE09F938F938BE692E19F938F93E09195
:107480002D04F0912E0409958091EB079091EC0763
:1074900097FF03C0909581959F4F6CE070E00E942C
:1074A000B37870938103609380038091FB07909180
:1074B000FC0797FF03C0909581959F4F6CE070E0AB
:1074C0000E94B37870937F0360937E038091FB05E5
:1074D0009091FC0590937B0380937A030F900F901B
:1074E0000F900F901092B2071092B1071092A3075D
:1074F0001092A2071092F1071092F00784E690E034
:107500000E94B01680914402909145029C01220F86
:10751000331F220F331F280F391F280F391F3093B5
:10752000EC072093EB0780914602909147028C0173
:10753000000F111F000F111F080F191F080F191F2F
:107540001093FC070093FB0780912506C82EDD24CD
:10755000EE24FF24442737FD4095542FC701B60180
:107560000E9474784B015C016093750370937603FD
:1075700080937703909378039801442737FD4095D3
:10758000542FC701B6010E947478DC01CB018093AF
:107590006D0390936E03A0936F03B093700380927A
:1075A000510390925203A0925303B09254038093DC
:1075B000490390934A03A0934B03B0934C0310925A
:1075C000450310924603109247031092480380919E
:1075D000170190911801A0911901B0911A0190938F
:1075E000FE058093FD0510923B0210923A02109224
:1075F00035031092360310923703109238038091AE
:1076000033039091340390933203809331030E94AB
:107610009E6382E390E09093240280932302809102
:1076200048069927AA27BB27BC01CD0124EC39E0E5
:1076300040E050E00E947478DC01CB018856954C04
:10764000AF4FBF4F8093B7019093B801A093B9019A
:10765000B093BA01809149069927AA27BB27BC019C
:10766000CD010E947478DC01CB018856954CAF4F58
:10767000BF4F8093B3019093B401A093B501B09331
:10768000B60110929C0110929B018091330390915E
:107690003403AA2797FDA095BA2F20919701309126
:1076A00098014091990150919A01BC01CD010E942D
:1076B0007478DC01CB018093F7079093F807A093CF
:1076C000F907B093FA0710922C0310922B0381E074
:1076D000809301010E9407688091ED02846080938D
:1076E000ED028FEF8093690810926A0880E2809320
:1076F0006B08C2E2D3E0AEE0B6E007E08D91E82F80
:10770000FF27EE0FFF1FEF5CF84F808191818259B8
:107710008993015007FFF2CF84E680932103809183
:107720002102882311F0469A579A80918A039091FA
:107730008B0380569940815C9B4228F080914604DF
:1077400081608093460480918803909189038056DC
:107750009940815C9B4228F080914604826080932E
:10776000460480918603909187038C5291408957FB
:10777000954028F08091460484608093460480916F
:107780008003909181038C529140835C914028F05A
:107790008091460488608093460480917E03909196
:1077A0007F038C529140835C914028F08091460485
:1077B00080618093460480917A0390917B0380508E
:1077C00092408355914028F08091460480628093D6
:1077D0004604ECE0CDB7DEB70C942579A3E1B0E028
:1077E000E4EFFBE30C940379809186039091870387
:1077F0002091480230914902821B930B9093F1072C
:107800008093F007809152029091530297FD079662
:107810009C0153E0359527955A95E1F73093B207CF
:107820002093B107809150029091510297FD0796E5
:1078300043E0959587954A95E1F79093A307809348
:10784000A2073093BD072093BC079093B5078093A0
:10785000B4078091EB079091EC07AC01440F551FE2
:10786000480F591F2091440230914502C901880FE9
:10787000991F880F991F820F931F820F931F480F24
:10788000591F57FF02C04D5F5F4F5595479555955E
:1078900047955093EC074093EB078091FB0790913D
:1078A000FC07AC01440F551F480F591F2091460299
:1078B00030914702C901880F991F880F991F820FC5
:1078C000931F820F931F480F591F57FF02C04D5F30
:1078D0005F4F55954795559547955093FC074093B5
:1078E000FB072091440230914502C901880F991F7E
:1078F000880F991F820F931F820F931F9C014427AB
:1079000037FD4095542F8091650390916603A091B7
:107910006703B0916803820F931FA41FB51F809364
:10792000650390936603A0936703B0936803209167
:10793000460230914702C901880F991F880F991F8D
:10794000820F931F820F931F9C01442737FD4095A0
:10795000542F8091610390916203A0916303B091D1
:107960006403820F931FA41FB51F8093610390933C
:107970006203A0936303B09364038091C607909160
:10798000C7072091440230914502820F931F9093C4
:10799000C7078093C6078091F3079091F407209161
:1079A000460230914702820F931F9093F407809311
:1079B000F30780917C0390917D03019690937D0362
:1079C00080937C038091FB059091FC0520917A03C4
:1079D00030917B03821B930B9C01442737FD40951C
:1079E000542F80915D0390915E03A0915F03B0914D
:1079F0006003820F931FA41FB51F80935D039093B4
:107A00005E03A0935F03B09360038FEC80937A00D2
:107A10001092110120914D0330914E0340914F037C
:107A20005091500329873A874B875C8729543B46FE
:107A3000414050402CF028E43BE641E050E00DC0CE
:107A400089859A85AB85BC85885B9449AE4FBF4FCD
:107A50004CF428EB34E94EEF5FEF2D833E834F83E8
:107A6000588708C089859A85AB85BC858D839E83A0
:107A7000AF83B88720915503309156034091570347
:107A8000509158032D873E874F87588B29543B468A
:107A9000414050402CF028E43BE641E050E00DC06E
:107AA0008D859E85AF85B889885B9449AE4FBF4F61
:107AB0004CF428EB34E94EEF5FEF29833A834B8394
:107AC0005C8308C08D859E85AF85B88989839A833C
:107AD000AB83BC83A091F007B091F107BB8BAA8B5D
:107AE000FD01CF01AA2797FDA095BA2FA0904503CD
:107AF000B0904603C0904703D0904803A80EB91E2B
:107B0000CA1EDB1EA0924503B0924603C0924703F3
:107B1000D0924803E090F707F090F8070091F9073A
:107B20001091FA07E80EF91E0A1F1B1FE092F707D3
:107B3000F092F8070093F9071093FA07F091080301
:107B4000F98BFF2309F098C180910703882309F07E
:107B500093C18091160686FF8FC18091A2079091F4
:107B6000A307AA2797FDA095BA2FBC01CD012981B3
:107B70003A814B815C810E9474789B01AC0197FF34
:107B800004C02150384F4F4F5F4F6BE055954795DC
:107B9000379527956A95D1F780919F01682E7724B4
:107BA00088249924CA01B901A40193010E94747820
:107BB000DC01CB018093960390939703A0939803E5
:107BC000B0939903B7FF04C08150904FAF4FBF4FA0
:107BD0001C012D013CE055944794379427943A9525
:107BE000D1F72092960330929703409298035092D7
:107BF00099038091B1079091B207AA2797FDA095AC
:107C0000BA2FBC01CD012D813E814F8158850E9444
:107C1000747897FF04C06150784F8F4F9F4F2BE0CF
:107C200095958795779567952A95D1F7A401930146
:107C30000E947478DC01CB0180939A0390939B039C
:107C4000A0939C03B0939D03B7FF04C08150904F55
:107C5000AF4FBF4F9C01AD018CE0559547953795CF
:107C600027958A95D1F720939A0330939B034093ED
:107C70009C0350939D03809196039091970390935A
:107C80009A078093990780919A0390919B03909310
:107C90009E0780939D0722193309440955092093B3
:107CA0009A0330939B0340939C0350939D03E20EF1
:107CB000F31E041F151FE092F707F092F8070093D8
:107CC000F9071093FA0780919E018823B1F457FFBA
:107CD00004C02F5F3F4F4F4F5F4F559547953795E6
:107CE0002795A21AB30AC40AD50AA0924503B092F6
:107CF0004603C0924703D09248032A893B89790101
:107D00000027F7FC0095102F80919A0390919B0318
:107D1000A0919C03B0919D03E80EF91E0A1F1B1F42
:107D2000C801B70129813A814B815C810E94747836
:107D30009B01AC0197FF04C02150384F4F4F5F4F5C
:107D4000BBE05595479537952795BA95D1F7809122
:107D5000A001A82EBB24CC24DD24CA01B901A601B0
:107D600095010E947478DC01CB0180938E0390937F
:107D70008F03A0939003B0939103B7FF04C0815089
:107D8000904FAF4FBF4F3C014D01ACE095948794AD
:107D900077946794AA95D1F760928E0370928F03BF
:107DA0008092900390929103C801B7012D813E818A
:107DB0004F8158850E94747897FF04C06150784FB6
:107DC0008F4F9F4FFBE09595879577956795FA952F
:107DD000D1F7A60195010E947478DC01CB01809354
:107DE000920390939303A0939403B0939503B7FFEA
:107DF00004C08150904FAF4FBF4FAC01BD01ECE0CC
:107E00007595679557954795EA95D1F740939203F5
:107E10005093930360939403709395032A893B894D
:107E200037FF03C0309521953F4F21343105E4F1F0
:107E3000D401C30197FE07C0B095A0959095819598
:107E40009F4FAF4FBF4F81389105A105B10584F415
:107E5000DB01CA0177FF07C0B095A0959095819589
:107E60009F4FAF4FBF4F81389105A105B105E4F099
:107E700081E080932D0318C010929E0710929D07F9
:107E800010929A07109299071092920310929303FE
:107E9000109294031092950310928E0310928F0308
:107EA000109290031092910380919203909193030A
:107EB000A0919403B0919503BC01CD0124E630E07C
:107EC00040E050E00E94E878E0908E03F0908F034D
:107ED000E21AF30AF092B007E092AF0780918E03A6
:107EE00090918F03A0919003B0919103BC01CD01BB
:107EF00024E630E040E050E00E94E878DA01C90171
:107F000020919203309193038C01021B130B109369
:107F1000A5070093A4078091970190919801A091E3
:107F20009901B0919A01BC01CD0128E631E040E011
:107F300050E00E9474782091F7073091F807409143
:107F4000F9075091FA07261737074807590764F0D1
:107F5000261B370B480B590B2093F7073093F80774
:107F60004093F9075093FA072091F7073091F807EB
:107F70004091F9075091FA0757FF0CC0260F371FA1
:107F8000481F591F2093F7073093F8074093F907CC
:107F90005093FA076091A2077091A3076E0D7F1DA1
:107FA0009B01442737FD4095542F809149039091C0
:107FB0004A03A0914B03B0914C03820F931FA41F5F
:107FC000B51F8093490390934A03A0934B03B0934A
:107FD0004C0380910D0390910E03681B790BCB012C
:107FE000AA2797FDA095BA2F29853A854B855C85F0
:107FF000820F931FA41FB51F80934D0390934E03D0
:10800000A0934F03B0935003C090B301D090B4013C
:10801000E090B501F090B601C816D906EA06FB0655
:10802000C4F488EA91E6A0E0B0E08C199D09AE099D
:10803000BF0980934D0390934E03A0934F03B093D9
:1080400050038093490390934A03A0934B03B0934A
:108050004C0322273327A9012C193D094E095F093A
:1080600080914D0390914E03A0914F03B091500326
:1080700082179307A407B507B4F4D701C601885A3D
:108080009146A040B04080934D0390934E03A0933F
:108090004F03B09350038093490390934A03A093F6
:1080A0004B03B0934C036091B1077091B207600F1E
:1080B000711F9B01442737FD4095542F8091510338
:1080C00090915203A0915303B0915403820F931FD8
:1080D000A41FB51F8093510390935203A0935303A1
:1080E000B093540380910B0390910C03681B790BA0
:1080F000CB01AA2797FDA095BA2F2D853E854F85E8
:108100005889820F931FA41FB51F80935503909326
:108110005603A0935703B0935803E090B701F09033
:10812000B8010091B9011091BA01E816F9060A07E1
:108130001B07C4F488EA91E6A0E0B0E08E199F091D
:10814000A00BB10B8093550390935603A093570354
:10815000B09358038093510390935203A093530319
:10816000B093540322273327A9012E193F09400B4E
:10817000510B8091550390915603A0915703B091F4
:10818000580382179307A407B507B4F4D801C701B1
:10819000885A9146A040B04080935503909356036F
:1081A000A0935703B09358038093510390935203C5
:1081B000A0935303B09354038091450390914603D9
:1081C000A0914703B09148038093590390935A03B9
:1081D000A0935B03B0935C03809155039091560389
:1081E000A0915703B0915803809375039093760341
:1081F000A0937703B093780380914D0390914E0341
:10820000A0914F03B091500380936D0390936E0340
:10821000A0936F03B0937003809151039091520328
:10822000A0915303B0915403809371039093720310
:10823000A0937303B09374038091490390914A0310
:10824000A0914B03B0914C038093690390936A0310
:10825000A0936B03B0936C0380911D0190911E015C
:1082600097FD079633E0959587953A95E1F79093BA
:10827000B2078093B10780911B0190911C0197FD7B
:10828000079623E0959587952A95E1F79093A307A4
:108290008093A20780914C0290914D020F9734F485
:1082A00088E19CEF9093B2078093B10780914C02D4
:1082B00090914D02079734F480E398EF9093B207C2
:1082C0008093B107209102012A30A9F480914C02D9
:1082D00090914D02835F934034F088EE93E0909349
:1082E000B2078093B10780914C0290914D028A5F52
:1082F0009340DCF014C080914C0290914D02815D5E
:10830000974034F088EE93E09093B2078093B107E2
:1083100080914C0290914D02805E974034F080ED48
:1083200097E09093B2078093B10780914A029091B1
:108330004B020F9734F488E19CEF9093A30780934E
:10834000A20780914A0290914B02079734F480E390
:1083500098EF9093A3078093A2072A30A9F4809105
:108360004A0290914B02835F934034F088EE93E091
:108370009093A3078093A20780914A0290914B02A9
:108380008A5F9340DCF014C080914A0290914B02C6
:10839000815D974034F088EE93E09093A30780933B
:1083A000A20780914A0290914B02805E974034F080
:1083B00080ED97E09093A3078093A207E091AA0134
:1083C000EE2309F4B7C040911D0150911E01809128
:1083D0009E0390919F03481B590B5093A503409314
:1083E000A40320911D0130911E01280F391F37FF72
:1083F00002C02F5F3F4F3595279530939F03209301
:108400009E03413851051CF080E890E005C04058BB
:108410005F4F34F480E89FEF9093A5038093A4030B
:108420008E2F9927A091A403B091A503A89FA00126
:10843000A99F500DB89F500D112457FF02C0415FF6
:108440005F4F14E0559547951A95E1F78091B10774
:108450009091B207840F951F9093B2078093B10754
:1084600060911B0170911C018091A0039091A10368
:10847000681B790B7093A3036093A20340911B01C7
:1084800050911C01480F591F57FF02C04F5F5F4FAB
:10849000559547955093A1034093A003613871050A
:1084A0001CF080E890E005C060587F4F34F480E80D
:1084B0009FEF9093A3038093A2032E2F33278091E5
:1084C000A2039091A303829FB001839F700D929F9E
:1084D000700D1124AB0177FF02C0415F5F4FE4E0F4
:1084E00055954795EA95E1F78091A2079091A307EA
:1084F000840F951F9093A3078093A207A29FC001AA
:10850000A39F900DB29F900D11249C0180911D019D
:1085100090911E01820F931F90931E0180931D0165
:1085200080911B0190911C01860F971F90931C0155
:1085300080931B010091B4071091B50780919907B2
:1085400090919A07101611065CF59C0197FF04C0E4
:1085500022273327281B390BC901AA2797FDA0958D
:10856000BA2F20919E01332744275527BC01CD0106
:108570000E9474789B01AC0197FF04C0215C3F4FBF
:108580004F4F5F4F76E055954795379527957A95EC
:10859000D1F78091AF079091B007820F931F27C04A
:1085A00097FF03C0909581959F4FAA2797FDA095AF
:1085B000BA2F20919E01332744275527BC01CD01B6
:1085C0000E9474789B01AC0197FF04C0215C3F4F6F
:1085D0004F4F5F4F66E055954795379527956A95BC
:1085E000D1F78091AF079091B007821B930B9093C6
:1085F000B0078093AF07E090BC07F090BD07809173
:108600009D0790919E071E141F045CF59C0197FF27
:1086100004C022273327281B390BC901AA2797FD3D
:10862000A095BA2F20919E01332744275527BC01DE
:10863000CD010E9474789B01AC0197FF04C0215CBE
:108640003F4F4F4F5F4F96E055954795379527958C
:108650009A95D1F78091A4079091A507820F931F57
:1086600027C097FF03C0909581959F4FAA2797FD3C
:10867000A095BA2F20919E01332744275527BC018E
:10868000CD010E9474789B01AC0197FF04C0215C6E
:108690003F4F4F4F5F4F86E055954795379527954C
:1086A0008A95D1F78091A4079091A507821B930B1F
:1086B0009093A5078093A4078091160687FF44C076
:1086C0009989992309F040C0809107038823E1F537
:1086D000A1E0EA16A1E0FA064CF08091B107909172
:1086E000B2078E0D9F1D805091400DC0B0E0EB167B
:1086F000BFEFFB0664F48091B1079091B2078E0D35
:108700009F1D80509F4F9093B2078093B107E1E087
:1087100001301E074CF08091A2079091A307800FB3
:10872000911F805091400CC0FFEF00301F0764F490
:108730008091A2079091A307800F911F80509F4FB7
:108740009093A3078093A207A2E2B3E06EE076E0E5
:1087500057E0FB018191BF01E82FFF27EE0FFF1FBC
:10876000EF5CF84F0190F081E02DE259FF4FEF3FB1
:10877000F10521F01CF0EFEFF0E004C0F7FF02C0BC
:10878000E0E0F0E04C91242F3327E217F307B1F03B
:10879000CF01821B930B97FD079613E09595879564
:1087A0001A95E1F7242F280F2C93822F9927E81789
:1087B000F90714F4215001C02F5F2C9351501196EA
:1087C00057FFC7CFE2E1CD5E0C941F79809118036B
:1087D000882301F58091ED028C7F8093ED02ABE45C
:1087E000B4E0E0EDF6E09BE080910402882309F418
:1087F0008C938D91818312829150389697FFF4CF9C
:1088000080910402882359F0809104028150809362
:10881000040205C08091ED0281608093ED02109208
:10882000740210927602809171028E7F80937102A1
:1088300085EA8093BC00089580911806883F38F03F
:10884000EFEFF0E0E81BF109EE5DFC4F80818093D3
:10885000B0018091B001882329F0843618F084E6B5
:108860008093B00180911A06883F38F0EFEFF0E076
:10887000E81BF109EE5DFC4F80818093AE01809191
:10888000AE01882329F0843618F084E68093AE0187
:1088900080912706883F38F0EFEFF0E0E81BF10900
:1088A000EE5DFC4F80818093A9018091A9018B30FE
:1088B00010F48AE002C08F3F11F48093A9018091E7
:1088C0005206883F38F0EFEFF0E0E81BF109EE5D6B
:1088D000FC4F80818093C8078091C807823010F4D4
:1088E00081E002C08F3F11F48093C8078091540645
:1088F000883F38F0EFEFF0E0E81BF109EE5DFC4F48
:1089000080818093EE078091EE07823010F481E041
:1089100002C08F3F11F48093EE0780913F06883F9D
:1089200038F0EFEFF0E0E81BF109EE5DFC4F8081DD
:108930008093C50780914006883F38F0EFEFF0E064
:10894000E81BF109EE5DFC4F808180939F078091C9
:108950004106883F38F0EFEFF0E0E81BF109EE5DEB
:10896000FC4F80818093CD0790911906983F18F4B1
:108970009093AF0109C0EFEFF0E0E91BF109EE5D64
:10898000FC4F80818093AF01983F18F49093AF0122
:1089900009C0EFEFF0E0E91BF109EE5DFC4F8081CB
:1089A0008093AF0180911C06883F38F0EFEFF0E034
:1089B000E81BF109EE5DFC4F80818093AD01809151
:1089C0001E06883F38F0EFEFF0E0E81BF109EE5D9E
:1089D000FC4F80818093AB0180912606883F38F060
:1089E000EFEFF0E0E81BF109EE5DFC4F8081809332
:1089F000AC0180912806883F38F0EFEFF0E0E81BEB
:108A0000F109EE5DFC4F80818093A80180912906D9
:108A1000883F38F0EFEFF0E0E81BF109EE5DFC4F26
:108A200080818093AA0180912A06883F38F0EFEF79
:108A3000F0E0E81BF109EE5DFC4F80818093A70117
:108A400080912B06883F38F0EFEFF0E0E81BF1094A
:108A5000EE5DFC4F80818093A60180913106883FB6
:108A600038F0EFEFF0E0E81BF109EE5DFC4F80819C
:108A70008093A40180913206883F38F0EFEFF0E058
:108A8000E81BF109EE5DFC4F808180930203809129
:108A90003306883F38F0EFEFF0E0E81BF109EE5DB8
:108AA000FC4F80818093010380913406883F38F029
:108AB000EFEFF0E0E81BF109EE5DFC4F8081809361
:108AC000000380913506883F38F0EFEFF0E0E81BB7
:108AD000F109EE5DFC4F80818093FF0280914D068D
:108AE000883F38F0EFEFF0E0E81BF109EE5DFC4F56
:108AF00080818093FE0280914E06883F38F0EFEF30
:108B0000F0E0E81BF109EE5DFC4F80818093FD02EF
:108B100080914F06883F38F0EFEFF0E0E81BF10955
:108B2000EE5DFC4F80818093FC0280915006883F6F
:108B300038F0EFEFF0E0E81BF109EE5DFC4F8081CB
:108B40008093FB0280913606883F38F0EFEFF0E02B
:108B5000E81BF109EE5DFC4F80818093A3018091B9
:108B60003A06883F38F0EFEFF0E0E81BF109EE5DE0
:108B7000FC4F80818093A20180914206883F38F0AB
:108B8000EFEFF0E0E81BF109EE5DFC4F8081809390
:108B9000A10180914506883F38F0EFEFF0E0E81B37
:108BA000F109EE5DFC4F80818093A0018091460623
:108BB000883F38F0EFEFF0E0E81BF109EE5DFC4F85
:108BC000808180939F0180914706883F38F0EFEFC6
:108BD000F0E0E81BF109EE5DFC4F808180939E017F
:108BE00080914C06883F38F0EFEFF0E0E81BF10988
:108BF000EE5DFC4F808180939D0180916706883FE8
:108C000038F0EFEFF0E0E81BF109EE5DFC4F8081FA
:108C10008093FE078091A401282F33272F5F3F4FB9
:108C20008CE398E2B9010E94B3787093B20160932B
:108C3000B101809124068093EF07809123068093F1
:108C4000B60790916906933320F181E08093FA0290
:108C5000983F58F0EFEFF0E0E91BF109EE5DFC4FB3
:108C60008081823310F41092FA0280913C08909136
:108C70003D0897FF08C08091FA02882321F0809177
:108C80004604806803C0809146048F778093460431
:108C900002C01092FA0280913C0890913D0897FF23
:108CA0001DC0809118038823C9F08091FA0288239F
:108CB000A9F080910801909109018F5F9F4F71F495
:108CC00088E99AE3909324028093230280E094EA57
:108CD00090930901809308011092FA028091FA02A0
:108CE000882339F08091A001823D18F4825E809340
:108CF000A0010895A5E3B0E0E0E8F6E40C94037960
:108D00000E94EE3B309102013C3010F4299A01C0E0
:108D10002998E0901903F0901A03F9A2E8A2809133
:108D2000B60799270A96E816F90614F499A388A3BA
:108D300080912103843608F05CC08091BA03909141
:108D4000BB03009731F001979093BB038093BA0364
:108D500007C0109218038091ED028F7E8093ED0280
:108D60003A3011F0343110F0289A01C028988091DF
:108D7000EE029091EF02895E9340C0F180912E0641
:108D8000282F332739A328A38091ED028061809397
:108D9000ED0280910A06A82FBB27AA0FBB1FFD0179
:108DA000EB59F84F1182108280910B06282F332740
:108DB000220F331FC9018B59984FFC011182108279
:108DC000AF5CB84F11961C921E922F5C384FD901A0
:108DD00011961C921E9280910D06E82FFF27EE0F30
:108DE000FF1FEF5CF84F11821082AAC21092180385
:108DF000A7C2809121038D3808F4A2C28091ED02B0
:108E00008F7E8093ED0290912F0682E3989FC001A0
:108E100011249093BB038093BA03E8A1F9A1B997F9
:108E20008CF080911803882369F08091EE02909174
:108E3000EF02FFEF8F3F9F0729F001969093EF021B
:108E40008093EE028091EE029091EF028F3F9105A8
:108E500009F038F510923D0310923E0310923F0343
:108E6000109240031092390310923A0310923B0380
:108E700010923C031092A6031092A7031092A8032D
:108E80001092A903109245031092460310924703D3
:108E9000109248038A3F910549F481E08093C00312
:108EA00005C08091ED0282608093ED0280910C06F6
:108EB000E82FFF27EE0FFF1FEF5CF84F80819181B5
:108EC000813591050CF441C120911803222309F04A
:108ED0003CC180910D06E82FFF27EE0FFF1FEF5CCE
:108EE000F84F808191818C3491050CF406C18091FA
:108EF000BC038F5F8093BC03893C08F426C13C30DF
:108F000010F4299801C0299A109218031092BC03FA
:108F10001092EF021092EE0230910A06E32FFF2723
:108F2000EE0FFF1FEF5CF84F808191818734910530
:108F3000B4F480910B06E82FFF27EE0FFF1FEF5CC4
:108F4000F84F808191810190F081E02DF7FF03C0FF
:108F5000F095E195FF4FE734F1050CF478C041E05E
:108F600020910B06A22FBB27AA0FBB1FAF5CB84FE7
:108F70008D919C9111978734910544F0E32FFF2741
:108F8000EE0FFF1FEF5CF84F808191818D919C91D6
:108F90008734910574F080910A06E82FFF27EE0FC1
:108FA000FF1FEF5CF84F80819181873491050CF0B1
:108FB00042E0E22FFF27EE0FFF1FEF5CF84F8081AA
:108FC00091818634910574F480910A06E82FFF2779
:108FD000EE0FFF1FEF5CF84F808191818734910580
:108FE0000CF043E0E22FFF27EE0FFF1FEF5CF84F7E
:108FF000808191818A5B9F4F74F480910A06E82FEB
:10900000FF27EE0FFF1FEF5CF84F808191818734BF
:1090100091050CF044E0E22FFF27EE0FFF1FEF5CFD
:10902000F84F808191818A5B9F4F74F480910A068A
:10903000E82FFF27EE0FFF1FEF5CF84F8081918133
:10904000863491050CF445E0842F0E94A92E80916E
:109050000B06E82FFF27EE0FFF1FEF5CF84F808114
:1090600091810190F081E02DF7FF03C0F095E1952B
:10907000FF4F7E97BCF480910A06E82FFF27EE0F82
:10908000FF1FEF5CF84F808191818A5B9F4F54F402
:1090900081E08093610488EE93E0909324028093B2
:1090A000230253C00E947F2F0E94722E80E00E94F4
:1090B0005E07809130060E9402768091160680FF3E
:1090C00010C08091150190911601875B934038F490
:1090D00080911501909116018E5E924010F40E94CD
:1090E0003B1B1092210280E00E94403981E0809376
:1090F000BF0380932102579A1FC080819181855BB5
:109100009F4F0CF58091BC038F5F8093BC03893C1B
:10911000E0F03C3010F4299801C0299A109218030D
:109120001092BC031092EF021092EE0281E00E94B6
:10913000403981E08093BF030E947F2F68E770E091
:109140000E947E3802C02093BC0380910C06E82F59
:10915000FF27EE0FFF1FEF5CF84F808191818B5A44
:109160009F4F0CF0EDC020911803E0910D062223D3
:1091700009F0CAC0FF27EE0FFF1FEF5CF84F808198
:109180009181855B9F4F0CF0BCC08091BD038F5FC8
:109190008093BD03893C08F4D3C02093BD03809124
:1091A0004604882309F0A6C08091BF03882309F4F0
:1091B000A1C081E090E09093EF028093EE0281E005
:1091C000809318031092A6031092A7031092A8038D
:1091D0001092A90310924503109246031092470380
:1091E00010924803109241031092420310924303DD
:1091F0001092440380912506E82EFF2400271127B2
:109200008091EB079091EC079C01442737FD409536
:10921000542FC801B7010E947478DC01CB01809300
:10922000550390935603A0935703B093580380912E
:10923000FB079091FC079C01442737FD4095542F74
:10924000C801B7010E947478DC01CB0180934D0303
:1092500090934E03A0934F03B093500380917503F6
:1092600090917603A0917703B09178038093510396
:1092700090935203A0935303B093540380916D03D2
:1092800090916E03A0916F03B09170038093490396
:1092900090934A03A0934B03B0934C0310923D0369
:1092A00010923E0310923F03109240031092390334
:1092B00010923A0310923B0310923C038091ED020E
:1092C00088608093ED02909168068FE0989F9001EE
:1092D00011248091330390913403820F931F68E629
:1092E00071E00E94B37897FD0196959587958093DC
:1092F000790326C08CED95E090932402809323029D
:109300001FC02093BD031CC0FF27EE0FFF1FEF5CA3
:10931000F84F808191818C34910584F08091BE0357
:109320008F5F8093BE03893C58F01092180310920F
:10933000BE031092EF021092EE0202C01092BE0322
:1093400080919501815080939501809195018F3F87
:1093500021F08091ED0284FF82C30E941C44809121
:10936000C9039091CA039C01220F331F280F391F94
:10937000A0900A06AA2DBB27AA0FBB1FFD01EF5C18
:10938000F84F90902006492D552780819181849F28
:10939000F001859FF00D949FF00D11242E0F3F1FBB
:1093A00037FF02C02D5F3F4FB901759567957595E1
:1093B0006795AB59B84F80912106082F11278D91E1
:1093C0009C91809F7001819FF00C909FF00C112464
:1093D0006E0D7F1D7093CA036093C9038091CB0308
:1093E0009091CC039C01220F331F280F391FB0909E
:1093F0000B06AB2DBB27AA0FBB1FFD01EF5CF84F7F
:1094000080819181849FF001859FF00D949FF00DE4
:1094100011242E0F3F1F37FF02C02D5F3F4FA901C0
:109420005595479555954795AB59B84F8D919C915A
:10943000809F7001819FF00C909FF00C11244E0DC5
:109440005F1D5093CC034093CB039E012F5F3F4F92
:109450008FE1E2ECF1E0D90101900D928A95E1F7FC
:109460008091FA02882309F448C0CB0177FD039666
:10947000DC01B595A795B595A795CA0157FD03964B
:10948000FC01F595E795F595E7958091EB01682F3F
:10949000772767FD70956A9F90016B9F300D7A9FCB
:1094A000300D112480910204482F552747FD509517
:1094B0004E9FC0014F9F900D5E9F900D1124280F6D
:1094C000391F37FF02C0295F3F4F03E035952795CD
:1094D0000A95E1F73093200320931F036E9F9001BC
:1094E0006F9F300D7E9F300D11244A9FC0014B9F0E
:1094F000900D5A9F900D112444C080916806082F4A
:109500001127DE01A00FB11FFD0197819093EB01A0
:10951000020F131FD8018C9180930204A92FBB273F
:10952000A7FDB095A69F9001A79F300DB69F300D67
:109530001124E82FFF27E7FDF095E49FC001E59F88
:10954000900DF49F900D1124280F391F37FF02C092
:10955000295F3F4F13E0359527951A95E1F7309332
:10956000200320931F03A49F9001A59F300DB49F5B
:10957000300D1124E69FC001E79F900DF69F900DDE
:109580001124281B390B37FF02C0295F3F4FF3E03E
:1095900035952795FA95E1F730931E0320931D0327
:1095A00080910D06E82FFF27EE0FFF1FEF5CF84FAD
:1095B00080819181909581959F4F90931C0380931A
:1095C0001B038330910514F0029705C0BFEF8E3F57
:1095D0009B0734F4029690931C0380931B0304C0F2
:1095E00010921C0310921B038091FE039091FF03C5
:1095F0002091FA033091FB03820F931FC0901F0349
:10960000D0902003C81AD90AD0922003C0921F0319
:109610008091FC039091FD032091F8033091F903B0
:10962000820F931F00911D0310911E03081B190B3D
:1096300010931E0300931D0380910C06E82FFF2753
:10964000EE0FFF1FEF5CF84FE080F180E8E7F0E0FD
:10965000EE0EFF1EF0921A03E09219038091A90109
:109660009927AA2797FDA095BA2FBC01CD010E948A
:109670001C78DC01CB0120E030E040E251E4BC0189
:10968000CD010E94BD77DC01CB01BC01CD010E9460
:10969000FF77DC01CB018093F5078091A8018093CF
:1096A000CE078091A7019927AA2797FDA095BA2FE9
:1096B000BC01CD010E941C78DC01CB0120E030E030
:1096C00040E251E4BC01CD010E94BD77DC01CB0139
:1096D000BC01CD010E94FF77DC01CB018093A9077B
:1096E0008091A6018093BE0780916D0480FF59C0D0
:1096F0008091FE07813808F454C080916604992750
:1097000087FD9095292D3327829FA001839F500DBF
:10971000929F500D1124C40ED51ED0922003C092EA
:109720001F0380916704992787FD9095829FB00160
:10973000839F700D929F700D1124060F171F1093B9
:109740001E0300931D0380916804282F332727FDF3
:10975000309580911B0390911C03820F931F90936F
:109760001C0380931B0380916A04282F332727FD55
:10977000309580911B069927289FD001299FB00D15
:10978000389FB00D1124B0939C01A0939B01809150
:10979000690499278E159F0524F490931A038093EA
:1097A00019038091190390911A0397FF04C0109236
:1097B0001A03109219038091160682FF02C01092BC
:1097C000CE0740911F0350912003CA0157FD039615
:1097D0009C01359527953595279537FF03C0309522
:1097E00021953F4F8091F2029091F30282179307E7
:1097F000B4F4CA0157FF03C0909581959F4F97FD20
:10980000039695958795959587959093F302809308
:10981000F2028536910544F084E690E001C001979C
:109820009093F3028093F20240911D0350911E0326
:10983000CA0157FD03969C013595279535952795C7
:1098400037FF03C0309521953F4F8091F0029091F2
:10985000F10282179307B4F4CA0157FF03C0909531
:1098600081959F4F97FD039695958795959587953B
:109870009093F1028093F0028536910544F084E6DE
:1098800090E001C001979093F1028093F0028091E3
:10989000ED0284FF08C01092F3021092F2021092BF
:1098A000F1021092F002EB2DFF27EE0FFF1FEF5C8D
:1098B000F84F40914306242F332780819181281748
:1098C000390744F480916A0682FF04C081E08093E6
:1098D000060313C0EB2DFF27EE0FFF1FEF5CF84FC1
:1098E000842F992720914406821B91092081318180
:1098F0002817390714F41092060340910B06E42F41
:10990000FF27EE0FFF1FEF5CF84F50914306852FA6
:10991000992722273327281B390B808191818217B1
:10992000930744F480916A0683FF04C081E080932A
:10993000050316C080910503882391F0E42FFF27CB
:10994000EE0FFF1FEF5CF84F809144069927851BAF
:109950009109208131818217930714F41092050335
:10996000EA2DFF27EE0FFF1FEF5CF84F40914306F3
:10997000242F3327808191812817390744F480915F
:109980006A0680FF04C081E08093030317C08091C2
:109990000303882399F0EA2DFF27EE0FFF1FEF5CEA
:1099A000F84F842F992720914406821B910920812A
:1099B00031812817390714F41092030340910A06E5
:1099C000E42FFF27EE0FFF1FEF5CF84F5091430687
:1099D000852F992722273327281B390B80819181D6
:1099E0008217930744F480916A0681FF04C081E0E6
:1099F0008093040316C080910403882391F0E42F20
:109A0000FF27EE0FFF1FEF5CF84F80914406992768
:109A1000851B9109208131818217930714F41092DC
:109A2000040380910603882319F4809105038111B2
:109A300081E08093070380910303882321F48091C0
:109A40000403882351F081E08093080310920703F8
:109A5000109206031092050302C0809308038091C0
:109A60000703882321F480910803882369F08091FB
:109A700042069927E8A1F9A18E179F0714F499A32C
:109A800088A381E080932D038091ED0284FF1AC0AA
:109A900010921C0310921B031092200310921F03BC
:109AA00010921E0310921D039AE59093F50788E724
:109AB0008093CE079093A9078093BE071092070367
:109AC000109208038091C1079091C207A091C3072B
:109AD000B091C407209175033091760340917703CC
:109AE00050917803820F931FA41FB51F8093C10765
:109AF0009093C207A093C307B093C4078091C9078E
:109B00009091CA07A091CB07B091CC0720906D032C
:109B100030906E0340906F0350907003820D931D40
:109B2000A41DB51D8093C9079093CA07A093CB07C6
:109B3000B093CC078091B8079091B907A091BA076C
:109B4000B091BB07E0907103F09072030091730332
:109B500010917403EAA2FBA20CA31DA38E0D9F1DFE
:109B6000A01FB11F8093B8079093B907A093BA07BD
:109B7000B093BB078091AA079091AB07A091AC0767
:109B8000B091AD07E0906903F0906A0300916B0318
:109B900010916C03EEA2FFA208A719A78E0D9F1DBE
:109BA000A01FB11F8093AA079093AB07A093AC07A7
:109BB000B093AD07F0900803FAA6FF2029F4809136
:109BC0000703882309F460C01092650310926603AE
:109BD000109267031092680310926103109262035F
:109BE00010926303109264031092C1071092C2078F
:109BF0001092C3071092C4071092C9071092CA07A7
:109C00001092CB071092CC071092B8071092B907A8
:109C10001092BA071092BB071092AA071092AB07D6
:109C20001092AC071092AD078091550390915603A6
:109C3000A0915703B091580380935103909352031E
:109C4000A0935303B093540380914D0390914E031E
:109C5000A0914F03B09150038093490390934A031E
:109C6000A0934B03B0934C03109239021092380228
:109C700010920C0310920B0310920E0310920D031E
:109C80000AA5002309F0F2C180910703882309F097
:109C9000EDC18091FB059091FC05815092402CF420
:109CA00080911803882309F4E1C190906908A0907D
:109CB00025066091EB077091EC077BAB6AAB809156
:109CC000FB079091FC079DAB8CAB9FEF991609F4B5
:109CD000D9C0BB24CC24DD24CA01B901A601950159
:109CE0000E94E87879018A01EAA9FBA9CF01AA2795
:109CF00097FDA095BA2FE81AF90A0A0B1B0BC201AF
:109D0000B101A60195010E94E87859016A012CA9C8
:109D10003DA9C901AA2797FDA095BA2FA81AB90A8B
:109D2000CA0ADB0A292C332427FC3094432C532CF9
:109D3000C801B701A20191010E94747897FF04C085
:109D400061507E4F8F4F9F4F3B014C0109E095942E
:109D50008794779467940A95D1F7C601B501A2015B
:109D600091010E94747897FF04C061507E4F8F4F1D
:109D70009F4F5B016C0119E0D594C794B794A794E9
:109D80001A95D1F78091F2029091F30281349105F6
:109D90003CF48091F0029091F10281349105D4F06D
:109DA000D401C30197FE03C00196A11DB11D3C0162
:109DB0004D019594879477946794D601C501D7FE99
:109DC00003C00196A11DB11D5C016D01D594C7941E
:109DD000B794A79480910D06E82FFF27EE0FFF1F81
:109DE000EF5CF84F808191810190F081E02DF7FFC9
:109DF00003C0F095E195FF4F7A97A4F0C401B30139
:109E000023E030E040E050E00E94E87839014A0168
:109E1000C601B50123E030E040E050E00E94E87860
:109E200059016A0180916B08282F332727FD30954F
:109E3000432F532F261537054805590514F43901CA
:109E40004A01992787FD9095909581959F4FAA2764
:109E500097FDA095BA2F681679068A069B0614F41A
:109E60003C014D012A153B054C055D0514F45901D3
:109E70006A01A816B906CA06DB060CF0CFC05C0161
:109E80006D01CCC0EA2CFF2400271127CA01B901BB
:109E9000A80197010E94E87839014A014AA95BA903
:109EA000CA01AA2797FDA095BA2F681A790A8A0ACB
:109EB0009B0AC201B101A80197010E94E8785901EB
:109EC0006A016CA97DA9CB01AA2797FDA095BA2F9D
:109ED000A81AB90ACA0ADB0AD401C30197FE03C053
:109EE0000F96A11DB11D3C014D01F4E0959487949E
:109EF00077946794FA95D1F7D601C501D7FE03C0D0
:109F00000F96A11DB11D5C016D01E4E0D594C794CD
:109F1000B794A794EA95D1F78091F2029091F30259
:109F2000813491053CF48091F0029091F1028134EA
:109F30009105A4F0C401B30123E030E040E050E01B
:109F40000E94E87839014A01C601B50123E030E0FA
:109F500040E050E00E94E87859016A0180910D06C6
:109F6000E82FFF27EE0FFF1FEF5CF84F80819181F4
:109F70000190F081E02DF7FF03C0F095E195FF4FD0
:109F80007A97A4F0C401B30123E030E040E050E050
:109F90000E94E87839014A01C601B50123E030E0AA
:109FA00040E050E00E94E87859016A0171E26716CA
:109FB0007104810491042CF070E2672E712C812CC5
:109FC000912C80EE68168FEF78068FEF88068FEF62
:109FD000980644F460EE662E6FEF762E6FEF862EB5
:109FE0006FEF962E91E2A916B104C104D1042CF0B2
:109FF00050E2A52EB12CC12CD12CA0EEAA16AFEFA9
:10A00000BA06AFEFCA06AFEFDA0644F440EEA42E6C
:10A010004FEFB42E4FEFC42E4FEFD42E8091550347
:10A0200090915603A0915703B09158038619970950
:10A03000A809B9098093550390935603A093570339
:10A04000B093580380914D0390914E03A0914F031C
:10A05000B09150038A199B09AC09BD0980934D0347
:10A0600090934E03A0934F03B09350038091380216
:10A07000909139028F3F910509F008F4C4C5BAA543
:10A08000BB2309F04EC580910703882309F049C519
:10A0900080912D03882309F044C5E0914B06EBA77E
:10A0A000EE2309F43EC58091C1079091C207A091AB
:10A0B000C307B091C407B7FF04C081509F4FAF4F93
:10A0C000BF4FE92EFA2E0B2F112707FD1A95E092AC
:10A0D000C107F092C2070093C3071093C407809191
:10A0E000C9079091CA07A091CB07B091CC07B7FFE1
:10A0F00004C081509F4FAF4FBF4F892F9A2FAB2F76
:10A10000BB27A7FDBA958CA79DA7AEA7BFA7809335
:10A11000C9079093CA07A093CB07B093CC0780914F
:10A120002506A82EBB24CC24DD2420916503309184
:10A1300066034091670350916803C601B5010E9410
:10A14000747897FF04C061507F4F8F4F9F4F672EE9
:10A15000782E892E992487FC9A94609265037092D8
:10A1600066038092670390926803209161033091A7
:10A1700062034091630350916403C601B5010E94DC
:10A18000747897FF04C061507F4F8F4F9F4F272EE9
:10A19000382E492E552447FC5A9420926103309260
:10A1A0006203409263035092640380915D03909137
:10A1B0005E03A0915F03B0916003B7FF04C08150BC
:10A1C0009F4FAF4FBF4F892F9A2FAB2FBB27A7FDB4
:10A1D000BA9580935D0390935E03A0935F03B09361
:10A1E0006003D801C70186199709A809B9098093A6
:10A1F000B2039093B303A093B403B093B50320913B
:10A200004A06E22EFF2400271127BC01CD01A80138
:10A2100097010E94E87859016A012093C1033093A5
:10A22000C2034093C3035093C4038CA59DA5AEA560
:10A23000BFA582199309A409B5098093B603909329
:10A24000B703A093B803B093B903BC01CD01A80133
:10A2500097010E94E8782093C5033093C60340938A
:10A26000C7035093C803D601C501D7FE04C081506F
:10A270009F4FAF4FBF4F892F9A2FAB2FBB27A7FD03
:10A28000BA9590930C0380930B0357FF04C02150A1
:10A290003F4F4F4F5F4FBB2757FDBA95A52F942FC8
:10A2A000832F90930E0380930D038091F20290917F
:10A2B000F30281349105DCF48091F0029091F10277
:10A2C00081349105A4F480910D06E82FFF27EE0F4D
:10A2D000FF1FEF5CF84F808191810190F081E02DAC
:10A2E000F7FF03C0F095E195FF4F7A97E4F0809176
:10A2F00069088F3FC1F480910B0390910C0397FD87
:10A3000001969595879590930C0380930B0380910C
:10A310000D0390910E0397FD019695958795909367
:10A320000E0380930D038091B8079091B907A09117
:10A33000BA07B091BB07B7FF04C081509F4FAF4F22
:10A34000BF4F892F9A2FAB2FBB27A7FDBA958093BC
:10A35000B8079093B907A093BA07B093BB07809151
:10A36000AA079091AB07A091AC07B091AD07B7FFDA
:10A3700004C081509F4FAF4FBF4F892F9A2FAB2FF3
:10A38000BB27A7FDBA958093AA079093AB07A0932C
:10A39000AC07B093AD078091750390917603A091BF
:10A3A0007703B09178032AA13BA14CA15DA1281BA2
:10A3B000390B4A0B5B0B2093AA033093AB034093FA
:10A3C000AC035093AD0380916D0390916E03A09107
:10A3D0006F03B0917003EEA0FFA008A519A5E81ABD
:10A3E000F90A0A0B1B0BE092AE03F092AF03009345
:10A3F000B0031093B1032093B2033093B30340939F
:10A40000B4035093B503E092B603F092B703009300
:10A41000B8031093B9038091510390915203A09116
:10A420005303B0915403821B930BA40BB50B809381
:10A43000510390935203A0935303B093540380911C
:10A44000490390914A03A0914B03B0914C038E199C
:10A450009F09A00BB10B8093490390934A03A093EB
:10A460004B03B0934C03FBA5FF23E1F020912B039A
:10A4700030912C03213831054CF080918603909166
:10A4800087030196909387038093860320583F4F5C
:10A490004CF48091860390918703019790938703F2
:10A4A0008093860310922C0310922B0381E090E09E
:10A4B0009093CE038093CD03A090B203B090B303EA
:10A4C000C090B403D090B503D601C501D7FE07C034
:10A4D00088279927DC018A199B09AC09BD0981509D
:10A4E0009240A040B04034F084E090E09093CE03DE
:10A4F0008093CD038091D3039091D403A091D50391
:10A50000B091D6032091C1073091C2074091C30793
:10A510005091C407821B930BA40BB50B815E914B2A
:10A52000AF4FBF4F8F539C49A040B04028F080915F
:10A530006A0889310CF4FFC031E0A31630E1B3069C
:10A5400030E0C30630E0D3060CF473C08091CF0333
:10A55000882309F46AC0D601C501D7FE07C0882741
:10A560009927DC018A199B09AC09BD099C01AD0141
:10A57000B7FF04C021503E4F4F4F5F4F09E0559544
:10A580004795379527950A95D1F78091CD039091FE
:10A59000CE03820F931F9093CE038093CD03D601F9
:10A5A000C501D7FE03C00796A11DB11D13E0B595E7
:10A5B000A795979587951A95D1F78093C1039093A6
:10A5C000C203A093C303B093C40389589341A0402E
:10A5D000B04064F088E893E1A0E0B0E08093C1036C
:10A5E0009093C203A093C303B093C4032091C1030B
:10A5F0003091C2034091C3035091C40357FF04C07C
:10A6000021503F4F4F4F5F4F232F342F452F55275A
:10A6100047FD5A9580910B0390910C03820F931F75
:10A6200090930C0380930B0306C081E08093CF03CB
:10A6300002C01092CF0350E0A51650EFB5065FEFB1
:10A64000C5065FEFD5060CF073C08091D003882358
:10A6500009F46AC0D601C501D7FE07C0882799272B
:10A66000DC018A199B09AC09BD099C01AD01B7FF4A
:10A6700004C021503E4F4F4F5F4FF9E0559547952D
:10A6800037952795FA95D1F78091CD039091CE0318
:10A69000820F931F9093CE038093CD03D601C50103
:10A6A000D7FE03C00796A11DB11DE3E0B595A795A0
:10A6B00097958795EA95D1F78093C1039093C2034C
:10A6C000A093C303B093C40388579C4EAF4FBF4FB2
:10A6D00064F488E79CEEAFEFBFEF8093C1039093E3
:10A6E000C203A093C303B093C4032091C10330916C
:10A6F000C2034091C3035091C40357FF04C02150CB
:10A700003F4F4F4F5F4F232F342F452F552747FD86
:10A710005A9580910B0390910C03820F931F909395
:10A720000C0380930B0311C081E08093D0030DC014
:10A730001092D0030AC01092CE031092CD0388EE7F
:10A7400093E09093BC018093BB017BA5272F332717
:10A750008091CD039091CE032817390724F43093CC
:10A76000CE032093CD03E0916A08EE2379F02E2FDB
:10A77000332727FD30958091CD039091CE03281784
:10A78000390724F43093CE032093CD034091B203D4
:10A790005091B3036091B4037091B50341385105F2
:10A7A0006105710574F080918A0390918B0320916B
:10A7B000CD033091CE03820F931F90938B03809330
:10A7C0008A0340585F4F6F4F7F4F74F480918A0324
:10A7D00090918B032091CD033091CE03821B930B7C
:10A7E00090938B0380938A0381E090E09093CE0353
:10A7F0008093CD03A090B603B090B703C090B80388
:10A80000D090B903D601C501D7FE07C08827992784
:10A81000DC018A199B09AC09BD0981509240A04016
:10A82000B04034F084E090E09093CE038093CD0369
:10A830008091D7039091D803A091D903B091DA0306
:10A840002091C9073091CA074091CB075091CC079E
:10A85000821B930BA40BB50B815E914BAF4FBF4F87
:10A860008F539C49A040B04018F0E9310CF4FFC070
:10A8700011E0A11610E1B10610E0C10610E0D1060A
:10A880000CF473C08091D103882309F46AC0D60107
:10A89000C501D7FE07C088279927DC018A199B09C3
:10A8A000AC09BD099C01AD01B7FF04C021503E4F6A
:10A8B0004F4F5F4F69E055954795379527956A95B6
:10A8C000D1F78091CD039091CE03820F931F909387
:10A8D000CE038093CD03D601C501D7FE03C00796F2
:10A8E000A11DB11D23E0B595A795979587952A954C
:10A8F000D1F78093C5039093C603A093C703B09389
:10A90000C80389589341A040B04064F088E893E1BF
:10A91000A0E0B0E08093C5039093C603A093C70363
:10A92000B093C8032091C5033091C6034091C7037B
:10A930005091C80357FF04C021503F4F4F4F5F4F06
:10A94000232F342F452F552747FD5A9580910D030E
:10A9500090910E03820F931F90930E0380930D032B
:10A9600006C081E08093D10302C01092D10330E091
:10A97000A31630EFB3063FEFC3063FEFD3060CF04C
:10A9800073C08091D203882309F46AC0D601C5013F
:10A99000D7FE07C088279927DC018A199B09AC09D3
:10A9A000BD099C01AD01B7FF04C021503E4F4F4F80
:10A9B0005F4F09E055954795379527950A95D1F74B
:10A9C0008091CD039091CE03820F931F9093CE037D
:10A9D0008093CD03D601C501D7FE03C00796A11D04
:10A9E000B11D13E0B595A795979587951A95D1F761
:10A9F0008093C5039093C603A093C703B093C80385
:10AA000088579C4EAF4FBF4F64F488E79CEEAFEF82
:10AA1000BFEF8093C5039093C603A093C703B09381
:10AA2000C8032091C5033091C6034091C7035091DC
:10AA3000C80357FF04C021503F4F4F4F5F4F232F94
:10AA4000342F452F552747FD5A9580910D0390913E
:10AA50000E03820F931F90930E0380930D0311C07A
:10AA600081E08093D2030DC01092D2030AC01092ED
:10AA7000CE031092CD0388EE93E09093BC018093B7
:10AA8000BB015BA5252F33278091CD039091CE0389
:10AA90002817390724F43093CE032093CD038091F7
:10AAA0006A08882379F0282F332727FD3095809175
:10AAB000CD039091CE032817390724F43093CE03A9
:10AAC0002093CD034091B6035091B7036091B80332
:10AAD0007091B903413851056105710574F0809199
:10AAE0008803909189032091CD033091CE03820F8A
:10AAF000931F909389038093880340585F4F6F4F53
:10AB00007F4FCCF480918803909189032091CD03ED
:10AB10003091CE03821B930B90938903809388031B
:10AB20000AC010920E0310920D0310920C031092A3
:10AB30000B0310922D038091CE07882341F41092CD
:10AB40000E0310920D0310920C0310920B038091D0
:10AB5000C1079091C207A091C307B091C407809329
:10AB6000D3039093D403A093D503B093D6038091DD
:10AB7000C9079091CA07A091CB07B091CC078093E9
:10AB8000D7039093D803A093D903B093DA0310921C
:10AB90006503109266031092670310926803109287
:10ABA0006103109262031092630310926403109287
:10ABB0005D0310925E0310925F0310926003109287
:10ABC000C1071092C2071092C3071092C4071092D7
:10ABD000C9071092CA071092CB071092CC071092A7
:10ABE000B8071092B9071092BA071092BB071092DB
:10ABF000AA071092AB071092AC071092AD07109203
:10AC000039021092380200911B0310911C03C801F5
:10AC100017FF04C088279927801B910B40976CF081
:10AC200088EE93E09093BC018093BB01809116065F
:10AC300084FD03C081E08093C003F0902206AF2C16
:10AC4000BB24CC24DD24B801882777FD8095982F7C
:10AC5000980117FF04C022273327201B310B4427FC
:10AC600037FD4095542F0E9474789B01AC01C601BA
:10AC7000B5010E94747897FF04C061507E4F8F4FDA
:10AC80009F4FF9E09595879577956795FA95D1F758
:10AC90009B018F2D9927809FD001819FB00D909FA0
:10ACA000B00D1124CD01B7FD039695958795959527
:10ACB0008795280F391F442737FD4095542F20933F
:10ACC000A6033093A7034093A8035093A903809150
:10ACD000450390914603A0914703B0914803821B1E
:10ACE000930BA40BB50B8093450390934603A0935D
:10ACF0004703B09348038155934CA040B04064F0A3
:10AD000080E593ECA0E0B0E0809345039093460388
:10AD1000A0934703B0934803809145039091460365
:10AD2000A0914703B0914803805B9C43AF4FBF4F56
:10AD300064F480EB9CE3AFEFBFEF80934503909307
:10AD40004603A0934703B0934803A0903303B09009
:10AD50003403A114B10409F478C18091160683FF6D
:10AD600074C18091750390917603A0917703B0919F
:10AD70007803B7FF04C081509E4FAF4FBF4F79E0BB
:10AD8000B595A795979587957A95D1F76C0197FF1B
:10AD900004C0D094C194D108D39480916D03909154
:10ADA0006E03A0916F03B0917003B7FF04C0815090
:10ADB0009E4FAF4FBF4F69E0B595A7959795879583
:10ADC0006A95D1F7BC0197FF03C0709561957F4FDD
:10ADD000C616D7060CF46B01B601D7FE02C0695F38
:10ADE0007F4F2B0153E0559447945A95E1F742E089
:10ADF000E42EF12C4E0C5F1C0CE112E0A00EB11EF3
:10AE000075010027F7FC0095102F24EE3DEFA20EF0
:10AE1000B31E8091F7079091F807A091F907B091C0
:10AE2000FA07609097017090980180909901909036
:10AE30009A01BC01CD01A40193010E94E878E21AB5
:10AE4000F30A040B150BC801B70128E631E040E016
:10AE500050E00E94E878DC01CB013CE4E32E3FEFB8
:10AE6000F32EE80EF91E0091BB011091BC010115F3
:10AE7000110589F539E1C316D1046CF580912B03D6
:10AE800090912C038E0D9F1D90932C0380932B0388
:10AE90008091C0038823F9F0C501AA2797FDA095EA
:10AEA000BA2FBC01CD01A40193010E947478DC018A
:10AEB000CB018093F7079093F807A093F907B0931D
:10AEC000FA07BC01CD010E94E87830933203209349
:10AED00031031092C003C70124E0880F991F2A95FF
:10AEE000E1F7B2010E94B378CB01AA2797FDA095A4
:10AEF000BA2F2091F7073091F8074091F907509148
:10AF0000FA07280F391F4A1F5B1F2093F70730935A
:10AF1000F8074093F9075093FA07F090AC016F2DB2
:10AF20007727C69EC001C79E900DD69E900D112416
:10AF300097FD4F966C0195E0D594C7949A95E1F7EB
:10AF40006C197D096B0177FD7AC00115110509F0B7
:10AF50006FC00091F2021091F3028091F002909183
:10AF6000F102080F191F17FF02C0095F1F4F83E08E
:10AF7000159507958A95E1F7005C1F4FCA01B90145
:10AF8000A40193010E94E878DA01C90120913103FC
:10AF900030913203442737FD4095542F821B930B89
:10AFA000A40BB50B845E9D4FAF4FBF4FBC01CD01CD
:10AFB00028E631E040E050E00E94E878DC01CB0177
:10AFC000845B90408C9DA0018D9D500D9C9D500DEB
:10AFD0001124CA01B8010E94B37883E0F89E600191
:10AFE0001124C616D70614F4B60108C0882799277D
:10AFF0008C199D09681779070CF4BC019B01442743
:10B0000037FD4095542F8091450390914603A091C0
:10B010004703B0914803820F931FA41FB51F80936D
:10B02000450390934603A0934703B09348030DC094
:10B03000015010401093BC010093BB0106C084EF87
:10B0400091E09093BC018093BB0180912D038823F4
:10B0500081F01092390310923A0310923B03109240
:10B060003C0310923D0310923E0310923F03109256
:10B070004003709008037720F1F48091CE07282FC9
:10B080003327442755278091750390917603A0912B
:10B090007703B0917803BC01CD010E947478DC0184
:10B0A000CB01BC01CD0128EF3AE240E050E00E9424
:10B0B000E878290102C04424552490900703992080
:10B0C000F1F48091CE07282F33274427552780910C
:10B0D0006D0390916E03A0916F03B0917003BC015A
:10B0E000CD010E947478DC01CB01BC01CD0128EFB9
:10B0F0003AE240E050E00E94E878190102C02224C0
:10B1000033248091A4079091A507893C91051CF0F8
:10B1100088EC90E005C088539F4F34F488E39FEF9C
:10B120009093A5078093A4078091AF079091B007F3
:10B13000893C91051CF088EC90E005C088539F4F36
:10B1400034F488E39FEF9093B0078093AF0780912A
:10B15000B1079091B207AA2797FDA095BA2F209129
:10B16000F507A22EBB24CC24DD24BC01CD01A60111
:10B1700095010E9474789B01AC018091A407909185
:10B18000A507AA2797FDA095BA2F17E0880F991F4A
:10B19000AA1FBB1F1A95D1F7280F391F4A1F5B1F23
:10B1A00057FF04C0215C3F4F4F4F5F4FA6E05595BE
:10B1B000479537952795AA95D1F77201E20EF31EB0
:10B1C000F092B207E092B1078091A2079091A30795
:10B1D000AA2797FDA095BA2FBC01CD01A601950124
:10B1E0000E9474789B01AC018091AF079091B007E9
:10B1F000AA2797FDA095BA2FF7E0880F991FAA1FDD
:10B20000BB1FFA95D1F7280F391F4A1F5B1F57FF45
:10B2100004C0215C3F4F4F4F5F4FE6E05595479587
:10B2200037952795EA95D1F78101020F131F1093E7
:10B23000A3070093A2078091F0079091F107880F70
:10B24000991FAA2797FDA095BA2F2091A907332708
:10B2500044275527BC01CD010E9474785B016C0125
:10B2600097FF08C08FE390E0A0E0B0E0A80EB91E01
:10B27000CA1EDB1E76E0D594C794B794A7947A953E
:10B28000D1F78091BE07282F332744275527809177
:10B29000590390915A03A0915B03B0915C03BC01E8
:10B2A000CD010E947478DC01CB01BC01CD0120EFFF
:10B2B00035E540E050E00E94E878B501620F731F69
:10B2C0007093F1076093F00791E0E91690E1F906B9
:10B2D00034F080E090E19093B2078093B1078091C1
:10B2E000B1079091B2078050904F34F480E090EF16
:10B2F0009093B2078093B1070150104134F080E081
:10B3000090E19093A3078093A2078091A207909168
:10B31000A3078050904F34F480E090EF9093A30700
:10B320008093A2076150704134F080E090E19093E7
:10B33000F1078093F0078091F0079091F10780501A
:10B34000904F34F480E090EF9093F1078093F007F2
:10B3500080910001482F552780911F019091200175
:10B360004817590794F420911F013091200168A1DA
:10B3700079A1649FC001659F900D749F900D112469
:10B38000B9010E949F7879A368A388A199A1880F29
:10B39000991F880F991F99A388A34091160640FF13
:10B3A00092C6992009F08FC6772009F08CC6CC246C
:10B3B000DD2446018091090390910A039093DF05F3
:10B3C0008093DE0520918C0330918D03211531058A
:10B3D00009F03FC080911501909116018959934061
:10B3E00058F087B5853F20F480913C02815011C010
:10B3F00081E08093E6034EC0809115019091160183
:10B400008436910508F587B58B30D0F080913C02E9
:10B410008F5F80933C029AE0890290011124809111
:10B420000506821B87BD8CE291E0909324028093F5
:10B4300023028EE591E090938D0380938C032AC0C4
:10B4400081E08093E50326C07092E5037092E603E5
:10B4500021C08091130390911403A0911503B09122
:10B46000160354E0880F991FAA1FBB1F5A95D1F7E6
:10B4700080933D0290933E02A0933F02B09340021E
:10B48000D0923B02C0923A022150304030938D035B
:10B4900020938C032091AF0141FF24C02233D8F4C4
:10B4A0008091C10181508093C1018F3FD9F51092E5
:10B4B0002E038091130390911403A0911503B09172
:10B4C000160380930F0390931003A0931103B0937E
:10B4D000120381E004C081E080932E0388EC809306
:10B4E000C10120C080919B0190919C01820F911D10
:10B4F00020911B063327829FF001839FF00D929FBE
:10B50000F00D1124CF01AA2797FDA095BA2F8093A3
:10B510000F0390931003A0931103B093120381E0E3
:10B5200080932E038091750390917603A091770309
:10B53000B0917803E0909701F09098010091990103
:10B5400010919A01BC01CD01A80197010E94E878F1
:10B5500059016A0180916D0390916E03A0916F0370
:10B56000B0917003BC01CD01A80197010E94E87859
:10B57000B901C5010E94BA6F3C01CC971CF04CE3A5
:10B58000642E712CC3010E94B56B3C0180E2809354
:10B59000960180912E03882309F421C48091ED0245
:10B5A00099279C012071307084FD19C460916C064C
:10B5B00060FD04C08091160681FD07C008A119A195
:10B5C0003093DC032093DB0397C18091ED0281FF70
:10B5D00069C14091BD015091BE01CA010F962091F1
:10B5E000190330911A0382179307ACF58091E50394
:10B5F000882389F58091E70381FF13C08D7F8093B5
:10B60000E7038091130390911403A0911503B09167
:10B61000160380930F0390931003A0931103B0932C
:10B6200012038091E70381608093E703241B350BAD
:10B630002F50304037FF03C0309521953F4F809108
:10B64000DB039091DC03820F931F9093DC038093C4
:10B65000DB038BE26EC0CA010F9728173907ACF5E0
:10B660008091E603882389F58091E70380FF13C06A
:10B670008E7F8093E7038091130390911403A09130
:10B680001503B091160380930F0390931003A093BA
:10B690001103B09312038091E70382608093E70364
:10B6A000241B350B215F3F4F37FF03C03095219599
:10B6B0003F4F8091DB039091DC03821B930B9093AF
:10B6C000DC038093DB038DE234C02091E703822FFB
:10B6D000992783709070892B59F12C7F2093E70371
:10B6E0001092DC031092DB032091130330911403BA
:10B6F000409115035091160320930F0330931003CC
:10B70000409311035093120361FF06C084EF91E050
:10B71000909324028093230280911703882341F49D
:10B7200023333105410551051CF081E08093170357
:10B730008DE3809396012091DB033091DC03C901F6
:10B7400037FF04C088279927821B930B81509240B2
:10B750000CF491C080911B069927289FA001299F76
:10B76000500D389F500D1124CA0160E075E00E9411
:10B77000B378CB01AA2797FDA095BA2F20910F038C
:10B78000309110034091110350911203280F391F7B
:10B790004A1F5B1F20930F03309310034093110344
:10B7A000509312031092DC031092DB03A09013035A
:10B7B000B0901403C0901503D0901603D601C501B4
:10B7C00080509440A040B04082179307A407B5076B
:10B7D0005CF4D601C50180509C4FAF4FBF4F281776
:10B7E00039074A075B0744F080930F0390931003D7
:10B7F000A0931103B093120380916C0681FF06C0E1
:10B800008BE490E0909324028093230280911F06A2
:10B81000882389F54091090350910A0357FF02C01C
:10B820004D5F5F4F559547955595479580911F0101
:10B8300090912001209100013327489FB001499F3A
:10B84000700D589F700D1124CB01B9010E94B3787F
:10B850007093BE016093BD01663471051CF486E4EB
:10B8600090E005C06739710534F086E990E0909367
:10B87000BE018093BD0180918C0390918D03892B33
:10B88000B9F18091130390911403A0911503B09125
:10B89000160380930F0390931003A0931103B093AA
:10B8A000120326C08091130390911403A0911503F5
:10B8B000B091160380599140A040B04080930F038F
:10B8C00090931003A0931103B093120380911F066D
:10B8D000882311F0992702C088E790E09093BE0179
:10B8E0008093BD0188A199A190930A0380930903D5
:10B8F0000091090310910A03A0901303B090140360
:10B90000C0901503D090160320910F0330911003BF
:10B9100040911103509112032A153B054C055D051A
:10B9200024F080916C0680FD9CC280918C039091E4
:10B930008D03892B39F00091090310910A03CC245F
:10B94000DD24C9C0D601C501821B930BA40BB50B26
:10B950008093AA039093AB03A093AC03B093AD0381
:10B960008230E0E89E07EFEFAE07EFEFBE072CF462
:10B9700081E090E8AFEFBFEF09C08F5F9F47A04025
:10B98000B04064F08FEF9FE7A0E0B0E08093AA039F
:10B990009093AB03A093AC03B093AD03C090AA0304
:10B9A000D090AB038091AE01282F33274427552731
:10B9B0008091AA039091AB03A091AC03B091AD0329
:10B9C000BC01CD010E94747897FF04C0615E7F4F77
:10B9D0008F4F9F4F25E095958795779567952A9589
:10B9E000D1F76093AA037093AB038093AC03909359
:10B9F000AD0365302EEF72072FEF82072FEF92070E
:10BA00002CF484E09EEFAFEFBFEF09C060507440AC
:10BA10008040904064F080E094E0A0E0B0E080934B
:10BA2000AA039093AB03A093AC03B093AD038090B3
:10BA3000AA039090AB0320913A0230913B0237FF6A
:10BA400002C0295F3F4F83E0359527958A95E1F73E
:10BA50004FEF223834071CF421E83FEF05C02038AF
:10BA6000310514F020E830E0C901AA2797FDA09520
:10BA7000BA2F2091B001332744275527BC01CD01AF
:10BA80000E94747897FF04C06D5F7F4F8F4F9F4F68
:10BA9000B2E09595879577956795BA95D1F79B0113
:10BAA0005FEF613075071CF420E03FEF06C06F3F89
:10BAB000710519F014F020E031E08091E70388234C
:10BAC00041F0C90137FD03969C01359527953595C1
:10BAD0002795820E931E2091AD01222309F454C0B4
:10BAE000609135037091360380913703909138034C
:10BAF00097FF04C061587F4F8F4F9F4FF7E0959598
:10BB0000879577956795FA95D1F733274427552779
:10BB10000E94747897FF04C0615E7F4F8F4F9F4FE4
:10BB2000E5E09595879577956795EA95D1F76093C8
:10BB3000AA037093AB038093AC039093AD03613879
:10BB4000AFEF7A07AFEF8A07AFEF9A072CF480E8E0
:10BB50009FEFAFEFBFEF0AC06F3F71058105910501
:10BB600069F064F080E091E0A0E0B0E08093AA0387
:10BB70009093AB03A093AC03B093AD038091AA0361
:10BB80009091AB03880E991E8091AB01282F33272B
:10BB900080916D08992787FD9095289FF001299F36
:10BBA000F00D389FF00D11249F01F7FF02C02158BE
:10BBB0003F4F220F232F221F330BFFEF21383F0768
:10BBC0001CF420E83FEF06C02F3F310519F014F0B8
:10BBD00020E031E0820E931EC401AA2797FDA095B4
:10BBE000BA2FE0900903F0900A039701442737FD2C
:10BBF0004095542FBC01CD010E94747897FF04C07A
:10BC000061507E4F8F4F9F4F59E09595879577955F
:10BC100067955A95D1F7061B170B8091DB0390911E
:10BC2000DC03892B09F060C01E141F040CF05CC0FB
:10BC30009601D7FE03C0309521953F4F2D33310536
:10BC400040F48091DF039091E0038017910774F531
:10BC500026C02C53304045E0369527954A95E1F7AC
:10BC60002031310510F02FE030E04091DF0350919A
:10BC7000E0031C141D04E4F480E190E0821B930BAC
:10BC8000489F9001499F300D589F300D112494E03A
:10BC9000369527959A95E1F72017310720F5809181
:10BCA000BF019091C00108171907F4F08C011CC066
:10BCB000205F3F4F8091BF019091C001829FB001F2
:10BCC000839F700D929F700D11249B0184E0369527
:10BCD00027958A95E1F74017510714F08A0104C0AF
:10BCE0000217130708F08901C801AA2797FDA0953C
:10BCF000BA2F1DE0880F991FAA1FBB1F1A95D1F7F5
:10BD00009301442737FD4095542FBC01CD010E947B
:10BD1000E8782093AE033093AF034093B003509381
:10BD2000B1030091AE031091AF038091DD039091B8
:10BD3000DE039C01220F331F280F391F200F311FF4
:10BD400037FF02C02D5F3F4FA90155954795559587
:10BD500047955093DE034093DD0380911706282F0B
:10BD60003327220F331F220F331F241735076CF49C
:10BD70008091EF07282F3327220F331F220F331F05
:10BD8000205530404217530724F03093DE032093B0
:10BD9000DD0380916C0680FF0DC08091DD039091E2
:10BDA000DE03A8A1B9A18A179B0724F0B093DE0394
:10BDB000A093DD0328A139A12E193F0937FF02C046
:10BDC0002D5F3F4F3595279535952795E091DD03FC
:10BDD000F091DE03E20FF31FF9A3E8A342C08091C4
:10BDE0001F06882301F56091090370910A0377FF0C
:10BDF00002C06D5F7F4F759567957595679540910A
:10BE00001F015091200180910001282F3327649F4A
:10BE1000C001659F900D749F900D1124B9010E947F
:10BE2000B378CB0101C099279093BE018093BD01E7
:10BE30008091BD019091BE01873491051CF486E488
:10BE400090E005C08639910534F086E990E0909342
:10BE5000BE018093BD01E8A0F9A0F092DE03E0925C
:10BE6000DD038091ED0299279C012270307081FFE3
:10BE70001CC18091E1039091E203A091E303B09192
:10BE8000E4030097A105B10521F0809117038130EB
:10BE9000B1F408A119A1C801AA2797FDA095BA2F4E
:10BEA0002EE0880F991FAA1FBB1F2A95D1F78093F8
:10BEB000E1039093E203A093E303B093E403809142
:10BEC0001703813019F482E08093170328A139A168
:10BED000C901AA2797FDA095BA2F9301442737FDE2
:10BEE0004095542FBC01CD010E947478DC01CB0138
:10BEF0008093AE039093AF03A093B003B093B103CC
:10BF0000B7FF04C08150904EAF4FBF4F5C016D0131
:10BF10000DE0D594C794B794A7940A95D1F7A09251
:10BF2000AE03B092AF03C092B003D092B103609160
:10BF3000EE027091EF023FE0603A730750F5809196
:10BF4000E1039091E203A091E303B091E4039C012B
:10BF5000AD011AE056954795379527951A95D1F773
:10BF6000821B930BA40BB50BA6019501F4E0220FE5
:10BF7000331F441F551FFA95D1F7820F931FA41F3B
:10BF8000B51F8093E1039093E203A093E303B09382
:10BF9000E40360547F4118F58091E1039091E2033E
:10BFA000A091E303B091E4039C01AD01ECE0569550
:10BFB000479537952795EA95D1F7821B930BA40BEC
:10BFC000B50BA601950172E0220F331F441F551FC8
:10BFD0007A95D1F7820F931FA41FB51F29C08091B6
:10BFE0003A0290913B0280913A0290913B0297FF76
:10BFF00003C0909581959F4F843691050CF58091F3
:10C00000E1039091E203A091E303B091E4039C016A
:10C01000AD016EE056954795379527956A95D1F70E
:10C02000821B930BA40BB50B8A0D9B1DAC1DBD1D74
:10C030008093E1039093E203A093E303B093E403BE
:10C040008091E1039091E203A091E303B091E403B6
:10C050002EE0B695A795979587952A95D1F7909359
:10C060000A038093090340911D06442399F0552744
:10C070009C01BA010E94B378C901861B970B90936B
:10C08000E0038093DF03260F371F3093C001209316
:10C09000BF0119C01092E0031092DF038FEF93E00D
:10C0A0009093C0018093BF010EC0109217031092AD
:10C0B000E1031092E2031092E3031092E403309341
:10C0C0000A03209309035091B60758AB252F332755
:10C0D000220F331F220F331F285D3F4F68A179A124
:10C0E0002617370714F039A328A37091EF0779AB0F
:10C0F000872F9927880F991F880F991F8055904087
:10C10000A8A1B9A18A179B0714F499A388A38091C9
:10C110007202882321F4809174088F3FA1F08091EE
:10C12000EE029091EF020297C09768F4E8A1F9A19E
:10C130001E161F0644F481E090E09093EF02809376
:10C14000EE0239A328A3E8A0F9A0F092C305E0927B
:10C15000C2058091A6039091A703A091A803B09176
:10C16000A90312E0880F991FAA1FBB1F1A95D1F7C8
:10C17000C090F007D090F107C81AD90A8701013A98
:10C1800011058CF0C701F7FC0196959587958C15E4
:10C190009D050CF46C01909581959F4FC816D906AA
:10C1A00094F46C0110C011E5C116D1041CF0E0E557
:10C1B000CE2ED12C20EBC2162FEFD20624F470EB3A
:10C1C000C72E7FEFD72E49A9242F3327220F331FE5
:10C1D000220F331FC90168A179A1861B970B8C150B
:10C1E0009D050CF46C0188A199A1821B930BC816C4
:10C1F000D9060CF46C018091B1079091B20760915F
:10C200001F0370912003861B970B9093C0078093A8
:10C21000BF07A090CE0720913D0330913E0340918F
:10C220003F0350914003AA2041F0461A570AC20129
:10C23000AA2797FDA095BA2F04C0AA2797FDA0951D
:10C24000BA2F280F391F4A1F5B1F20933D033093DD
:10C250003E0340933F035093400380913D039091F0
:10C260003E03A0913F03B091400381509A4FA040FC
:10C27000B04064F080E09AEFA0E0B0E080933D032E
:10C2800090933E03A0933F03B093400380913D03FE
:10C2900090913E03A0913F03B0914003805096409F
:10C2A000AF4FBF4F64F480E096E0AFEFBFEF8093F5
:10C2B0003D0390933E03A0933F03B0934003B0909F
:10C2C0002C062B2D33278091BF079091C007289F04
:10C2D0007001299FF00C389FF00C11249701F7FE94
:10C2E00002C0295F3F4F790153E0F594E7945A95D6
:10C2F000E1F70091B1011091B2019801442737FD97
:10C300004095542F80913D0390913E03A0913F03AF
:10C31000B0914003BC01CD010E94E878E20EF31E0B
:10C3200090909D01692D7727882799279601D7FE40
:10C3300004C0222733272C193D0937FF02C02F5F85
:10C340003F4F3595279548A159A1240F351F442704
:10C3500037FD4095542F0E94747897FF04C0615CAC
:10C360007F4F8F4F9F4F26E09595879577956795DF
:10C370002A95D1F79B016E157F050CF47B01309552
:10C3800021953F4FE216F3060CF479018091A20744
:10C390009091A30760911D0370911E03861B970B5C
:10C3A0009093A1078093A0072091390330913A031D
:10C3B00040913B0350913C03AA2041F0261A370AD2
:10C3C000C101AA2797FDA095BA2F04C0AA2797FDFF
:10C3D000A095BA2F280F391F4A1F5B1F20933903DE
:10C3E00030933A0340933B0350933C0380913903CD
:10C3F00090913A03A0913B03B0913C0381509A4F36
:10C40000A040B04064F080E09AEFA0E0B0E08093FC
:10C41000390390933A03A0933B03B0933C0380917C
:10C42000390390913A03A0913B03B0913C038050B3
:10C430009640AF4FBF4F64F480E096E0AFEFBFEFA0
:10C440008093390390933A03A0933B03B0933C034A
:10C450002B2D33278091A0079091A107289FD00111
:10C46000299FB00D389FB00D11249D01B7FF02C068
:10C47000295F3F4F5901B3E0B594A794BA95E1F70E
:10C480009801442737FD4095542F809139039091AE
:10C490003A03A0913B03B0913C03BC01CD010E9443
:10C4A000E878A20EB31E692D772788279927960171
:10C4B000D7FE04C0222733272C193D0937FF02C0BD
:10C4C0002F5F3F4F35952795E8A1F9A12E0F3F1F0C
:10C4D000442737FD4095542F0E94747897FF04C07D
:10C4E000615C7F4F8F4F9F4FF6E0959587957795CD
:10C4F0006795FA95D1F79B016A157B050CF45B01F2
:10C50000309521953F4FA216B3060CF459012090A7
:10C51000FC02E0ED6E2EE6E07E2E77E8872E76E0D8
:10C52000972E6BE0362E5FEC452E57E0552ED4014A
:10C530002C9112160CF0ECC0203419F408A119A1AA
:10C540001EC0E8A1F9A1CF01AA2797FDA095BA2F97
:10C55000332727FD3095432F532FBC01CD010E9477
:10C56000747897FF04C0615C7F4F8F4F9F4F46E008
:10C5700095958795779567954A95D1F78B01F40145
:10C580002181203419F40E0D1F1D22C0203C19F406
:10C590000E191F091DC0C701AA2797FDA095BA2F24
:10C5A000332727FD3095432F532FBC01CD010E9427
:10C5B000747897FF04C0615C7F4F8F4F9F4F36E0C8
:10C5C00095958795779567953A95D1F7060F171F3B
:10C5D000F4012281203419F40A0D1B1D22C0203CD5
:10C5E00019F40A191B091DC0C501AA2797FDA095BA
:10C5F000BA2F332727FD3095432F532FBC01CD0190
:10C600000E94747897FF04C0615C7F4F8F4F9F4FEB
:10C6100026E095958795779567952A95D1F7060F2A
:10C62000171FF4012381203419F40C0D1D1D22C0A5
:10C63000203C19F40C191D091DC0C601AA2797FD3D
:10C64000A095BA2F332727FD3095432F532FBC01D8
:10C65000CD010E94747897FF04C0615C7F4F8F4FBB
:10C660009F4FB6E09595879577956795BA95D1F7E1
:10C67000060F171FD2018D919C91801791075CF4D2
:10C68000BC01600F711F77FF02C06F5F7F4F8B018E
:10C690001595079511C0B1E0B21528F0000F111FD4
:10C6A000081B190B09C0222D3327801B910BB901E0
:10C6B0000E94B378060F171FE8A98E2F9927880FBD
:10C6C000991F880F991F8017910754F4F9A98F2F8C
:10C6D0009927880F991F880F991F081719070CF0C1
:10C6E0008C01C80117FD03969595879595958795BB
:10C6F000F3018183880F991F880F991F9801281BC8
:10C70000390BC901880F8283D2010D931C9303C09A
:10C71000F301118212823A9402E010E0400E511EA1
:10C7200024E030E0820E931E48E050E0640E751E57
:10C7300037FEFDCEE2E1CB5C0C941F798091F403CF
:10C740009091F503A091F603B091F7038093EC0369
:10C750009093ED03A093EE03B093EF038091F00369
:10C760009091F103A091F203B091F3038093E80359
:10C770009093E903A093EA03B093EB03089510921A
:10C78000FF031092FE031092FD031092FC03089524
:10C7900084B1806A84B93D9A82E58CBD1DBC459AFE
:10C7A00081E0809301088AEA8093120883E88093ED
:10C7B00013088AE080931408109216081092150846
:10C7C000109218081092170810926C0810923408F2
:10C7D000089530910108332309F085C00DB407FE98
:10C7E00082C084E080932202459A2EB58091030492
:10C7F00099278130910589F0823091051CF4892BAD
:10C8000021F03EC00297B9F03BC03093330820932B
:10C8100004042138A9F581E008C0253549F4809148
:10C820000404820F8093040482E08093030428C0F0
:10C830003093030425C080913308E82FFF27E15B84
:10C84000F74F20838F5F80933308909104048A31DF
:10C85000A0F0291769F48AE1AFE4B8E0E5E3F8E075
:10C860000D9001928A95E1F781E08093340802C02F
:10C87000309334081092030403C0920F9093040481
:10C8800020911108203208F028C0459800000000CF
:10C890000000000000000000000000000000000098
:10C8A0000000000000000000000000000000000088
:10C8B000000000000000000000000000E0910A08F5
:10C8C000F0910B08E20FF11D80818EBD809131083F
:10C8D0009081890F8093310803C081E08093010823
:10C8E0002F5F209311080895EF92FF920F931F93EB
:10C8F000809125069927880F991F880F991F7C0121
:10C900000027F7FC0095102F809175039091760316
:10C91000A0917703B0917803BC01CD01A8019701E4
:10C920000E94E878309316082093150880916D03D3
:10C9300090916E03A0916F03B0917003BC01CD0183
:10C94000A80197010E94E8783093180820931708EF
:10C950002091F7073091F8074091F9075091FA07B5
:10C96000DA01C901E3E0880F991FAA1FBB1FEA95EE
:10C97000D1F7820F931FA41FB51F820F931FA41F0F
:10C98000B51F2091970130919801409199015091E4
:10C990009A01BC01CD010E94E87830931E082093D3
:10C9A0001D08809186039091870320914802309161
:10C9B0004902821B930B9093240880932308E091F3
:10C9C0007C03F0917D038091C6079091C707BF015A
:10C9D0000E94B378CB019B01220F331F220F331F1C
:10C9E000280F391F280F391F37FF02C02D5F3F4F17
:10C9F000359527953595279530931A082093190872
:10CA00008091F3079091F407BF010E94B3789B01D6
:10CA1000220F331F220F331F260F371F260F371FFA
:10CA200037FF02C02D5F3F4F3595279535952795E8
:10CA300030931C0820931B0810927D0310927C03F6
:10CA40001092C7071092C6071092F4071092F307CE
:10CA50008091140899278D30910509F466C08E30B5
:10CA600091055CF48B30910509F48EC08C309105F2
:10CA70000CF00FC10A9761F0A8C18F30910509F43D
:10CA80007CC18F3091050CF45CC1409799F19DC138
:10CA900080910203809325088091010380932608EA
:10CAA00080910003809327088091FF0280932808DB
:10CAB0008091FE02809329088091FD0280932A08CC
:10CAC0008091FC0280932B088091FB0280932C08BC
:10CAD0008091ED0280932D088091ED02837F8093F9
:10CAE000ED020E947F2F80932E088091790380931E
:10CAF0002F086BC180916E0890916F089093260863
:10CB0000809325088091720890917308909328086B
:10CB10008093270880911F0190912001809329081C
:10CB20008091000180932A0850C18091570680931C
:10CB30002508809158068093260880915906809395
:10CB4000270880915A068093280880915B0680937D
:10CB5000290880915F0680932A088091600680935F
:10CB60002B088091610680932C0880916406809345
:10CB70002D088091620680932E0880916306809331
:10CB80002F0880916506DAC0F89480910C06E82F92
:10CB9000FF27EE0FFF1FEF5CF84F0190F081E02DB3
:10CBA000E038F1051CF0EFE7F0E006C02FEFE138C8
:10CBB000F20714F4E1E8FFEFE093250880910D06F9
:10CBC000E82FFF27EE0FFF1FEF5CF84F0190F08179
:10CBD000E02DE038F1051CF0EFE7F0E006C06FEF64
:10CBE000E138F60714F4E1E8FFEFE09326088091BE
:10CBF0000B06E82FFF27EE0FFF1FEF5CF84F0190A9
:10CC0000F081E02DE038F1051CF0EFE7F0E006C020
:10CC10008FEFE138F80714F4E1E8FFEFE09327081D
:10CC200080910A06E82FFF27EE0FFF1FEF5CF84FF9
:10CC30000190F081E02DE038F1051CF0EFE7F0E025
:10CC400006C02FEFE138F20714F4E1E8FFEF789423
:10CC5000E093280880912203809329088091230380
:10CC600080932A088091240380932B0880912503C8
:10CC700080932C088091260380932D0880912703B0
:10CC800080932E088091280380932F088091290398
:10CC900055C080916104863018F01092610485E0DF
:10CCA000809325088091660680932608809113035F
:10CCB00090911403A0911503B0911603BC01CD010E
:10CCC00025E030E040E050E00E94E878309328080A
:10CCD0002093270880910F0390911003A0911103D6
:10CCE000B0911203BC01CD0125E030E040E050E0FE
:10CCF0000E94E87830932A082093290880915C06E6
:10CD000080932B0880915D0680932C0880915E06AD
:10CD100080932D088091210380932E088091310704
:10CD20009091320780932F088091C2059091C3059E
:10CD300097FD0396959587959595879580933008EF
:10CD400044C01092250880E58093260883E08093F4
:10CD500027088EE08093280880910201809329089B
:10CD60008091460480932A088091470480932B0881
:10CD70008091480480932C0828C080913E068093BF
:10CD8000250880916B06809326088091A3018093EB
:10CD90002708809137068093280880913806809371
:10CDA00029088091390680932A088091A2018093F6
:10CDB0002B0880913B0680932C0880913C06809341
:10CDC0002D0880913D0680932E0880913408882399
:10CDD00009F4CFC08AEF8093EA0140913608509160
:10CDE0003708CA0181509E4F8F5F9340B0F4209165
:10CDF000380830913908C90181509E4F8F5F9340A8
:10CE000060F48091160685FF08C05093FF0340939D
:10CE1000FE033093FD032093FC0380913C08909126
:10CE20003D0821E08936920724F4909334038093DF
:10CE30003303809133039091340320913103309177
:10CE40003203821B930B845E9D4F68E671E00E9463
:10CE5000B378845B90409093300380932F032091AC
:10CE6000400830914108809123029091240282175A
:10CE7000930740F480916104882321F430932402C5
:10CE8000209323028091350899278836910549F12E
:10CE90008936910524F48736910531F072C08936C0
:10CEA000910509F445C06DC08091420880936908DE
:10CEB0008091430880936B088091440880936A08AE
:10CEC0008091450880936C088091460880936D0896
:10CED000809147088093EB01809148088093020479
:10CEE00050C08091420880930C0880914308809341
:10CEF0000D088091440880930E0880914508809326
:10CF00000F0880914608809310088091B205909197
:10CF10004708892B8093B2059091480890930004AC
:10CF20008091B30583709C70892B8093B30529C0D1
:10CF300080914208809302088091430880930308FF
:10CF400080914408809304088091450880930508E7
:10CF500080914608909147089093070880930608AF
:10CF60008091480890914908909309088093080897
:10CF700008C01092FF031092FE031092FD0310925E
:10CF8000FC031F910F91FF90EF900895809101088D
:10CF9000882309F43BC0459882E198E090930B0800
:10CFA00080930A0890910104E92FFF27EF51FE4F6B
:10CFB0009F5F90930104808180931408993010F052
:10CFC00010920104109201080E94746481E0809321
:10CFD0001108000000000000000000000000000038
:10CFE0000000000000000000000000000000000041
:10CFF0000000000000000000000000000000000031
:10D00000000080911208809331088EBD089587B189
:10D010008C6087B9429843981092060480E8809308
:10D02000ED01109205048093EC01089580910B04AA
:10D03000815080930B048F3F09F0F4C094E09093EB
:10D040000B048091ED02807BE1F0809155068823EE
:10D0500049F080910E04882311F49093060481E036
:10D0600080930E04809156068823B9F080910F04B6
:10D07000882319F484E08093050481E080930F04F1
:10D080000CC080930E0480930F048091510680930E
:10D090000C048091530680930D0480910E04882324
:10D0A00009F040C080916A06282F332724FF07C06B
:10D0B00080911803882319F425FD4DC04EC090912E
:10D0C0005206983F50F08091C8078D3D30F0809116
:10D0D0000C0488230CF43FC040C0983F48F0809176
:10D0E000C8078A3028F480910C048823B4F133C037
:10D0F000809106048150809306048F3F79F58091DA
:10D10000C8078150809306048091ED01813011F4AD
:10D1100080E801C086958093ED018091ED019091AA
:10D120000C0417C0809106048150809306048F3F41
:10D13000A9F489E0809306048091ED01813011F417
:10D1400080E801C086958093ED018091ED0190917A
:10D150005506892311F0429A01C0429880910F042C
:10D16000882309F043C080916A06282F332724FFC3
:10D1700007C080911803882319F426FD50C034C0DD
:10D1800090915406983F50F08091EE078D3D30F01D
:10D1900080910D0488230CF442C026C0983F48F0CB
:10D1A0008091EE078A3028F480910D048823E4F002
:10D1B00036C0809105048150809305048F3F91F51E
:10D1C0008091EE078150809305048091EC018130BD
:10D1D00011F480E801C086958093EC018091EC0108
:10D1E00090910D048923D9F4439808958091050402
:10D1F0008150809305048F3FA9F489E08093050452
:10D200008091EC01813011F480E801C08695809313
:10D21000EC018091EC0190915606892311F0439A1C
:10D220000895439808954FB724E130E0F894809131
:10D23000C9008F778093C9008091C9008F7B80934C
:10D24000C9008091C9008F7D8093C9005A9A529875
:10D250005B9A539A832F99278093CD002093CC001B
:10D260008091C80082608093C80080E18093C900EB
:10D270008091CA008F778093CA008091CA008F7B0B
:10D280008093CA008091CA008F7D8093CA008091EC
:10D29000CA008F7E8093CA008091CA00877F8093E6
:10D2A000CA008091C9008B7F8093C9008091CA0019
:10D2B00084608093CA008091CA0082608093CA0013
:10D2C0008091C80087FF03C08091CE00F9CF809184
:10D2D000C90080688093C9004FBF0895FF920F93E3
:10D2E0001F93CF93DF9380E197E20E948E16EC01AB
:10D2F000FF248091C9008F778093C9008091C90075
:10D300008F7E8093C9005A9888E39AE09F938F9309
:10D310000BE612E11F930F93E0912D04F0912E0480
:10D3200009950F900F900F900F9002C04A996CC012
:10D33000CE010E9497168823C9F3E0912D04F09145
:10D340002E04FF2009F468C08EE69AE09F938F9325
:10D350001F930F930995529A0F900F900F900F9073
:10D36000CE010E9497168823D9F383E690E05A9A5B
:10D37000019797FFFCCF8FE891E05A98019797FFAC
:10D38000FCCF89E090E05A9A019797FFFCCF89E0A3
:10D3900090E05A98019797FFFCCF8FE891E05A9A56
:10D3A000019797FFFCCF8FE891E05A98019797FF7C
:10D3B000FCCF89E090E05A9A019797FFFCCF89E073
:10D3C00090E05A98019797FFFCCF8FE891E05A9A26
:10D3D000019797FFFCCF8FE891E05A98019797FF4C
:10D3E000FCCF89E090E05A9A019797FFFCCF89E043
:10D3F00090E05A98019797FFFCCF8FE891E05A9AF6
:10D40000019797FFFCCF13C08AE590E00E948E162B
:10D41000EC0191E0F92E91CF84E79AE09F938F93EE
:10D420001F930F9309950F900F900F900F905298A4
:10D430005A980E941369E5E0CDB7DEB70C942C79B9
:10D44000EF92FF920F931F93CF93DF93482F00E04B
:10D4500010E08091EE01813061F41092EE0184E4DD
:10D46000809310041092120410921104109213046D
:10D470002BC180911004882319F421E030E001C011
:10D48000980190911104992371F4232B11F081E0FC
:10D4900010C084E4809310049093120490931104BC
:10D4A00090931304FAC0913069F4232B09F0EBC078
:10D4B00082E080931104809112048F5F80931204A4
:10D4C00083E0E9C09230D1F4232B09F0DCC083E083
:10D4D000809310044093130490911204923039F415
:10D4E0001092140447FF03C081E08093140483E08A
:10D4F000809311049F5F90931204CFC0933009F082
:10D50000C2C0232B09F0BFC09093100482E0809327
:10D510001104809112048F5F8093120420911304F0
:10D52000822F9927782F6627842F9927682B792BAC
:10D5300080913006813049F47370CB018050924065
:10D5400063E070E00E94B37817C0823061F47770B6
:10D55000CB018050944066E070E00E94B37826953D
:10D56000269526950BC0737068567140CB0177FDE8
:10D570000196BC017595679526952695022F112772
:10D580000F7010700F5F1F4F0D30110508F074C041
:10D590007801E00EF11EF701EF5CF84F8081918178
:10D5A0009B01281B390BC90137FF03C0909581955A
:10D5B0009F4F069794F480912103883C30F480912A
:10D5C0002103865F8093210308C088EC80932103A8
:10D5D00080916F008F7D80936F00F701EF5CF84FB3
:10D5E000808191819C01220F331F280F391F260F44
:10D5F000371F37FF02C02D5F3F4FE901D595C79513
:10D60000D595C795CB0101968C179D0714F42197EA
:10D6100006C061507040C617D7070CF42196809160
:10D620002103843BD0F0F701EF5CF84F80819181BA
:10D63000FE01E81BF90BCF0163E070E00E94B378B4
:10D64000CB01880F991F860F971F25E637E0E20E62
:10D65000F31EF7019183808307C025E637E0E20ED1
:10D66000F31EF70111821082000F111F0F5C184F7B
:10D67000F801D183C08311C00231110570F081E03F
:10D680008093EE010AC081E08093EE0110921204B3
:10D690001092140484E48093100480911204803169
:10D6A00098F080911404882331F48091EE0188234E
:10D6B00011F48093950110921204109214041092A8
:10D6C000110484E480931004E6E0CDB7DEB70C9437
:10D6D0002B79CF93FC0197FF05C0CFEFF095E19533
:10D6E000FF4F01C0C1E028E631E0CF01B9010E943F
:10D6F000B378FC018B35910554F08B5590408A35F9
:10D70000910538F484EB90E08E1B9F0BFC0141E007
:10D710000DC0CF01855B90408A35910518F4E45B1C
:10D72000F04003C02E1B3F0BF9014FEFEE0FFF1F20
:10D73000E158F54F259134918C2F992787FD9095CD
:10D74000289FB001299F700D389F700D1124842FE0
:10D75000992787FD9095689FA001699F500D789F3C
:10D76000500D1124CA01CF9108952AE530E0281BFD
:10D77000390BC9010E94696B0895CF93DF9380E054
:10D780000E949E7180911F01909120016AE070E0DB
:10D790000E94B3789F938F9380911F0190912001F5
:10D7A0006AE070E00E94B3787F936F938DE49BE012
:10D7B0009F938F93C1E9D1E7DF93CF93E0912D043D
:10D7C000F0912E0409952DB73EB7285F3F4F2DBF2E
:10D7D0008091EA018823B9F186E00E949E718091D0
:10D7E0000608909107086AE070E00E949F787F9396
:10D7F0006F938FED90E09F938F938091F7079091B7
:10D80000F807A091F907B091FA072091970130919C
:10D8100098014091990150919A01BC01CD010E945B
:10D82000E8783F932F9386E59BE09F938F93DF9358
:10D83000CF93E0912D04F0912E0409958DB79EB7FA
:10D840000A968DBF12C086E00E949E7182E69BE020
:10D850009F938F93DF93CF93E0912D04F0912E044B
:10D8600009950F900F900F900F90809100048823DE
:10D87000C1F086E00E949E718091000499279F93D9
:10D880008F9389E69BE09F938F93DF93CF93E091F3
:10D890002D04F0912E0409952DB73EB72A5F3F4F16
:10D8A0002DBF80E10E949E718091F5019091F6015B
:10D8B0006CE370E00E949F789F938F938091F501B5
:10D8C0009091F6016CE370E00E949F787F936F93D4
:10D8D00080917208909173089F938F9384E79BE0E7
:10D8E0009F938F93C1E9D1E7DF93CF93E0912D040C
:10D8F000F0912E040995809116062DB73EB7265F4C
:10D900003F4F2DBF80FF29C08AE10E949E71809108
:10D91000960199279F938F938091130390911403FD
:10D92000A0911503B0911603BC01CD0124E630E0AF
:10D9300040E050E00E94E8783F932F9381E89BE01D
:10D940009F938F93DF93CF93E0912D04F0912E045A
:10D9500009958DB79EB708968DBFDF91CF91089539
:10D96000CF93DF9380E00E949E718091EF0699270C
:10D9700087FD90959F938F938091E706992787FD68
:10D9800090959F938F938091DF06992787FD9095BF
:10D990009F938F938091D706992787FD90959F93AA
:10D9A0008F9388E89BE09F938F93C1E9D1E7DF9342
:10D9B000CF93E0912D04F0912E04099580E10E940F
:10D9C0009E712DB73EB7245F3F4F2DBF80910F074B
:10D9D000992787FD90959F938F93809107079927AB
:10D9E00087FD90959F938F938091FF06992787FDE0
:10D9F00090959F938F938091F706992787FD909537
:10DA00009F938F9388E99BE09F938F93DF93CF93AE
:10DA1000E0912D04F0912E040995809108062DB710
:10DA20003EB7245F3F4F2DBF853098F480E10E94C0
:10DA30009E7188EA9BE09F938F93DF93CF93E09151
:10DA40002D04F0912E0409950F900F900F900F90D8
:10DA500018C08730B0F488E10E949E718FED90E08D
:10DA60009F938F9389EB9BE09F938F93DF93CF934B
:10DA7000E0912D04F0912E0409958DB79EB706967E
:10DA80008DBFDF91CF9108950F931F9380E00E9487
:10DA90009E712AE030E080916E0890916F08B90184
:10DAA0000E949F789F938F9380916E0890916F084A
:10DAB000B9010E949F787F936F9380911F0190918D
:10DAC0002001B9010E94B3789F938F9380911F0129
:10DAD00090912001B9010E94B3787F936F9382ECFB
:10DAE0009BE09F938F9301E911E71F930F93E091C0
:10DAF0002D04F0912E04099580E10E949E718DB74E
:10DB00009EB70C968DBF80917208909173089F9379
:10DB10008F9380917008909171089F938F9385EDFA
:10DB20009BE09F938F931F930F93E0912D04F091AF
:10DB30002E0409958DB79EB708968DBF1F910F9142
:10DB400008950F931F93CF93DF938091EA01C1E96A
:10DB5000D1E7882309F478C080E00E949E7180910B
:10DB6000030899279F938F938091050899279F9386
:10DB70008F9381EE9BE09F938F938E01DF93CF93E2
:10DB8000E0912D04F0912E0409958DB79EB708966B
:10DB90008DBF80910408833031F48CE00E949E7127
:10DBA00080EF9BE005C08CE00E949E7185EF9BE0BA
:10DBB0009F938F93DF93CF93E0912D04F0912E04E8
:10DBC00009950F900F900F900F908091020881FFA0
:10DBD00012C08CE00E949E718AEF9BE09F938F930E
:10DBE0001F930F93E0912D04F0912E0409950F904F
:10DBF0000F900F900F9080E10E949E718FED90E04A
:10DC00009F938F9380910808909109089F938F9319
:10DC100080910608909107086AE070E00E949F7862
:10DC20007F936F938FEF9BE09F938F9381E991E7B1
:10DC30009F938F93E0912D04F0912E0409958DB759
:10DC40009EB70A968DBF12C082E00E949E718FE03F
:10DC50009CE09F938F93DF93CF93E0912D04F091FD
:10DC60002E0409950F900F900F900F90DF91CF9198
:10DC70001F910F910895CF93C82F209115042093E1
:10DC8000160499278F32910509F1803391051CF410
:10DC90004F97A1F02CC08F34910501F18F38910579
:10DCA00031F5222319F481E090E038C086E0289F06
:10DCB000F0011124EB5CF44F849117C086E0289F9B
:10DCC000F0011124EA5CF44F84910FC086E0289F94
:10DCD000F0011124E95CF44F849107C086E0289F8D
:10DCE000F0011124E85CF44F849180931504909125
:10DCF0001504809116049813C0E00E94A4719091BD
:10DD0000150486E0989FF0011124E75CF44F2591FB
:10DD100034918C2FF901099580E090E0CF9108951E
:10DD200010926F0810926E08109273081092720889
:10DD30001092710810927008109274088AE090E0B6
:10DD40000E948E1690931804809317040895CF9321
:10DD5000DF9380911704909118040E9497168823EE
:10DD600009F4AFC080911704909118040A9690931B
:10DD7000180480931704E0E0F0E09F0190E05FEF6B
:10DD8000A0EDB6E04BE0ED018B8187FF0BC09F5FFC
:10DD90008D81E80FF11D8981280F311D8E81851736
:10DDA00008F4582F4150189647FFEDCF5093740850
:10DDB000232B41F520911D0430911E0440911F0436
:10DDC00050912004BB27A52F942F832F90931C04E0
:10DDD00080931B04AA27BB27281B390B4A0B5B0B1C
:10DDE000CF01AA27BB27280F391F4A1F5B1F20938B
:10DDF0001D0430931E0440931F0450932004E5E05B
:10DE0000F0E013C020911B0430911C042E173F0733
:10DE100018F4E21BF30B02C0E0E0F0E0892F992731
:10DE2000880F991FE80FF91F3596F0936F08E0935C
:10DE30006E08EF3FF10578F480911F019091200169
:10DE40008E9F90018F9F300D9E9F300D1124C90130
:10DE500064E670E013C0CF019695879596958795F7
:10DE600020911F0130912001289FA001299F500D72
:10DE7000389F500D1124CA0169E170E00E949F781B
:10DE800070937108609370082091190430911A04FE
:10DE90002E0F3F1F30931A04209319045EE02131A6
:10DEA000350778F0809172089091730801969093ED
:10DEB00073088093720820513E4030931A042093D7
:10DEC0001904DF91CF910895002422273327442796
:10DED00051E0BB27EE27FF27A0E1660F771F881FC1
:10DEE000991F001C221F331F441F660F771F881FB6
:10DEF000991F001C221F331F441F2AF4050E2B1FDD
:10DF00003E1F4F1F04C0051A2B0B3E0B4F0B550F26
:10DF1000BB1FEE1F587F556047FD5250AA95E9F68A
:10DF2000E695B7955795E695B7955795852F9B2F0D
:10DF300008952227332741E0552768E0880F991F6D
:10DF4000221F331F880F991F221F331F1AF4240F1B
:10DF5000351F02C0241B350B440F551F487F4560F9
:10DF600037FD42506A9551F7569547955695479516
:10DF7000842F0895AA2797FF04C0809590958A1F43
:10DF80009A1F77FF04C0609570956A1F7A1F669F7D
:10DF90009001779FA001679F300D411D5A1F300DE2
:10DFA000411D5A1F889FF001999F2E0F3F1F401D52
:10DFB000511D899F300D411D5A1F300D411D5A1FA3
:10DFC000CA01B901112480CF4FB720E430E0F894A2
:10DFD0008091C9008F778093C9008091C9008F7BA1
:10DFE0008093C9008091C9008F7D8093C9005A9A9F
:10DFF00052985B9A539A832F99278093CD00209350
:10E00000CC008091C80082608093C80088E1809332
:10E01000C9008091CA008F778093CA008091CA009E
:10E020008F7B8093CA008091CA008F7D8093CA0045
:10E030008091CA008F7E8093CA008091CA00877F3A
:10E040008093CA008091C9008B7F8093C900809122
:10E05000CA0084608093CA008091CA008260809365
:10E06000CA008091C80087FF03C08091CE00F9CF1D
:10E070008091C90080688093C9004FBF08950F93B5
:10E080001F93CF93DF93482F4F5F893108F089C0EA
:10E0900080913007841710F440933007CB018353ED
:10E0A0009B4268E170E00E94B378A42FBB27FD017A
:10E0B000EA0FFB1FEF5CF84F808191819B01281BC9
:10E0C000390BC90137FF03C0909581959F4F069783
:10E0D00094F480912103883C30F480912103865F81
:10E0E0008093210308C088EC8093210380916F0006
:10E0F0008F7D80936F00FD01EA0FFB1FEF5CF84FEF
:10E10000808191819C01220F331F280F391F260F18
:10E11000371F37FF02C02D5F3F4FE901D595C795E7
:10E12000D595C795CB0101968C179D0714F42197BF
:10E1300006C061507040C617D7070CF42196809135
:10E140002103843BD8F08D010A0F1B1FF801EF5CFF
:10E15000F84F80819181FE01E81BF90BCF0163E04C
:10E1600070E00E94B378CB01880F991F860F971F2C
:10E170000B59184FF8019183808307C0AA0FBB1F6A
:10E18000AB59B84F11961C921E92E42FFF27EE0F49
:10E19000FF1FEF5CF84FD183C083443011F410921D
:10E1A0009501DF91CF911F910F910895CF93DF9348
:10E1B00020917508822F9927807F9070409709F0F1
:10E1C0006CC02F3109F046C08091760880932504F9
:10E1D0002091780820932704809179088093260461
:10E1E000822F99279093320780933107222309F0D9
:10E1F00054C080910A06282F3327220F331FF901BC
:10E20000EB59F84F1182108280910B06A82FBB2783
:10E21000AA0FBB1FFD01EB59F84F118210828091AC
:10E220000D06E82FFF27EE0FFF1FCF018B59984FE8
:10E23000EC01198218822F5C384FE901198218828B
:10E24000AF5CB84F11961C921E92EF5CF84F118292
:10E25000108223C0C22FCF70CA30F8F480917608A4
:10E2600080939F088091770880939E08809178081A
:10E270008093A108809179088093A00860919E08FE
:10E2800070919F088C2F0E943F706091A008709140
:10E29000A1088C2F8F5F0E943F70DF91CF9108956E
:10E2A000CF93C82F8F3F49F4809128048F3F29F4E2
:10E2B00010922A041092290432C020912A042223A9
:10E2C00039F4CF3111F485E001C084E080932B0450
:10E2D00080912B04909129048217A0F4892F8095B6
:10E2E000809329048F3F19F48EEF80932904809145
:10E2F0002904C81711F40E94D67010922A041092B3
:10E3000029040BC0E22FFF27EB58F74FC0832F5F84
:10E3100020932A049C0F90932904C0932804CF9142
:10E32000089590912404933240F4E92FFF27E55893
:10E33000F74F80839F5F909324040895833218F4ED
:10E340008D5F80932404089590E2EEE7F8E08FE17A
:10E350009193815087FFFCCF0895CF93CFB723E0EF
:10E3600031E0F8948091C9008F778093C900809143
:10E37000C9008F7B8093C9008091C9008F7D8093F5
:10E38000C9005A9A52985B9A539A832F992780937F
:10E39000CD002093CC008091C80082608093C8009B
:10E3A00088E18093C9008091CA008F778093CA006A
:10E3B0008091CA008F7B8093CA008091CA008062DE
:10E3C0008093CA008091CA0080618093CA008091C6
:10E3D000CA0088608093CA008091C90084608093DD
:10E3E000C9008091CA0084608093CA008091CA00ED
:10E3F00082608093CA008091C80087FF03C080912B
:10E40000CE00F9CF8091C90080688093C9008091C7
:10E41000C90080648093C9000E94A471CFBFCF91CE
:10E420000895282F99278F709070892B31F42095AB
:10E4300080912304822B8093230408958091F1011D
:10E44000882309F441C08091ED0285FF0AC082E96A
:10E4500080937B0883E280937C0885E580937D0828
:10E4600002C010927B088091F2018F3071F480918C
:10E4700023040E943B6E882341F081E980937B084E
:10E4800080937C0881E380937D081092F101809154
:10E49000C80085FFFCCF8091C9008F7E8093C900A2
:10E4A0008091C9008E7F8093C90080917B0888236A
:10E4B00011F48EEF01C08EE78093CE00809123048B
:10E4C0008093F2011092230408951F920F920FB6C9
:10E4D0000F9211248F939F93EF93FF939091F101EB
:10E4E000992309F040C080912C04882361F4809125
:10E4F0007B08882311F483E003C0813999F481E01B
:10E5000080932C040FC0833099F480917B0888237A
:10E5100049F090937B088091C9008E7F8093C90059
:10E520008EEF1EC08091C90081608093C9000EC02B
:10E53000833261F48091C9008E7F8093C9008FEF90
:10E540008093CE0081E08093F10114C080912C046F
:10E55000E82FFF27E558F74F8F5F80932C048081C9
:10E560008093CE0007C010922C048091C900806176
:10E570008093C900FF91EF919F918F910F900FBEF3
:10E580000F901F901895EF92FF920F931F93CF93C8
:10E59000DF937C018B01EA01452B39F0F801819171
:10E5A0008F01F70109952197C9F7E6E0CDB7DEB7EE
:10E5B0000C942B79EF92FF920F931F93CF93DF93DD
:10E5C0007C018B01EA01452B41F0F8010F5F1F4FE1
:10E5D0008491F70109952197C1F7E6E0CDB7DEB741
:10E5E0000C942B790F931F93CF938C01C62F161683
:10E5F00034F480E2F8010995C1501C16D4F3CF9190
:10E600001F910F9108950F931F93CF938C01C62FE5
:10E61000161634F480E3F8010995C1501C16D4F3A2
:10E62000CF911F910F910895A5E3B0E0EAE1F3E7E0
:10E630000C9403792E96EEADFFAD2E978824992485
:10E64000540180912204882321F42C961FAE1EAE23
:10E650002C975EE4452E512C4C0E5D1E6F01B601C9
:10E6600005C0153239F00894C11CD11CF601149173
:10E670001123B9F7A601461B570B31F02C968EAD2E
:10E680009FAD2C970E94DA72112309F46AC2089494
:10E69000C11CD11CFF24FDA6FCA64FEFE42EF9A659
:10E6A000F6010894C11CD11C1491153721F0812F5B
:10E6B00080628837B1F4F0FE0AC0F20124E030E055
:10E6C000420E531E80809180A280B3800AC0F20166
:10E6D00042E050E0440E551E808191814C01AA24F5
:10E6E000BB24103221F489A58823D1F61DC0133232
:10E6F00019F458E0F52AD4CF1A3211F01D3291F4F2
:10E700001A3259F4F20182E090E0480E591EE0817D
:10E71000ECA7EE232CF6E195ECA790E1F92AAFEDFA
:10E72000FA22BECF1B3211F419A7BACF1E32C1F59F
:10E73000F6010894C11CD11C14911A3279F4F2012B
:10E7400022E030E0420E531E408151813FEF4F3FA7
:10E75000530714F44FEF5FEFE42EA2CF40E050E0F8
:10E76000812F80538A30A0F4CA0133E0880F991FAB
:10E770003A95E1F7840F951F480F591F410F511D1E
:10E7800040535040F6010894C11CD11C1491E8CFAD
:10E790008FEF4F3F580714F44FEF5FEFE42E85CF14
:10E7A000103329F4F4FC7CCF90E2F92A79CF812F41
:10E7B00081538930D8F440E050E0CA0123E0880F4B
:10E7C000991F2A95E1F7840F951F480F591F410F94
:10E7D000511D40535040F6010894C11CD11C1491A6
:10E7E000812F80538A3048F34CA75FCF183619F435
:10E7F000A4E0FA2A55CF1C3619F4B1E0FB2A50CF19
:10E80000133661F43E010894611C711CF20122E090
:10E8100030E0420E531E808189833CC1143421F0C4
:10E82000143611F0193651F5143411F431E0F32A8D
:10E83000F0FE0AC0F20144E050E0440E551E808014
:10E840009180A280B3800CC0F20182E090E0480E7B
:10E85000591E808191814C01AA2497FCA094BA2C66
:10E86000B7FE0AC0B094A09490948094811C911C2F
:10E87000A11CB11C8DE289A70AE06FC01F3411F002
:10E880001F3631F41F3411F491E0F92A08E064C016
:10E89000103779F4F201A2E0B0E04A0E5B1E8081ED
:10E8A00091814C01AA24BB2400E1B0E4FB2A18E7C3
:10E8B00053C01337C1F5F20122E030E0420E531E7F
:10E8C000608071806114710489F43E010894611CB8
:10E8D000711C88E289838EE6F301818385E78B834F
:10E8E0008CE68C838D8389E28E831F82E7FC13C0C4
:10E8F0008E2D992787FD9095AC0160E070E0C301F3
:10E900000E94AF77009729F0382E3618E3140CF0E8
:10E91000C3C03E2CC1C0F30101900020E9F731973C
:10E920003E2E3618B9C0153511F0153731F41535AE
:10E9300011F4F1E0FF2A0AE00FC0183519F018377A
:10E9400009F0A0C000E1F3FE07C081149104A10406
:10E95000B10411F020E4F22A19A6EDA6E7FC02C0EA
:10E960003FEDF32289E2682E712C6C0E7D1E81141E
:10E970009104A104B10421F44DA5442309F47BC002
:10E98000802F9927AA27BB278EA79FA7A8ABB9AB33
:10E99000202E332490E0891690E0990691E0A90694
:10E9A00090E0B90648F0C501B4012EA53FA548A9DD
:10E9B00059A90E94C67817C0AFEF8A169104A10426
:10E9C000B10449F040F0C401B1010E949F789B015D
:10E9D0004427552708C0882D602F0E949378282F40
:10E9E0003327442755272AAB3BAB4CAB5DAB0A30F2
:10E9F00059F48AA9880F880F880F9AA9990F890F4F
:10EA0000382D381B832F10C0003139F48AA9829524
:10EA1000807F482D481B842F07C08AA9880F880F44
:10EA2000880F582D581B852F90E02EA53FA548A98B
:10EA300059A982169306A406B50608F091E08AA8A3
:10EA40009BA8ACA8BDA88A3010F4805D04C0895A88
:10EA5000183509F48F7DD3018E933D01992309F078
:10EA600099CF083041F4F3FE06C0803321F080E3F3
:10EA7000FD0182933F01CE010196382E3618F8E24F
:10EA80003F0E0BC0112309F46CC03E010894611CB9
:10EA9000711C1983B1E03B2E19A6032D2DA4231858
:10EAA00027FC222489A5882311F00F5F02C0F6FC01
:10EAB0000E5F020DEF2CFF24C70180739070892B2D
:10EAC00049F48CA5801B682F2C968EAD9FAD2C979A
:10EAD0000E94F27289A5882331F041E050E0BE0126
:10EAE000675D7F4F0AC0E6FE0EC080E38AA71BA7C2
:10EAF00042E050E0BE01665D7F4F2C968EAD9FAD2B
:10EB00002C970E94C372C70180739070809749F45C
:10EB10008CA5801B682F2C968EAD9FAD2C970E94E4
:10EB20000373622D2C968EAD9FAD2C970E940373BC
:10EB3000832D992787FD9095AC01B3012C968EAD5E
:10EB40009FAD2C970E94C372E4FE89CD2CA5201B9B
:10EB50002CA7622F2C968EAD9FAD2C970E94F2723F
:10EB60007ECDE2E1CB5C0C941F792FB740E0F894A6
:10EB7000E0E0F0E081E2809357009491E2E0F0E081
:10EB8000809357003491E4E0F0E080935700849143
:10EB90002FBF9E3199F4363941F4893011F441E0A8
:10EBA0000DC08A3059F442E009C0373939F4863053
:10EBB00011F443E003C0853009F444E0842F992721
:10EBC00008959FB7F8948091C900877F8093C9000A
:10EBD0008091C9008F7E8093C9008091C9008F7792
:10EBE0008093C9008091C9008F7B8093C900809178
:10EBF000C9008F7D8093C90052985A9A53985B9AA6
:10EC00009FBF08951F93CF93DF93182F8091220405
:10EC1000882309F48DC08091F001181709F488C089
:10EC200080912104882321F40E94B57580932104EA
:10EC300088E09DE09F938F93CBE6D2E1DF93CF9363
:10EC4000E0912D04F0912E0409950F900F900F90F4
:10EC50000F90812F99278230910501F18330910522
:10EC60002CF4009761F0019769F024C0843091057D
:10EC7000D9F084309105ACF00597C9F01BC088EF3E
:10EC80009CE002C086EE9CE09F938F93DF93CF932E
:10EC9000E0912D04F0912E04099518C08DEC9CE0B4
:10ECA000F3CF8AEA9CE0F0CF8CE99CE0EDCF84E9D9
:10ECB0009CE0EACF85E19DE09F938F93DF93CF9314
:10ECC000E0912D04F0912E04099510E00F900F9023
:10ECD0000F900F9080912104843011F0823099F4CC
:10ECE0000E94E175812F8150833018F40E941369CE
:10ECF0001DC0143019F40E94AD7118C01530B1F464
:10ED00000E94E46F13C0112389F08BE29DE09F9372
:10ED10008F938BE692E19F938F93E0912D04F09176
:10ED20002E0409950F900F900F900F901093F00103
:10ED3000DF91CF911F9108950F931F9381E08093EE
:10ED400022044091EF01E4E4FCE020E030E05FE4E5
:10ED5000849199272F5F3F4F829FB001839F700D51
:10ED6000929F700D112446275150319657FFF0CFD6
:10ED70004093EF01ECE1FCE020E030E057E28491C9
:10ED800099272F5F3F4F829FB001839F700D929F05
:10ED9000700D112446275150319657FFF0CF409304
:10EDA000EF0180912104882321F40E94B57580939E
:10EDB00021048091EF01833459F088E190E029E249
:10EDC0000FB6F894A895809360000FBE2093600062
:10EDD00084E193E790932E0480932D0486E49DE0D4
:10EDE0009F938F930BE612E11F930F93E0912D04F5
:10EDF000F0912E0409950F900F900F900F9084E6DC
:10EE000090E09F938F9380E590E09F938F931F9264
:10EE10001F92809102016AE00E949378892F9927BE
:10EE20009F938F93809102010E94937899279F93DB
:10EE30008F938CE69DE09F938F931F930F93E091A8
:10EE40002D04F0912E04099584E49CE09F938F9308
:10EE50001F930F93E0912D04F0912E0409958CE1FE
:10EE60009CE09F938F931F930F93E0912D04F0915B
:10EE70002E0409958DB79EB746968DBF80EA9DE01A
:10EE80009F938F931F930F93E0912D04F0912E0485
:10EE9000099583EC8093810080916F00806280935C
:10EEA0006F000F900F900F900F901F910F9108958A
:10EEB00080912204882361F08091F001843011F464
:10EEC0000E941E728091EF01833411F0109222048F
:10EED00008951F920F920FB60F9211242F933F9314
:10EEE0004F935F936F937F938F939F93AF93BF9352
:10EEF000EF93FF932091CE009091F001892F8150E4
:10EF0000833020F4822F0E94206A0BC0943021F4B9
:10EF1000822F0E94117205C0953019F4822F0E9431
:10EF20005071FF91EF91BF91AF919F918F917F9120
:10EF30006F915F914F913F912F910F900FBE0F9066
:10EF40001F901895FB01DC0140FF05C002C0059031
:10EF50000D9205900D9242505040C8F70895FC0163
:10EF60004150504030F001900616D1F73197CF0153
:10EF700008958827992708955058192E84D001D0D4
:10EF80006AC0BA176207730784079507B1F188F45E
:10EF90000EF410940B2EBA2FA02D062E622F202DCA
:10EFA000072E732F302D082E842F402D092E952FDC
:10EFB000502DFF275523B9F0591B49F0573E98F0C3
:10EFC000469537952795A795F0405395C9F776F064
:10EFD000BA0F621F731F841F30F48795779567956A
:10EFE000B795F040939517FA0F2E0895BF1BBB27D6
:10EFF000BA0B620B730B840BF6CFDEF670C097FB77
:10F000004ED09F3738F0FEE9F91B982F872F762FC7
:10F010006B2F05C061C09695879577956795F150E0
:10F02000D0F73EF490958095709561957F4F8F4F06
:10F030009F4F0895E89403C097FB0EF4F3DFB62FBB
:10F04000672F782F892F9EE9002405C09A95BB0F62
:10F05000661F771F881F11249923A1F08823B2F718
:10F060009F3F59F0BB0F48F421F4002011F460FFDA
:10F0700004C06F5F7F4F8F4F9F4F881F9795879575
:10F0800097F9089529C0052E092607FA440F551F40
:10F090005F3F79F0AA27A51708F051E04795880F40
:10F0A000991F9F3F31F0BB27B91708F091E0879572
:10F0B00008959F919F91112414C097FB880F991F69
:10F0C0009F3F31F0BB27B91708F091E0879508956D
:10F0D0009F919F91112405C066277727882799273C
:10F0E00008959FEF80EC0895629FD001739FF00117
:10F0F000829FE00DF11D649FE00DF11D929FF00DC8
:10F10000839FF00D749FF00D659FF00D9927729FFE
:10F11000B00DE11DF91F639FB00DE11DF91FBD0189
:10F12000CF0111240895991B79E004C0991F961707
:10F1300008F0961B881F7A95C9F780950895AA1B39
:10F14000BB1B51E107C0AA1FBB1FA617B70710F0D2
:10F15000A61BB70B881F991F5A95A9F78095909504
:10F16000BC01CD01089597FB092E07260AD077FD33
:10F1700004D0E5DF06D000201AF4709561957F4F2A
:10F180000895F6F7909581959F4F0895A1E21A2E64
:10F19000AA1BBB1BFD010DC0AA1FBB1FEE1FFF1F3B
:10F1A000A217B307E407F50720F0A21BB30BE40B8B
:10F1B000F50B661F771F881F991F1A9469F76095D2
:10F1C0007095809590959B01AC01BD01CF0108958C
:10F1D00097FB092E05260ED057FD04D0D7DF0AD0A5
:10F1E000001C38F450954095309521953F4F4F4F76
:10F1F0005F4F0895F6F790958095709561957F4FD4
:10F200008F4F9F4F08952F923F924F925F926F9230
:10F210007F928F929F92AF92BF92CF92DF92EF92A6
:10F22000FF920F931F93CF93DF93CDB7DEB7CA1B27
:10F23000DB0B0FB6F894DEBF0FBECDBF09942A8852
:10F24000398848885F846E847D848C849B84AA84FA
:10F25000B984C884DF80EE80FD800C811B81AA8187
:10F26000B981CE0FD11D0FB6F894DEBF0FBECDBF52
:10F27000ED010895EE0FFF1F0590F491E02D099424
:10F28000F999FECFB2BDA1BDF89A119600B40895C8
:10F29000F7DF01921A94E1F70895F2DFE02DF0DF35
:10F2A000F02D0895F999FECFB2BDA1BD00BC119615
:10F2B0000FB6F894FA9AF99A0FBE0895F3DF012C6D
:10F2C000F1DF112408950190EDDF1A94E1F708951C
:10F2D0005E010A010164FF01FFFF140001FC01FC53
:10F2E0000101737373FF03007D0000C409C4096446
:10F2F000001148656C6C6F20576F726C64000000E1
:10F3000000000000000000000000000000000000FD
:10F3100000000000000000000000000000000000ED
:10F3200000000000000000000000000000000000DD
:10F3300000000000000000000000000000000000CD
:10F34000000053706F727400004E6F726D616C003C
:10F3500000426567696E6E65720000517561647286
:10F360006F0000640001200B050000ECFF644041C9
:10F370005A4664640A02969696960840403A10FBF4
:10F3800030380190D0030090D00300F4017800FFE2
:10F39000036400020406070808080706040200FECA
:10F3A000FCFAF9F8F8F8F9FAFCFE0002040607087E
:10F3B000080B0A0D0B0C0E0B0F10FA200101017047
:04F3C000FF010F003A
:00000001FF
/branches/V0.80d-Arthur-P/Hex-Files/WasIstWas.txt
0,0 → 1,51
+++++++++++++++++++++++++
+ Flight-Ctrl:
+++++++++++++++++++++++++
BootLoader_MEGA644_20MHZ_V0_1.hex
Der Bootloader wird per ISP eingespielt
Der Bootloader nur dann eingespielt werden, wenn noch nie ein Bootloader eingespielt wurde!
Danach können Softwareupdates seriell eingespielt werden.
 
Flight-Ctrl_MEGA644_Vx_yy.hex
Aktuelle Firmware
Wird per serielle Schnittstelle (durch den Bootloader) eingespielt
 
 
 
 
//+++++++++++
// Quadro:
// 1
// 4 3
// 2
//+++++++++++
// Reverse Props on 1 2
 
//+++++++++++
// Octo:
// 1 2
// 8 3
// 7 4
// 6 5
//+++++++++++
 
//+++++++++++
// Octo2:
// 1
// 8 2
// 7 3
// 6 4
// 5
//+++++++++++
 
//+++++++++++
// Octo3:
// 1
// 2
// 8 7 3 4
// 5
// 6
//+++++++++++
// Reverse Props on octo: 1 3 5 7
 
/branches/V0.80d-Arthur-P/License.txt
0,0 → 1,52
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nichtkommerziellen Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt und genannt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-profit use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet, our webpage (http://www.MikroKopter.de) must be
// + clearly linked and named as origin
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
/branches/V0.80d-Arthur-P/Settings.h
--- Spektrum.c (nonexistent)
+++ Spektrum.c (revision 1754)
@@ -0,0 +1,406 @@
+/*#######################################################################################
+Decodieren eines RC Summen Signals oder Spektrum Empfänger-Satellit
+#######################################################################################*/
+
+#include "Spektrum.h"
+#include "main.h"
+// Achtung: RECEIVER_SPEKTRUM_EXP wird in der Main.h gesetzt
+
+unsigned char SpektrumTimer = 0;
+
+#ifdef RECEIVER_SPEKTRUM_EXP
+unsigned char s_excnt = 0; // Counter for Spektrum-Expander
+unsigned char s_exparity = 0; // Parity Bit for Spektrum-Expander
+signed char s_exdata[11]; // Data for Spektrum-Expander
+#endif
+//--------------------------------------------------------------//
+//--------------------------------------------------------------//
+void SpektrumBinding(void)
+{
+ unsigned int timerTimeout = SetDelay(10000); // Timeout 10 sec.
+ unsigned char connected = 0;
+ unsigned int delaycounter;
+
+ UCSR1B &= ~(1 << RXCIE1); // disable rx-interrupt
+ UCSR1B &= ~(1<<RXEN1); // disable Uart-Rx
+ PORTD &= ~(1 << PORTD2); // disable pull-up
+
+ printf("\n\rPlease connect Spektrum receiver for binding NOW...");
+
+ while(!CheckDelay(timerTimeout))
+ {
+ if (PIND & (1 << PORTD2)) { timerTimeout = SetDelay(90); connected = 1; break; }
+ }
+
+ if (connected)
+ {
+
+ printf("ok.\n\r");
+ DDRD |= (1 << DDD2); // Rx as output
+
+ while(!CheckDelay(timerTimeout)); // delay after startup of RX
+ for (delaycounter = 0; delaycounter < 100; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2);
+
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2);
+
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD &= ~(1 << PORTD2);
+
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD |= (1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 10; delaycounter++) PORTD &= ~(1 << PORTD2);
+ for (delaycounter = 0; delaycounter < 400; delaycounter++) PORTD |= (1 << PORTD2);
+
+ }
+ else
+ { printf("Timeout.\n\r");
+
+
+ }
+
+ DDRD &= ~(1 << DDD2); // RX as input
+ PORTD &= ~(1 << PORTD2);
+
+ SpektrumUartInit(); // init Uart again
+}
+
+//############################################################################
+// USART1 initialisation from killagreg
+void SpektrumUartInit(void)
+//############################################################################
+ {
+ // -- Start of USART1 initialisation for Spekturm seriell-mode
+ // USART1 Control and Status Register A, B, C and baud rate register
+ uint8_t sreg = SREG;
+
+ uint16_t ubrr = (uint16_t) ((uint32_t) SYSCLK/(8 * 115200) - 1);
+
+ // disable all interrupts before reconfiguration
+ cli();
+ // disable RX-Interrupt
+ UCSR1B &= ~(1 << RXCIE1);
+ // disable TX-Interrupt
+ UCSR1B &= ~(1 << TXCIE1);
+ // disable DRE-Interrupt
+ UCSR1B &= ~(1 << UDRIE1);
+ // set direction of RXD1 and TXD1 pins
+ // set RXD1 (PD2) as an input pin
+ PORTD |= (1 << PORTD2);
+ DDRD &= ~(1 << DDD2);
+
+ // set TXD1 (PD3) as an output pin
+ PORTD |= (1 << PORTD3);
+ DDRD |= (1 << DDD3);
+
+ // USART0 Baud Rate Register
+ // set clock divider
+ UBRR1H = (uint8_t)(ubrr>>8);
+ UBRR1L = (uint8_t)ubrr;
+ // enable double speed operation
+ UCSR1A |= (1 << U2X1);
+ // enable receiver and transmitter
+ //UCSR1B = (1<<RXEN1)|(1<<TXEN1);
+
+ UCSR1B = (1<<RXEN1);
+ // set asynchronous mode
+ UCSR1C &= ~(1 << UMSEL11);
+ UCSR1C &= ~(1 << UMSEL10);
+ // no parity
+ UCSR1C &= ~(1 << UPM11);
+ UCSR1C &= ~(1 << UPM10);
+ // 1 stop bit
+ UCSR1C &= ~(1 << USBS1);
+ // 8-bit
+ UCSR1B &= ~(1 << UCSZ12);
+ UCSR1C |= (1 << UCSZ11);
+ UCSR1C |= (1 << UCSZ10);
+ // flush receive buffer explicit
+ while(UCSR1A & (1<<RXC1)) UDR1;
+ // enable RX-interrupts at the end
+ UCSR1B |= (1 << RXCIE1);
+ // -- End of USART1 initialisation
+ // restore global interrupt flags
+
+ SREG = sreg;
+ return;
+ }
+
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+// + Copyright (c) Rainer Walther
+// + RC-routines from original MK rc.c (c) H&I
+// + Useful infos from Walter: http://www.rcgroups.com/forums/showthread.php?t=714299&page=2
+// + only for non-profit use
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+//
+// 20080808 rw Modified for Spektrum AR6100 (PPM)
+// 20080823 rw Add Spektrum satellite receiver on USART1 (644P only)
+// 20081213 rw Add support for Spektrum DS9 Air-Tx-Module (9 channels)
+// Replace AR6100-coding with original composit-signal routines
+//
+// ---
+// Entweder Summensignal ODER Spektrum-Receiver anschließen. Nicht beides gleichzeitig betreiben!
+// Binding is not implemented. Bind with external Receiver.
+// Servo output J3, J4, J5 not serviced
+//
+// Anschuß Spektrum Receiver
+// Orange: 3V von der FC (keinesfalls an 5V anschließen!)
+// Schwarz: GND
+// Grau: RXD1 (Pin 3) auf 10-Pol FC-Stecker
+//
+// ---
+// Satellite-Reciever connected on USART1:
+//
+// DX7/DX6i: One data-frame at 115200 baud every 22ms.
+// DX7se: One data-frame at 115200 baud every 11ms.
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data (FLT-Mode)
+// byte5: and byte6: channel data (Roll)
+// byte7: and byte8: channel data (Nick)
+// byte9: and byte10: channel data (Gier)
+// byte11: and byte12: channel data (Gear Switch)
+// byte13: and byte14: channel data (Gas)
+// byte15: and byte16: channel data (AUX2)
+//
+// DS9 (9 Channel): One data-frame at 115200 baud every 11ms, alternating frame 1/2 for CH1-7 / CH8-9
+// 1st Frame:
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data
+// byte5: and byte6: channel data
+// byte7: and byte8: channel data
+// byte9: and byte10: channel data
+// byte11: and byte12: channel data
+// byte13: and byte14: channel data
+// byte15: and byte16: channel data
+// 2nd Frame:
+// byte1: unknown
+// byte2: unknown
+// byte3: and byte4: channel data
+// byte5: and byte6: channel data
+// byte7: and byte8: 0xffff
+// byte9: and byte10: 0xffff
+// byte11: and byte12: 0xffff
+// byte13: and byte14: 0xffff
+// byte15: and byte16: 0xffff
+//
+// Each channel data (16 bit= 2byte, first msb, second lsb) is arranged as:
+//
+// Bits: F 0 C3 C2 C1 C0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
+//
+// 0 means a '0' bit
+// F: 1 = indicates beginning of 2nd frame for CH8-9 (DS9 only)
+// C3 to C0 is the channel number. 0 to 9 (4 bit, as assigned in the transmitter)
+// D9 to D0 is the channel data (10 bit) 0xaa..0x200..0x356 for 100% transmitter-travel
+//
+// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+#define MIN_FRAMEGAP 68 // 7ms
+#define MAX_BYTEGAP 3 // 310us
+
+
+//############################################################################
+// Wird im UART-Interrupt aufgerufen
+//############################################################################
+void SpektrumParser(unsigned char c)
+{
+ static unsigned char Sync=0, FrameCnt=0, ByteHigh=0, ReSync=1, Frame2=0;
+ unsigned int Channel, index = 0;
+ signed int signal = 0, tmp;
+ int bCheckDelay;
+// c = UDR1; // get data byte
+ if(ReSync == 1)
+ {
+ // wait for beginning of new frame
+ ReSync = 0;
+ SpektrumTimer = MIN_FRAMEGAP;
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ else
+ {
+ if(!SpektrumTimer) bCheckDelay = 1; else bCheckDelay = 0;//CheckDelay(FrameTimer);
+ if ( Sync == 0 )
+ {
+ if(bCheckDelay)
+ {
+ // nach einer Pause von mind. 7ms erstes Sync-Character gefunden
+ // Zeichen ignorieren, da Bedeutung unbekannt
+ Sync = 1;
+ FrameCnt ++;
+ SpektrumTimer = MAX_BYTEGAP;
+ }
+ else
+ {
+ // Zeichen kam vor Ablauf der 7ms Sync-Pause
+ // warten auf erstes Sync-Zeichen
+ SpektrumTimer = MIN_FRAMEGAP;
+ FrameCnt = 0;
+ Sync = 0;
+ ByteHigh = 0;
+ }
+ }
+ else if((Sync == 1) && !bCheckDelay)
+ {
+ // zweites Sync-Character ignorieren, Bedeutung unbekannt
+ Sync = 2;
+ FrameCnt ++;
+ SpektrumTimer = MAX_BYTEGAP;
+ }
+ else if((Sync == 2) && !bCheckDelay)
+ {
+ SpektrumTimer = MAX_BYTEGAP;
+ // Datenbyte high
+ ByteHigh = c;
+ if (FrameCnt == 2)
+ {
+ // is 1st Byte of Channel-data
+ // Frame 1 with Channel 1-7 comming next
+ Frame2 = 0;
+ if(ByteHigh & 0x80)
+ {
+ // DS9: Frame 2 with Channel 8-9 comming next
+ Frame2 = 1;
+ }
+ }
+ Sync = 3;
+ FrameCnt ++;
+ }
+ else if((Sync == 3) && !bCheckDelay)
+ {
+ // Datenbyte low
+ // High-Byte for next channel comes next
+ SpektrumTimer = MAX_BYTEGAP;
+ Sync = 2;
+ FrameCnt ++;
+ Channel = ((unsigned int)ByteHigh << 8) | c;
+ if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM)
+ {
+ signal = Channel & 0x3ff;
+ signal -= 0x200; // Offset, range 0x000..0x3ff?
+ signal = signal/3; // scaling to fit PPM resolution
+ index = (ByteHigh >> 2) & 0x0f;
+ }
+ else
+ if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_HI_RES)
+ {
+ signal = Channel & 0x7ff;
+ signal -= 0x400; // Offset, range 0x000..0x7ff?
+ signal = signal/6; // scaling to fit PPM resolution
+ index = (ByteHigh >> 3) & 0x0f;
+ }
+ else
+ //if(EE_Parameter.Receiver == RECEIVER_SPEKTRUM_LOW_RES)
+ {
+ signal = Channel & 0x3ff;
+ signal -= 360; // Offset, range 0x000..0x3ff?
+ signal = signal/2; // scaling to fit PPM resolution
+ index = (ByteHigh >> 2) & 0x0f;
+ }
+
+ index++;
+ if(index < 13)
+ {
+ // Stabiles Signal
+#ifdef RECEIVER_SPEKTRUM_EXP
+ if (index == 2) index = 4; // Analog channel reassigment (2 <-> 4) for logical numbering (1,2,3,4)
+ else if (index == 4) index = 2;
+#endif
+ if(abs(signal - PPM_in[index]) < 6)
+ {
+ if(SenderOkay < 200) SenderOkay += 10;
+ else
+ {
+ SenderOkay = 200;
+ TIMSK1 &= ~_BV(ICIE1); // disable PPM-Input
+ }
+ }
+ tmp = (3 * (PPM_in[index]) + signal) / 4;
+ if(tmp > signal+1) tmp--; else
+ if(tmp < signal-1) tmp++;
+
+#ifdef RECEIVER_SPEKTRUM_EXP
+ if(index == 6) // FLIGHT-MODE - The channel used for our data uplink
+ {
+ if (signal > 100) // SYNC received
+ {
+ if (s_exdata[s_excnt] == 125) s_exparity = ~s_exparity; // Bit = 1 -> Re-Invert parity bit
+ if ((s_excnt == 6 && ((s_exparity != 0 && s_exdata[s_excnt] == -125) || (s_exparity == 0 && s_exdata[s_excnt] == 125))) || (s_excnt == 9 && ((s_exparity == 0 && s_exdata[s_excnt] == -125) || (s_exparity != 0 && s_exdata[s_excnt] == 125)))) // Parity check
+ {
+ if (s_exdata[1] == 125 && s_exdata[2] == -125) PPM_in[5] = -125; // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == -125) PPM_in[5] = 0; // Reconstruct tripole Flight-Mode value (CH5)
+ else if (s_exdata[1] == -125 && s_exdata[2] == 125) PPM_in[5] = 125; // Reconstruct tripole Flight-Mode value (CH5)
+ PPM_in[6] = s_exdata[3]; // Elevator (CH6)
+ PPM_in[11] = s_exdata[4]; // Aileron (CH11)
+ PPM_in[12] = s_exdata[5]; // Rudder (CH12)
+
+ if (s_excnt == 9) // New Mode (12 Channels)
+ {
+ if (s_exdata[7] == 125) PPM_in[8] += 5; // Hover Pitch UP (CH8)
+ if (s_exdata[8] == 125) PPM_in[8] -= 5; // Hover Pitch DN (CH8)
+ if (PPM_in[8] < -125) PPM_in[8] = -125; // Range-Limit
+ else if (PPM_in[8] > 125) PPM_in[8] = 125; // Range-Limit
+ PPM_in[10] = s_exdata[6]; // AUX2 (CH10)
+ }
+ }
+
+ s_excnt = 0; // Reset bitcounter
+ s_exparity = 0; // Reset parity bit
+ }
+
+ if (signal < 10) s_exdata[++s_excnt] = -125; // Bit = 0 -> value = -125 (min)
+ if (s_excnt == 10) s_excnt = 0; // Overflow protection
+ if (signal < -100)
+ {
+ s_exdata[s_excnt] = 125; // Bit = 1 -> value = 125 (max)
+ s_exparity = ~s_exparity; // Bit = 1 -> Invert parity bit
+ }
+
+ }
+#endif
+ if(SenderOkay >= 180) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
+ else PPM_diff[index] = 0;
+
+#ifdef RECEIVER_SPEKTRUM_EXP
+ if (index < 5 ) PPM_in[index] = tmp; // Update normal potis (CH1-4)
+ else if (index == 5) PPM_in[7] = signal; // Gear (CH7)
+ else if (index == 7) PPM_in[9] = signal; // Hover Throttle (CH9)
+#else
+ PPM_in[index] = tmp;
+#endif
+ }
+ else if(index > 17) ReSync = 1; // hier stimmt was nicht: neu synchronisieren
+ }
+ else
+ {
+ // hier stimmt was nicht: neu synchronisieren
+ ReSync = 1;
+ FrameCnt = 0;
+ Frame2 = 0;
+ // new frame next, nach fruehestens 7ms erwartet
+ SpektrumTimer = MIN_FRAMEGAP;
+ }
+
+ // 16 Bytes eingetroffen -> Komplett
+ if(FrameCnt >= 16)
+ {
+ // Frame complete
+ if(Frame2 == 0)
+ {
+ // Null bedeutet: Neue Daten
+ // nur beim ersten Frame (CH 0-7) setzen
+ if(!ReSync) NewPpmData = 0;
+ }
+ FrameCnt = 0;
+ Frame2 = 0;
+ Sync = 0;
+ SpektrumTimer = MIN_FRAMEGAP;
+ }
+ }
+}
/branches/V0.80d-Arthur-P/Spektrum.d
0,0 → 1,3
Spektrum.o Spektrum.d : Spektrum.c Spektrum.h main.h old_macros.h printf_P.h timer0.h \
uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h \
spektrum.h capacity.h eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/Spektrum.h
0,0 → 1,12
/*#######################################################################################
Dekodieren eines Spektrum Signals
#######################################################################################*/
 
#ifndef _SPEKTRUM_H
#define _SPEKTRUM_H
void SpektrumUartInit(void);
void SpektrumBinding(void);
extern unsigned char SpektrumTimer;
extern void SpektrumParser(unsigned char c);
 
#endif //_RC_H
/branches/V0.80d-Arthur-P/Spektrum.lst
0,0 → 1,647
1 .file "Spektrum.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global SpektrumTimer
11 .global SpektrumTimer
12 .section .bss
15 SpektrumTimer:
16 0000 00 .skip 1,0
17 .text
18 .global SpektrumUartInit
20 SpektrumUartInit:
21 /* prologue: frame size=0 */
22 /* prologue end (size=0) */
23 0000 4FB7 in r20,95-0x20
24 0002 24E1 ldi r18,lo8(20)
25 0004 30E0 ldi r19,hi8(20)
26 /* #APP */
27 0006 F894 cli
28 /* #NOAPP */
29 0008 8091 C900 lds r24,201
30 000c 8F77 andi r24,lo8(127)
31 000e 8093 C900 sts 201,r24
32 0012 8091 C900 lds r24,201
33 0016 8F7B andi r24,lo8(-65)
34 0018 8093 C900 sts 201,r24
35 001c 8091 C900 lds r24,201
36 0020 8F7D andi r24,lo8(-33)
37 0022 8093 C900 sts 201,r24
38 0026 5A9A sbi 43-0x20,2
39 0028 5298 cbi 42-0x20,2
40 002a 5B9A sbi 43-0x20,3
41 002c 539A sbi 42-0x20,3
42 002e 832F mov r24,r19
43 0030 9927 clr r25
44 0032 8093 CD00 sts 205,r24
45 0036 2093 CC00 sts 204,r18
46 003a 8091 C800 lds r24,200
47 003e 8260 ori r24,lo8(2)
48 0040 8093 C800 sts 200,r24
49 0044 80E1 ldi r24,lo8(16)
50 0046 8093 C900 sts 201,r24
51 004a 8091 CA00 lds r24,202
52 004e 8F77 andi r24,lo8(127)
53 0050 8093 CA00 sts 202,r24
54 0054 8091 CA00 lds r24,202
55 0058 8F7B andi r24,lo8(-65)
56 005a 8093 CA00 sts 202,r24
57 005e 8091 CA00 lds r24,202
58 0062 8F7D andi r24,lo8(-33)
59 0064 8093 CA00 sts 202,r24
60 0068 8091 CA00 lds r24,202
61 006c 8F7E andi r24,lo8(-17)
62 006e 8093 CA00 sts 202,r24
63 0072 8091 CA00 lds r24,202
64 0076 877F andi r24,lo8(-9)
65 0078 8093 CA00 sts 202,r24
66 007c 8091 C900 lds r24,201
67 0080 8B7F andi r24,lo8(-5)
68 0082 8093 C900 sts 201,r24
69 0086 8091 CA00 lds r24,202
70 008a 8460 ori r24,lo8(4)
71 008c 8093 CA00 sts 202,r24
72 0090 8091 CA00 lds r24,202
73 0094 8260 ori r24,lo8(2)
74 0096 8093 CA00 sts 202,r24
75 .L7:
76 009a 8091 C800 lds r24,200
77 009e 87FF sbrs r24,7
78 00a0 03C0 rjmp .L6
79 00a2 8091 CE00 lds r24,206
80 00a6 F9CF rjmp .L7
81 .L6:
82 00a8 8091 C900 lds r24,201
83 00ac 8068 ori r24,lo8(-128)
84 00ae 8093 C900 sts 201,r24
85 00b2 4FBF out 95-0x20,r20
86 /* epilogue: frame size=0 */
87 00b4 0895 ret
88 /* epilogue end (size=1) */
89 /* function SpektrumUartInit size 92 (91) */
91 .section .progmem.data,"a",@progbits
94 __c.5:
95 0000 0A0D 506C .string "\n\rPlease connect Spektrum receiver for binding NOW..."
95 6561 7365
95 2063 6F6E
95 6E65 6374
95 2053 7065
98 __c.6:
99 0036 6F6B 2E0A .string "ok.\n\r"
99 0D00
102 __c.7:
103 003c 5469 6D65 .string "Timeout.\n\r"
103 6F75 742E
103 0A0D 00
104 .text
105 .global SpektrumBinding
107 SpektrumBinding:
108 /* prologue: frame size=0 */
109 00b6 FF92 push r15
110 00b8 0F93 push r16
111 00ba 1F93 push r17
112 00bc CF93 push r28
113 00be DF93 push r29
114 /* prologue end (size=5) */
115 00c0 80E1 ldi r24,lo8(10000)
116 00c2 97E2 ldi r25,hi8(10000)
117 00c4 0E94 0000 call SetDelay
118 00c8 EC01 movw r28,r24
119 00ca FF24 clr r15
120 00cc 8091 C900 lds r24,201
121 00d0 8F77 andi r24,lo8(127)
122 00d2 8093 C900 sts 201,r24
123 00d6 8091 C900 lds r24,201
124 00da 8F7E andi r24,lo8(-17)
125 00dc 8093 C900 sts 201,r24
126 00e0 5A98 cbi 43-0x20,2
127 00e2 80E0 ldi r24,lo8(__c.5)
128 00e4 90E0 ldi r25,hi8(__c.5)
129 00e6 9F93 push r25
130 00e8 8F93 push r24
131 00ea 00E0 ldi r16,lo8(pm(uart_putchar))
132 00ec 10E0 ldi r17,hi8(pm(uart_putchar))
133 00ee 1F93 push r17
134 00f0 0F93 push r16
135 00f2 E091 0000 lds r30,_printf_P
136 00f6 F091 0000 lds r31,(_printf_P)+1
137 00fa 0995 icall
138 00fc 0F90 pop __tmp_reg__
139 00fe 0F90 pop __tmp_reg__
140 0100 0F90 pop __tmp_reg__
141 0102 0F90 pop __tmp_reg__
142 0104 02C0 rjmp .L9
143 .L12:
144 0106 4A99 sbic 41-0x20,2
145 0108 6CC0 rjmp .L96
146 .L9:
147 010a CE01 movw r24,r28
148 010c 0E94 0000 call CheckDelay
149 0110 8823 tst r24
150 0112 C9F3 breq .L12
151 .L10:
152 0114 E091 0000 lds r30,_printf_P
153 0118 F091 0000 lds r31,(_printf_P)+1
154 011c FF20 tst r15
155 011e 09F4 brne .+2
156 0120 68C0 rjmp .L13
157 0122 80E0 ldi r24,lo8(__c.6)
158 0124 90E0 ldi r25,hi8(__c.6)
159 0126 9F93 push r25
160 0128 8F93 push r24
161 012a 1F93 push r17
162 012c 0F93 push r16
163 012e 0995 icall
164 0130 529A sbi 42-0x20,2
165 0132 0F90 pop __tmp_reg__
166 0134 0F90 pop __tmp_reg__
167 0136 0F90 pop __tmp_reg__
168 0138 0F90 pop __tmp_reg__
169 .L14:
170 013a CE01 movw r24,r28
171 013c 0E94 0000 call CheckDelay
172 0140 8823 tst r24
173 0142 D9F3 breq .L14
174 0144 83E6 ldi r24,lo8(99)
175 0146 90E0 ldi r25,hi8(99)
176 .L20:
177 0148 5A9A sbi 43-0x20,2
178 014a 0197 sbiw r24,1
179 014c 97FF sbrs r25,7
180 014e FCCF rjmp .L20
181 0150 8FE8 ldi r24,lo8(399)
182 0152 91E0 ldi r25,hi8(399)
183 .L24:
184 0154 5A98 cbi 43-0x20,2
185 0156 0197 sbiw r24,1
186 0158 97FF sbrs r25,7
187 015a FCCF rjmp .L24
188 015c 89E0 ldi r24,lo8(9)
189 015e 90E0 ldi r25,hi8(9)
190 .L28:
191 0160 5A9A sbi 43-0x20,2
192 0162 0197 sbiw r24,1
193 0164 97FF sbrs r25,7
194 0166 FCCF rjmp .L28
195 0168 89E0 ldi r24,lo8(9)
196 016a 90E0 ldi r25,hi8(9)
197 .L32:
198 016c 5A98 cbi 43-0x20,2
199 016e 0197 sbiw r24,1
200 0170 97FF sbrs r25,7
201 0172 FCCF rjmp .L32
202 0174 8FE8 ldi r24,lo8(399)
203 0176 91E0 ldi r25,hi8(399)
204 .L36:
205 0178 5A9A sbi 43-0x20,2
206 017a 0197 sbiw r24,1
207 017c 97FF sbrs r25,7
208 017e FCCF rjmp .L36
209 0180 8FE8 ldi r24,lo8(399)
210 0182 91E0 ldi r25,hi8(399)
211 .L40:
212 0184 5A98 cbi 43-0x20,2
213 0186 0197 sbiw r24,1
214 0188 97FF sbrs r25,7
215 018a FCCF rjmp .L40
216 018c 89E0 ldi r24,lo8(9)
217 018e 90E0 ldi r25,hi8(9)
218 .L44:
219 0190 5A9A sbi 43-0x20,2
220 0192 0197 sbiw r24,1
221 0194 97FF sbrs r25,7
222 0196 FCCF rjmp .L44
223 0198 89E0 ldi r24,lo8(9)
224 019a 90E0 ldi r25,hi8(9)
225 .L48:
226 019c 5A98 cbi 43-0x20,2
227 019e 0197 sbiw r24,1
228 01a0 97FF sbrs r25,7
229 01a2 FCCF rjmp .L48
230 01a4 8FE8 ldi r24,lo8(399)
231 01a6 91E0 ldi r25,hi8(399)
232 .L52:
233 01a8 5A9A sbi 43-0x20,2
234 01aa 0197 sbiw r24,1
235 01ac 97FF sbrs r25,7
236 01ae FCCF rjmp .L52
237 01b0 8FE8 ldi r24,lo8(399)
238 01b2 91E0 ldi r25,hi8(399)
239 .L56:
240 01b4 5A98 cbi 43-0x20,2
241 01b6 0197 sbiw r24,1
242 01b8 97FF sbrs r25,7
243 01ba FCCF rjmp .L56
244 01bc 89E0 ldi r24,lo8(9)
245 01be 90E0 ldi r25,hi8(9)
246 .L60:
247 01c0 5A9A sbi 43-0x20,2
248 01c2 0197 sbiw r24,1
249 01c4 97FF sbrs r25,7
250 01c6 FCCF rjmp .L60
251 01c8 89E0 ldi r24,lo8(9)
252 01ca 90E0 ldi r25,hi8(9)
253 .L64:
254 01cc 5A98 cbi 43-0x20,2
255 01ce 0197 sbiw r24,1
256 01d0 97FF sbrs r25,7
257 01d2 FCCF rjmp .L64
258 01d4 8FE8 ldi r24,lo8(399)
259 01d6 91E0 ldi r25,hi8(399)
260 .L68:
261 01d8 5A9A sbi 43-0x20,2
262 01da 0197 sbiw r24,1
263 01dc 97FF sbrs r25,7
264 01de FCCF rjmp .L68
265 01e0 13C0 rjmp .L69
266 .L96:
267 01e2 8AE5 ldi r24,lo8(90)
268 01e4 90E0 ldi r25,hi8(90)
269 01e6 0E94 0000 call SetDelay
270 01ea EC01 movw r28,r24
271 01ec 91E0 ldi r25,lo8(1)
272 01ee F92E mov r15,r25
273 01f0 91CF rjmp .L10
274 .L13:
275 01f2 80E0 ldi r24,lo8(__c.7)
276 01f4 90E0 ldi r25,hi8(__c.7)
277 01f6 9F93 push r25
278 01f8 8F93 push r24
279 01fa 1F93 push r17
280 01fc 0F93 push r16
281 01fe 0995 icall
282 0200 0F90 pop __tmp_reg__
283 0202 0F90 pop __tmp_reg__
284 0204 0F90 pop __tmp_reg__
285 0206 0F90 pop __tmp_reg__
286 .L69:
287 0208 5298 cbi 42-0x20,2
288 020a 5A98 cbi 43-0x20,2
289 020c 0E94 0000 call SpektrumUartInit
290 /* epilogue: frame size=0 */
291 0210 E5E0 ldi r30,5
292 0212 CDB7 in r28,__SP_L__
293 0214 DEB7 in r29,__SP_H__
294 0216 0C94 0000 jmp __epilogue_restores__+26
295 /* epilogue end (size=5) */
296 /* function SpektrumBinding size 178 (168) */
298 .lcomm Sync.0,1
299 .lcomm FrameCnt.1,1
300 .lcomm ByteHigh.2,1
301 .data
304 ReSync.3:
305 0000 01 .byte 1
306 .lcomm Frame2.4,1
307 .text
308 .global SpektrumParser
310 SpektrumParser:
311 /* prologue: frame size=0 */
312 021a EF92 push r14
313 021c FF92 push r15
314 021e 0F93 push r16
315 0220 1F93 push r17
316 0222 CF93 push r28
317 0224 DF93 push r29
318 /* prologue end (size=6) */
319 0226 482F mov r20,r24
320 0228 00E0 ldi r16,lo8(0)
321 022a 10E0 ldi r17,hi8(0)
322 022c 8091 0000 lds r24,ReSync.3
323 0230 8130 cpi r24,lo8(1)
324 0232 61F4 brne .L98
325 0234 1092 0000 sts ReSync.3,__zero_reg__
326 0238 84E4 ldi r24,lo8(68)
327 023a 8093 0000 sts SpektrumTimer,r24
328 023e 1092 0000 sts FrameCnt.1,__zero_reg__
329 0242 1092 0000 sts Sync.0,__zero_reg__
330 0246 1092 0000 sts ByteHigh.2,__zero_reg__
331 024a 2BC1 rjmp .L97
332 .L98:
333 024c 8091 0000 lds r24,SpektrumTimer
334 0250 8823 tst r24
335 0252 19F4 brne .L100
336 0254 21E0 ldi r18,lo8(1)
337 0256 30E0 ldi r19,hi8(1)
338 0258 01C0 rjmp .L101
339 .L100:
340 025a 9801 movw r18,r16
341 .L101:
342 025c 9091 0000 lds r25,Sync.0
343 0260 9923 tst r25
344 0262 71F4 brne .L102
345 0264 232B or r18,r19
346 0266 11F0 breq .L103
347 0268 81E0 ldi r24,lo8(1)
348 026a 10C0 rjmp .L138
349 .L103:
350 026c 84E4 ldi r24,lo8(68)
351 026e 8093 0000 sts SpektrumTimer,r24
352 0272 9093 0000 sts FrameCnt.1,r25
353 0276 9093 0000 sts Sync.0,r25
354 027a 9093 0000 sts ByteHigh.2,r25
355 027e FAC0 rjmp .L105
356 .L102:
357 0280 9130 cpi r25,lo8(1)
358 0282 69F4 brne .L106
359 0284 232B or r18,r19
360 0286 09F0 breq .+2
361 0288 EBC0 rjmp .L112
362 028a 82E0 ldi r24,lo8(2)
363 .L138:
364 028c 8093 0000 sts Sync.0,r24
365 0290 8091 0000 lds r24,FrameCnt.1
366 0294 8F5F subi r24,lo8(-(1))
367 0296 8093 0000 sts FrameCnt.1,r24
368 029a 83E0 ldi r24,lo8(3)
369 029c E9C0 rjmp .L136
370 .L106:
371 029e 9230 cpi r25,lo8(2)
372 02a0 D1F4 brne .L108
373 02a2 232B or r18,r19
374 02a4 09F0 breq .+2
375 02a6 DCC0 rjmp .L112
376 02a8 83E0 ldi r24,lo8(3)
377 02aa 8093 0000 sts SpektrumTimer,r24
378 02ae 4093 0000 sts ByteHigh.2,r20
379 02b2 9091 0000 lds r25,FrameCnt.1
380 02b6 9230 cpi r25,lo8(2)
381 02b8 39F4 brne .L109
382 02ba 1092 0000 sts Frame2.4,__zero_reg__
383 02be 47FF sbrs r20,7
384 02c0 03C0 rjmp .L109
385 02c2 81E0 ldi r24,lo8(1)
386 02c4 8093 0000 sts Frame2.4,r24
387 .L109:
388 02c8 83E0 ldi r24,lo8(3)
389 02ca 8093 0000 sts Sync.0,r24
390 02ce 9F5F subi r25,lo8(-(1))
391 02d0 9093 0000 sts FrameCnt.1,r25
392 02d4 CFC0 rjmp .L105
393 .L108:
394 02d6 9330 cpi r25,lo8(3)
395 02d8 09F0 breq .+2
396 02da C2C0 rjmp .L112
397 02dc 232B or r18,r19
398 02de 09F0 breq .+2
399 02e0 BFC0 rjmp .L112
400 02e2 9093 0000 sts SpektrumTimer,r25
401 02e6 82E0 ldi r24,lo8(2)
402 02e8 8093 0000 sts Sync.0,r24
403 02ec 8091 0000 lds r24,FrameCnt.1
404 02f0 8F5F subi r24,lo8(-(1))
405 02f2 8093 0000 sts FrameCnt.1,r24
406 02f6 2091 0000 lds r18,ByteHigh.2
407 02fa 822F mov r24,r18
408 02fc 9927 clr r25
409 02fe 782F mov r23,r24
410 0300 6627 clr r22
411 0302 842F mov r24,r20
412 0304 9927 clr r25
413 0306 682B or r22,r24
414 0308 792B or r23,r25
415 030a 8091 0000 lds r24,EE_Parameter+39
416 030e 8130 cpi r24,lo8(1)
417 0310 49F4 brne .L113
418 0312 7370 andi r23,hi8(1023)
419 0314 CB01 movw r24,r22
420 0316 8050 subi r24,lo8(-(-512))
421 0318 9240 sbci r25,hi8(-(-512))
422 031a 63E0 ldi r22,lo8(3)
423 031c 70E0 ldi r23,hi8(3)
424 031e 0E94 0000 call __divmodhi4
425 0322 17C0 rjmp .L137
426 .L113:
427 0324 8230 cpi r24,lo8(2)
428 0326 61F4 brne .L115
429 0328 7770 andi r23,hi8(2047)
430 032a CB01 movw r24,r22
431 032c 8050 subi r24,lo8(-(-1024))
432 032e 9440 sbci r25,hi8(-(-1024))
433 0330 66E0 ldi r22,lo8(6)
434 0332 70E0 ldi r23,hi8(6)
435 0334 0E94 0000 call __divmodhi4
436 0338 2695 lsr r18
437 033a 2695 lsr r18
438 033c 2695 lsr r18
439 033e 0BC0 rjmp .L135
440 .L115:
441 0340 7370 andi r23,hi8(1023)
442 0342 6856 subi r22,lo8(-(-360))
443 0344 7140 sbci r23,hi8(-(-360))
444 0346 CB01 movw r24,r22
445 0348 77FD sbrc r23,7
446 034a 0196 adiw r24,1
447 .L117:
448 034c BC01 movw r22,r24
449 034e 7595 asr r23
450 0350 6795 ror r22
451 .L137:
452 0352 2695 lsr r18
453 0354 2695 lsr r18
454 .L135:
455 0356 022F mov r16,r18
456 0358 1127 clr r17
457 035a 0F70 andi r16,lo8(15)
458 035c 1070 andi r17,hi8(15)
459 035e 0F5F subi r16,lo8(-(1))
460 0360 1F4F sbci r17,hi8(-(1))
461 0362 0D30 cpi r16,13
462 0364 1105 cpc r17,__zero_reg__
463 0366 08F0 brlo .+2
464 0368 74C0 rjmp .L118
465 036a 7801 movw r14,r16
466 036c E00E add r14,r16
467 036e F11E adc r15,r17
468 0370 F701 movw r30,r14
469 0372 E050 subi r30,lo8(-(PPM_in))
470 0374 F040 sbci r31,hi8(-(PPM_in))
471 0376 8081 ld r24,Z
472 0378 9181 ldd r25,Z+1
473 037a 9B01 movw r18,r22
474 037c 281B sub r18,r24
475 037e 390B sbc r19,r25
476 0380 C901 movw r24,r18
477 0382 37FF sbrs r19,7
478 0384 03C0 rjmp .L120
479 0386 9095 com r25
480 0388 8195 neg r24
481 038a 9F4F sbci r25,lo8(-1)
482 .L120:
483 038c 0697 sbiw r24,6
484 038e 94F4 brge .L119
485 0390 8091 0000 lds r24,SenderOkay
486 0394 883C cpi r24,lo8(-56)
487 0396 30F4 brsh .L121
488 0398 8091 0000 lds r24,SenderOkay
489 039c 865F subi r24,lo8(-(10))
490 039e 8093 0000 sts SenderOkay,r24
491 03a2 08C0 rjmp .L119
492 .L121:
493 03a4 88EC ldi r24,lo8(-56)
494 03a6 8093 0000 sts SenderOkay,r24
495 03aa 8091 6F00 lds r24,111
496 03ae 8F7D andi r24,lo8(-33)
497 03b0 8093 6F00 sts 111,r24
498 .L119:
499 03b4 F701 movw r30,r14
500 03b6 E050 subi r30,lo8(-(PPM_in))
501 03b8 F040 sbci r31,hi8(-(PPM_in))
502 03ba 8081 ld r24,Z
503 03bc 9181 ldd r25,Z+1
504 03be 9C01 movw r18,r24
505 03c0 220F lsl r18
506 03c2 331F rol r19
507 03c4 280F add r18,r24
508 03c6 391F adc r19,r25
509 03c8 260F add r18,r22
510 03ca 371F adc r19,r23
511 03cc 37FF sbrs r19,7
512 03ce 02C0 rjmp .L123
513 03d0 2D5F subi r18,lo8(-(3))
514 03d2 3F4F sbci r19,hi8(-(3))
515 .L123:
516 03d4 E901 movw r28,r18
517 03d6 D595 asr r29
518 03d8 C795 ror r28
519 03da D595 asr r29
520 03dc C795 ror r28
521 03de CB01 movw r24,r22
522 03e0 0196 adiw r24,1
523 03e2 8C17 cp r24,r28
524 03e4 9D07 cpc r25,r29
525 03e6 14F4 brge .L124
526 03e8 2197 sbiw r28,1
527 03ea 06C0 rjmp .L125
528 .L124:
529 03ec 6150 subi r22,lo8(-(-1))
530 03ee 7040 sbci r23,hi8(-(-1))
531 03f0 C617 cp r28,r22
532 03f2 D707 cpc r29,r23
533 03f4 0CF4 brge .L125
534 03f6 2196 adiw r28,1
535 .L125:
536 03f8 8091 0000 lds r24,SenderOkay
537 03fc 843B cpi r24,lo8(-76)
538 03fe D0F0 brlo .L127
539 0400 F701 movw r30,r14
540 0402 E050 subi r30,lo8(-(PPM_in))
541 0404 F040 sbci r31,hi8(-(PPM_in))
542 0406 8081 ld r24,Z
543 0408 9181 ldd r25,Z+1
544 040a FE01 movw r30,r28
545 040c E81B sub r30,r24
546 040e F90B sbc r31,r25
547 0410 CF01 movw r24,r30
548 0412 63E0 ldi r22,lo8(3)
549 0414 70E0 ldi r23,hi8(3)
550 0416 0E94 0000 call __divmodhi4
551 041a CB01 movw r24,r22
552 041c 880F lsl r24
553 041e 991F rol r25
554 0420 860F add r24,r22
555 0422 971F adc r25,r23
556 0424 20E0 ldi r18,lo8(PPM_diff)
557 0426 30E0 ldi r19,hi8(PPM_diff)
558 0428 E20E add r14,r18
559 042a F31E adc r15,r19
560 042c F701 movw r30,r14
561 042e 9183 std Z+1,r25
562 0430 8083 st Z,r24
563 0432 07C0 rjmp .L128
564 .L127:
565 0434 20E0 ldi r18,lo8(PPM_diff)
566 0436 30E0 ldi r19,hi8(PPM_diff)
567 0438 E20E add r14,r18
568 043a F31E adc r15,r19
569 043c F701 movw r30,r14
570 043e 1182 std Z+1,__zero_reg__
571 0440 1082 st Z,__zero_reg__
572 .L128:
573 0442 000F add r16,r16
574 0444 111F adc r17,r17
575 0446 0050 subi r16,lo8(-(PPM_in))
576 0448 1040 sbci r17,hi8(-(PPM_in))
577 044a F801 movw r30,r16
578 044c D183 std Z+1,r29
579 044e C083 st Z,r28
580 0450 11C0 rjmp .L105
581 .L118:
582 0452 0231 cpi r16,18
583 0454 1105 cpc r17,__zero_reg__
584 0456 70F0 brlo .L105
585 0458 81E0 ldi r24,lo8(1)
586 045a 8093 0000 sts ReSync.3,r24
587 045e 0AC0 rjmp .L105
588 .L112:
589 0460 81E0 ldi r24,lo8(1)
590 0462 8093 0000 sts ReSync.3,r24
591 0466 1092 0000 sts FrameCnt.1,__zero_reg__
592 046a 1092 0000 sts Frame2.4,__zero_reg__
593 046e 84E4 ldi r24,lo8(68)
594 .L136:
595 0470 8093 0000 sts SpektrumTimer,r24
596 .L105:
597 0474 8091 0000 lds r24,FrameCnt.1
598 0478 8031 cpi r24,lo8(16)
599 047a 98F0 brlo .L97
600 047c 8091 0000 lds r24,Frame2.4
601 0480 8823 tst r24
602 0482 31F4 brne .L133
603 0484 8091 0000 lds r24,ReSync.3
604 0488 8823 tst r24
605 048a 11F4 brne .L133
606 048c 8093 0000 sts NewPpmData,r24
607 .L133:
608 0490 1092 0000 sts FrameCnt.1,__zero_reg__
609 0494 1092 0000 sts Frame2.4,__zero_reg__
610 0498 1092 0000 sts Sync.0,__zero_reg__
611 049c 84E4 ldi r24,lo8(68)
612 049e 8093 0000 sts SpektrumTimer,r24
613 .L97:
614 /* epilogue: frame size=0 */
615 04a2 E6E0 ldi r30,6
616 04a4 CDB7 in r28,__SP_L__
617 04a6 DEB7 in r29,__SP_H__
618 04a8 0C94 0000 jmp __epilogue_restores__+24
619 /* epilogue end (size=5) */
620 /* function SpektrumParser size 334 (323) */
622 /* File "Spektrum.c": code 604 = 0x025c ( 582), prologues 11, epilogues 11 */
DEFINED SYMBOLS
*ABS*:00000000 Spektrum.c
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:15 .bss:00000000 SpektrumTimer
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:20 .text:00000000 SpektrumUartInit
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:94 .progmem.data:00000000 __c.5
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:98 .progmem.data:00000036 __c.6
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:102 .progmem.data:0000003c __c.7
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:107 .text:000000b6 SpektrumBinding
.bss:00000001 Sync.0
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:298 .bss:00000002 FrameCnt.1
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:299 .bss:00000003 ByteHigh.2
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:304 .data:00000000 ReSync.3
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:300 .bss:00000004 Frame2.4
C:\Users\Arthur-P\AppData\Local\Temp/ccYtaaaa.s:310 .text:0000021a SpektrumParser
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SetDelay
uart_putchar
_printf_P
CheckDelay
__epilogue_restores__
EE_Parameter
__divmodhi4
PPM_in
SenderOkay
PPM_diff
NewPpmData
/branches/V0.80d-Arthur-P/analog.c
0,0 → 1,252
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "main.h"
#include "eeprom.h"
volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az, UBat = 100;
volatile int AdWertNickFilter = 0, AdWertRollFilter = 0, AdWertGierFilter = 0;
volatile int HiResNick = 2500, HiResRoll = 2500;
volatile int AdWertNick = 0, AdWertRoll = 0, AdWertGier = 0;
volatile int AdWertAccRoll = 0,AdWertAccNick = 0,AdWertAccHoch = 0;
volatile char messanzahl_AccHoch = 0;
volatile long Luftdruck = 32000;
volatile long SummenHoehe = 0;
volatile int StartLuftdruck;
volatile unsigned int MessLuftdruck = 1023;
unsigned char DruckOffsetSetting;
signed char ExpandBaro = 0;
volatile int VarioMeter = 0;
volatile unsigned int ZaehlMessungen = 0;
unsigned char AnalogOffsetNick = 115,AnalogOffsetRoll = 115,AnalogOffsetGier = 115;
volatile unsigned char AdReady = 1;
float NeutralAccZ_float;
//#######################################################################################
//
void ADC_Init(void)
//#######################################################################################
{
ADMUX = 0;//Referenz ist extern
ANALOG_ON;
}
 
#define DESIRED_H_ADC 800
 
void SucheLuftruckOffset(void)
{
unsigned int off;
off = GetParamByte(PID_PRESSURE_OFFSET);
if(off > 20) off -= 10;
OCR0A = off;
ExpandBaro = 0;
Delay_ms_Mess(100);
if(MessLuftdruck < DESIRED_H_ADC) off = 0;
for(; off < 250;off++)
{
OCR0A = off;
Delay_ms_Mess(50);
printf(".");
if(MessLuftdruck < DESIRED_H_ADC) break;
}
SetParamByte(PID_PRESSURE_OFFSET, off);
DruckOffsetSetting = off;
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && (DruckOffsetSetting < 10 || DruckOffsetSetting >= 245)) VersionInfo.HardwareError[0] |= DEFEKT_PRESSURE;
OCR0A = off;
Delay_ms_Mess(300);
}
 
void SucheGyroOffset(void)
{
unsigned char i, ready = 0;
int timeout;
timeout = SetDelay(2000);
for(i=140; i != 0; i--)
{
if(ready == 3 && i > 10) i = 9;
ready = 0;
if(AdWertNick < 1020) AnalogOffsetNick--; else if(AdWertNick > 1030) AnalogOffsetNick++; else ready++;
if(AdWertRoll < 1020) AnalogOffsetRoll--; else if(AdWertRoll > 1030) AnalogOffsetRoll++; else ready++;
if(AdWertGier < 1020) AnalogOffsetGier--; else if(AdWertGier > 1030) AnalogOffsetGier++; else ready++;
I2C_Start(TWI_STATE_GYRO_OFFSET_TX);
if(AnalogOffsetNick < 10) { VersionInfo.HardwareError[0] |= DEFEKT_G_NICK; AnalogOffsetNick = 10;}; if(AnalogOffsetNick > 245) { VersionInfo.HardwareError[0] |= DEFEKT_G_NICK; AnalogOffsetNick = 245;};
if(AnalogOffsetRoll < 10) { VersionInfo.HardwareError[0] |= DEFEKT_G_ROLL; AnalogOffsetRoll = 10;}; if(AnalogOffsetRoll > 245) { VersionInfo.HardwareError[0] |= DEFEKT_G_ROLL; AnalogOffsetRoll = 245;};
if(AnalogOffsetGier < 10) { VersionInfo.HardwareError[0] |= DEFEKT_G_GIER; AnalogOffsetGier = 10;}; if(AnalogOffsetGier > 245) { VersionInfo.HardwareError[0] |= DEFEKT_G_GIER; AnalogOffsetGier = 245;};
while(twi_state) if(CheckDelay(timeout)) {printf("\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"); break;}
AdReady = 0;
ANALOG_ON;
while(!AdReady);
if(i<10) Delay_ms_Mess(10);
}
Delay_ms_Mess(70);
}
 
/*
0 n
1 r
2 g
3 y
4 x
5 n
6 r
7 u
8 z
9 L
10 n
11 r
12 g
13 y
14 x
15 n
16 r
17 L
*/
 
//#######################################################################################
//
ISR(ADC_vect)
//#######################################################################################
{
static unsigned char kanal=0,state = 0;
static signed char subcount = 0;
static signed int gier1, roll1, nick1, nick_filter, roll_filter;
static signed int accy, accx;
static long tmpLuftdruck = 0;
static char messanzahl_Druck = 0;
switch(state++)
{
case 0:
nick1 = ADC;
kanal = AD_ROLL;
break;
case 1:
roll1 = ADC;
kanal = AD_GIER;
break;
case 2:
gier1 = ADC;
kanal = AD_ACC_Y;
break;
case 3:
Aktuell_ay = NeutralAccY - ADC;
accy = Aktuell_ay;
kanal = AD_ACC_X;
break;
case 4:
Aktuell_ax = ADC - NeutralAccX;
accx = Aktuell_ax;
kanal = AD_NICK;
break;
case 5:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 6:
roll1 += ADC;
kanal = AD_UBAT;
break;
case 7:
UBat = (3 * UBat + ADC / 3) / 4;
kanal = AD_ACC_Z;
break;
case 8:
AdWertAccHoch = (signed int) ADC - NeutralAccZ;
if(AdWertAccHoch > 1)
{
if(NeutralAccZ < 750)
{
subcount += 5;
if(modell_fliegt < 500) subcount += 10;
}
if(subcount > 100) { NeutralAccZ++; subcount -= 100;}
}
else if(AdWertAccHoch < -1)
{
if(NeutralAccZ > 550)
{
subcount -= 5;
if(modell_fliegt < 500) subcount -= 10;
if(subcount < -100) { NeutralAccZ--; subcount += 100;}
}
}
messanzahl_AccHoch = 1;
Aktuell_az = ADC;
Mess_Integral_Hoch += AdWertAccHoch; // Integrieren
Mess_Integral_Hoch -= Mess_Integral_Hoch / 1024; // dämfen
kanal = AD_DRUCK;
break;
// "case 9:" fehlt hier absichtlich
case 10:
nick1 += ADC;
kanal = AD_ROLL;
break;
case 11:
roll1 += ADC;
kanal = AD_GIER;
break;
case 12:
if(PlatinenVersion == 10) AdWertGier = (ADC + gier1 + 1) / 2;
else
if(PlatinenVersion >= 20) AdWertGier = 2047 - (ADC + gier1);
else AdWertGier = (ADC + gier1);
kanal = AD_ACC_Y;
break;
case 13:
Aktuell_ay = NeutralAccY - ADC;
AdWertAccRoll = (Aktuell_ay + accy);
kanal = AD_ACC_X;
break;
case 14:
Aktuell_ax = ADC - NeutralAccX;
AdWertAccNick = (Aktuell_ax + accx);
kanal = AD_NICK;
break;
case 15:
nick1 += ADC;
if(PlatinenVersion == 10) nick1 *= 2; else nick1 *= 4;
AdWertNick = nick1 / 8;
nick_filter = (nick_filter + nick1) / 2;
HiResNick = nick_filter - AdNeutralNick;
AdWertNickFilter = (AdWertNickFilter + HiResNick) / 2;
kanal = AD_ROLL;
break;
case 16:
roll1 += ADC;
if(PlatinenVersion == 10) roll1 *= 2; else roll1 *= 4;
AdWertRoll = roll1 / 8;
roll_filter = (roll_filter + roll1) / 2;
HiResRoll = roll_filter - AdNeutralRoll;
AdWertRollFilter = (AdWertRollFilter + HiResRoll) / 2;
kanal = AD_DRUCK;
break;
case 17:
state = 0;
AdReady = 1;
ZaehlMessungen++;
// "break" fehlt hier absichtlich
case 9:
MessLuftdruck = ADC;
tmpLuftdruck += MessLuftdruck;
if(++messanzahl_Druck >= 18)
{
Luftdruck = (7 * Luftdruck + tmpLuftdruck - (18 * 523) * (long)ExpandBaro + 4) / 8; // -523.19 counts per 10 counts offset step
HoehenWert = StartLuftdruck - Luftdruck;
SummenHoehe -= SummenHoehe/SM_FILTER;
SummenHoehe += HoehenWert;
VarioMeter = (31 * VarioMeter + 8 * (int)(HoehenWert - SummenHoehe/SM_FILTER))/32;
tmpLuftdruck /= 2;
messanzahl_Druck = 18/2;
}
kanal = AD_NICK;
break;
default:
kanal = 0; state = 0; kanal = AD_NICK;
break;
}
ADMUX = kanal;
if(state != 0) ANALOG_ON;
}
 
/branches/V0.80d-Arthur-P/analog.d
0,0 → 1,3
analog.o analog.d : analog.c main.h old_macros.h printf_P.h timer0.h uart.h \
analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h \
capacity.h eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/analog.h
0,0 → 1,47
#ifndef _ANALOG_H
#define _ANALOG_H
/*#######################################################################################
 
#######################################################################################*/
 
#define SM_FILTER 16
 
extern volatile int UBat;
extern volatile int AdWertNick, AdWertRoll, AdWertGier;
extern volatile int AdWertAccRoll,AdWertAccNick,AdWertAccHoch;
extern volatile int HiResNick, HiResRoll;
extern volatile int AdWertNickFilter, AdWertRollFilter, AdWertGierFilter;
extern volatile int Aktuell_Nick,Aktuell_Roll,Aktuell_Gier,Aktuell_ax, Aktuell_ay,Aktuell_az;
extern volatile long Luftdruck;
extern volatile long SummenHoehe;
extern volatile char messanzahl_Druck;
extern volatile unsigned int ZaehlMessungen;
extern unsigned char DruckOffsetSetting;
extern signed char ExpandBaro;
extern volatile int VarioMeter;
extern volatile unsigned int MessLuftdruck;
extern volatile int StartLuftdruck;
extern volatile char MessanzahlNick;
extern unsigned char AnalogOffsetNick,AnalogOffsetRoll,AnalogOffsetGier;
extern volatile unsigned char AdReady;
 
unsigned int ReadADC(unsigned char adc_input);
void ADC_Init(void);
void SucheLuftruckOffset(void);
void SucheGyroOffset(void);
 
#define AD_GIER 0
#define AD_ROLL 1
#define AD_NICK 2
#define AD_DRUCK 3
#define AD_UBAT 4
#define AD_ACC_Z 5
#define AD_ACC_Y 6
#define AD_ACC_X 7
 
 
#define ANALOG_OFF ADCSRA=0
 
#define ANALOG_ON ADCSRA=(1<<ADEN)|(1<<ADSC)|(0<<ADATE)|(1<<ADPS2)|(1<<ADPS1)|(1<<ADPS0)|(1<<ADIE)
//Signle trigger Mode, Interrupt on
#endif //_ANALOG_H
/branches/V0.80d-Arthur-P/analog.lst
0,0 → 1,1304
1 .file "analog.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global AdReady
11 .data
14 AdReady:
15 0000 01 .byte 1
16 .global AnalogOffsetGier
19 AnalogOffsetGier:
20 0001 73 .byte 115
21 .global AnalogOffsetRoll
24 AnalogOffsetRoll:
25 0002 73 .byte 115
26 .global AnalogOffsetNick
29 AnalogOffsetNick:
30 0003 73 .byte 115
31 .global ZaehlMessungen
32 .global ZaehlMessungen
33 .section .bss
36 ZaehlMessungen:
37 0000 0000 .skip 2,0
38 .global VarioMeter
39 .global VarioMeter
42 VarioMeter:
43 0002 0000 .skip 2,0
44 .global ExpandBaro
45 .global ExpandBaro
48 ExpandBaro:
49 0004 00 .skip 1,0
50 .global MessLuftdruck
51 .data
54 MessLuftdruck:
55 0004 FF03 .word 1023
56 .global SummenHoehe
57 .global SummenHoehe
58 .section .bss
61 SummenHoehe:
62 0005 0000 0000 .skip 4,0
63 .global Luftdruck
64 .data
67 Luftdruck:
68 0006 007D 0000 .long 32000
69 .global messanzahl_AccHoch
70 .global messanzahl_AccHoch
71 .section .bss
74 messanzahl_AccHoch:
75 0009 00 .skip 1,0
76 .global AdWertAccHoch
77 .global AdWertAccHoch
80 AdWertAccHoch:
81 000a 0000 .skip 2,0
82 .global AdWertAccNick
83 .global AdWertAccNick
86 AdWertAccNick:
87 000c 0000 .skip 2,0
88 .global AdWertAccRoll
89 .global AdWertAccRoll
92 AdWertAccRoll:
93 000e 0000 .skip 2,0
94 .global AdWertGier
95 .global AdWertGier
98 AdWertGier:
99 0010 0000 .skip 2,0
100 .global AdWertRoll
101 .global AdWertRoll
104 AdWertRoll:
105 0012 0000 .skip 2,0
106 .global AdWertNick
107 .global AdWertNick
110 AdWertNick:
111 0014 0000 .skip 2,0
112 .global HiResRoll
113 .data
116 HiResRoll:
117 000a C409 .word 2500
118 .global HiResNick
121 HiResNick:
122 000c C409 .word 2500
123 .global AdWertGierFilter
124 .global AdWertGierFilter
125 .section .bss
128 AdWertGierFilter:
129 0016 0000 .skip 2,0
130 .global AdWertRollFilter
131 .global AdWertRollFilter
134 AdWertRollFilter:
135 0018 0000 .skip 2,0
136 .global AdWertNickFilter
137 .global AdWertNickFilter
140 AdWertNickFilter:
141 001a 0000 .skip 2,0
142 .global UBat
143 .data
146 UBat:
147 000e 6400 .word 100
148 .text
149 .global ADC_Init
151 ADC_Init:
152 /* prologue: frame size=0 */
153 /* prologue end (size=0) */
154 0000 1092 7C00 sts 124,__zero_reg__
155 0004 8FEC ldi r24,lo8(-49)
156 0006 8093 7A00 sts 122,r24
157 /* epilogue: frame size=0 */
158 000a 0895 ret
159 /* epilogue end (size=1) */
160 /* function ADC_Init size 6 (5) */
162 .section .progmem.data,"a",@progbits
165 __c.13:
166 0000 2E00 .string "."
167 .text
168 .global SucheLuftruckOffset
170 SucheLuftruckOffset:
171 /* prologue: frame size=0 */
172 000c CF93 push r28
173 000e DF93 push r29
174 /* prologue end (size=2) */
175 0010 83E0 ldi r24,lo8(3)
176 0012 90E0 ldi r25,hi8(3)
177 0014 0E94 0000 call GetParamByte
178 0018 C82F mov r28,r24
179 001a DD27 clr r29
180 001c C531 cpi r28,21
181 001e D105 cpc r29,__zero_reg__
182 0020 08F0 brlo .L3
183 0022 2A97 sbiw r28,10
184 .L3:
185 0024 C7BD out 71-0x20,r28
186 0026 1092 0000 sts ExpandBaro,__zero_reg__
187 002a 84E6 ldi r24,lo8(100)
188 002c 90E0 ldi r25,hi8(100)
189 002e 0E94 0000 call Delay_ms_Mess
190 0032 8091 0000 lds r24,MessLuftdruck
191 0036 9091 0000 lds r25,(MessLuftdruck)+1
192 003a 8052 subi r24,lo8(800)
193 003c 9340 sbci r25,hi8(800)
194 003e 10F4 brsh .L4
195 0040 C0E0 ldi r28,lo8(0)
196 0042 D0E0 ldi r29,hi8(0)
197 .L4:
198 0044 CA3F cpi r28,250
199 0046 D105 cpc r29,__zero_reg__
200 0048 F8F4 brsh .L6
201 004a C7BD out 71-0x20,r28
202 004c 82E3 ldi r24,lo8(50)
203 004e 90E0 ldi r25,hi8(50)
204 0050 0E94 0000 call Delay_ms_Mess
205 0054 80E0 ldi r24,lo8(__c.13)
206 0056 90E0 ldi r25,hi8(__c.13)
207 0058 9F93 push r25
208 005a 8F93 push r24
209 005c 80E0 ldi r24,lo8(pm(uart_putchar))
210 005e 90E0 ldi r25,hi8(pm(uart_putchar))
211 0060 9F93 push r25
212 0062 8F93 push r24
213 0064 E091 0000 lds r30,_printf_P
214 0068 F091 0000 lds r31,(_printf_P)+1
215 006c 0995 icall
216 006e 8091 0000 lds r24,MessLuftdruck
217 0072 9091 0000 lds r25,(MessLuftdruck)+1
218 0076 0F90 pop __tmp_reg__
219 0078 0F90 pop __tmp_reg__
220 007a 0F90 pop __tmp_reg__
221 007c 0F90 pop __tmp_reg__
222 007e 8052 subi r24,lo8(800)
223 0080 9340 sbci r25,hi8(800)
224 0082 10F0 brlo .L6
225 0084 2196 adiw r28,1
226 0086 DECF rjmp .L4
227 .L6:
228 0088 6C2F mov r22,r28
229 008a 83E0 ldi r24,lo8(3)
230 008c 90E0 ldi r25,hi8(3)
231 008e 0E94 0000 call SetParamByte
232 0092 C093 0000 sts DruckOffsetSetting,r28
233 0096 8091 0000 lds r24,EE_Parameter+13
234 009a 80FF sbrs r24,0
235 009c 09C0 rjmp .L10
236 009e 8C2F mov r24,r28
237 00a0 8A50 subi r24,lo8(-(-10))
238 00a2 8B3E cpi r24,lo8(-21)
239 00a4 28F0 brlo .L10
240 00a6 8091 0000 lds r24,VersionInfo+5
241 00aa 8064 ori r24,lo8(64)
242 00ac 8093 0000 sts VersionInfo+5,r24
243 .L10:
244 00b0 C7BD out 71-0x20,r28
245 00b2 8CE2 ldi r24,lo8(300)
246 00b4 91E0 ldi r25,hi8(300)
247 00b6 0E94 0000 call Delay_ms_Mess
248 /* epilogue: frame size=0 */
249 00ba DF91 pop r29
250 00bc CF91 pop r28
251 00be 0895 ret
252 /* epilogue end (size=3) */
253 /* function SucheLuftruckOffset size 92 (87) */
255 .section .progmem.data
258 __c.12:
259 0002 0A0D 2044 .string "\n\r DAC or I2C ERROR! Check I2C, 3Vref, DAC and BL-Ctrl"
259 4143 206F
259 7220 4932
259 4320 4552
259 524F 5221
260 .text
261 .global SucheGyroOffset
263 SucheGyroOffset:
264 /* prologue: frame size=0 */
265 00c0 EF92 push r14
266 00c2 FF92 push r15
267 00c4 1F93 push r17
268 00c6 CF93 push r28
269 /* prologue end (size=4) */
270 00c8 10E0 ldi r17,lo8(0)
271 00ca 80ED ldi r24,lo8(2000)
272 00cc 97E0 ldi r25,hi8(2000)
273 00ce 0E94 0000 call SetDelay
274 00d2 7C01 movw r14,r24
275 00d4 CCE8 ldi r28,lo8(-116)
276 .L43:
277 00d6 1330 cpi r17,lo8(3)
278 00d8 19F4 brne .L16
279 00da CB30 cpi r28,lo8(11)
280 00dc 08F0 brlo .L16
281 00de C9E0 ldi r28,lo8(9)
282 .L16:
283 00e0 10E0 ldi r17,lo8(0)
284 00e2 8091 0000 lds r24,AdWertNick
285 00e6 9091 0000 lds r25,(AdWertNick)+1
286 00ea 8C5F subi r24,lo8(1020)
287 00ec 9340 sbci r25,hi8(1020)
288 00ee 24F4 brge .L17
289 00f0 8091 0000 lds r24,AnalogOffsetNick
290 00f4 8150 subi r24,lo8(-(-1))
291 00f6 0AC0 rjmp .L48
292 .L17:
293 00f8 8091 0000 lds r24,AdWertNick
294 00fc 9091 0000 lds r25,(AdWertNick)+1
295 0100 8750 subi r24,lo8(1031)
296 0102 9440 sbci r25,hi8(1031)
297 0104 34F0 brlt .L19
298 0106 8091 0000 lds r24,AnalogOffsetNick
299 010a 8F5F subi r24,lo8(-(1))
300 .L48:
301 010c 8093 0000 sts AnalogOffsetNick,r24
302 0110 01C0 rjmp .L18
303 .L19:
304 0112 11E0 ldi r17,lo8(1)
305 .L18:
306 0114 8091 0000 lds r24,AdWertRoll
307 0118 9091 0000 lds r25,(AdWertRoll)+1
308 011c 8C5F subi r24,lo8(1020)
309 011e 9340 sbci r25,hi8(1020)
310 0120 24F4 brge .L21
311 0122 8091 0000 lds r24,AnalogOffsetRoll
312 0126 8150 subi r24,lo8(-(-1))
313 0128 0AC0 rjmp .L49
314 .L21:
315 012a 8091 0000 lds r24,AdWertRoll
316 012e 9091 0000 lds r25,(AdWertRoll)+1
317 0132 8750 subi r24,lo8(1031)
318 0134 9440 sbci r25,hi8(1031)
319 0136 34F0 brlt .L23
320 0138 8091 0000 lds r24,AnalogOffsetRoll
321 013c 8F5F subi r24,lo8(-(1))
322 .L49:
323 013e 8093 0000 sts AnalogOffsetRoll,r24
324 0142 01C0 rjmp .L22
325 .L23:
326 0144 1F5F subi r17,lo8(-(1))
327 .L22:
328 0146 8091 0000 lds r24,AdWertGier
329 014a 9091 0000 lds r25,(AdWertGier)+1
330 014e 8C5F subi r24,lo8(1020)
331 0150 9340 sbci r25,hi8(1020)
332 0152 24F4 brge .L25
333 0154 8091 0000 lds r24,AnalogOffsetGier
334 0158 8150 subi r24,lo8(-(-1))
335 015a 0AC0 rjmp .L50
336 .L25:
337 015c 8091 0000 lds r24,AdWertGier
338 0160 9091 0000 lds r25,(AdWertGier)+1
339 0164 8750 subi r24,lo8(1031)
340 0166 9440 sbci r25,hi8(1031)
341 0168 C4F0 brlt .L27
342 016a 8091 0000 lds r24,AnalogOffsetGier
343 016e 8F5F subi r24,lo8(-(1))
344 .L50:
345 0170 8093 0000 sts AnalogOffsetGier,r24
346 0174 13C0 rjmp .L26
347 .L47:
348 0176 80E0 ldi r24,lo8(__c.12)
349 0178 90E0 ldi r25,hi8(__c.12)
350 017a 9F93 push r25
351 017c 8F93 push r24
352 017e 80E0 ldi r24,lo8(pm(uart_putchar))
353 0180 90E0 ldi r25,hi8(pm(uart_putchar))
354 0182 9F93 push r25
355 0184 8F93 push r24
356 0186 E091 0000 lds r30,_printf_P
357 018a F091 0000 lds r31,(_printf_P)+1
358 018e 0995 icall
359 0190 0F90 pop __tmp_reg__
360 0192 0F90 pop __tmp_reg__
361 0194 0F90 pop __tmp_reg__
362 0196 0F90 pop __tmp_reg__
363 0198 5FC0 rjmp .L36
364 .L27:
365 019a 1F5F subi r17,lo8(-(1))
366 .L26:
367 019c 82E1 ldi r24,lo8(18)
368 019e 8093 0000 sts twi_state,r24
369 01a2 8091 0000 lds r24,BLFlags
370 01a6 8E7F andi r24,lo8(-2)
371 01a8 8093 0000 sts BLFlags,r24
372 01ac 85EA ldi r24,lo8(-91)
373 01ae 8093 BC00 sts 188,r24
374 01b2 8091 0000 lds r24,AnalogOffsetNick
375 01b6 8A30 cpi r24,lo8(10)
376 01b8 40F4 brsh .L29
377 01ba 8091 0000 lds r24,VersionInfo+5
378 01be 8160 ori r24,lo8(1)
379 01c0 8093 0000 sts VersionInfo+5,r24
380 01c4 8AE0 ldi r24,lo8(10)
381 01c6 8093 0000 sts AnalogOffsetNick,r24
382 .L29:
383 01ca 8091 0000 lds r24,AnalogOffsetNick
384 01ce 863F cpi r24,lo8(-10)
385 01d0 40F0 brlo .L30
386 01d2 8091 0000 lds r24,VersionInfo+5
387 01d6 8160 ori r24,lo8(1)
388 01d8 8093 0000 sts VersionInfo+5,r24
389 01dc 85EF ldi r24,lo8(-11)
390 01de 8093 0000 sts AnalogOffsetNick,r24
391 .L30:
392 01e2 8091 0000 lds r24,AnalogOffsetRoll
393 01e6 8A30 cpi r24,lo8(10)
394 01e8 40F4 brsh .L31
395 01ea 8091 0000 lds r24,VersionInfo+5
396 01ee 8260 ori r24,lo8(2)
397 01f0 8093 0000 sts VersionInfo+5,r24
398 01f4 8AE0 ldi r24,lo8(10)
399 01f6 8093 0000 sts AnalogOffsetRoll,r24
400 .L31:
401 01fa 8091 0000 lds r24,AnalogOffsetRoll
402 01fe 863F cpi r24,lo8(-10)
403 0200 40F0 brlo .L32
404 0202 8091 0000 lds r24,VersionInfo+5
405 0206 8260 ori r24,lo8(2)
406 0208 8093 0000 sts VersionInfo+5,r24
407 020c 85EF ldi r24,lo8(-11)
408 020e 8093 0000 sts AnalogOffsetRoll,r24
409 .L32:
410 0212 8091 0000 lds r24,AnalogOffsetGier
411 0216 8A30 cpi r24,lo8(10)
412 0218 40F4 brsh .L33
413 021a 8091 0000 lds r24,VersionInfo+5
414 021e 8460 ori r24,lo8(4)
415 0220 8093 0000 sts VersionInfo+5,r24
416 0224 8AE0 ldi r24,lo8(10)
417 0226 8093 0000 sts AnalogOffsetGier,r24
418 .L33:
419 022a 8091 0000 lds r24,AnalogOffsetGier
420 022e 863F cpi r24,lo8(-10)
421 0230 40F0 brlo .L34
422 0232 8091 0000 lds r24,VersionInfo+5
423 0236 8460 ori r24,lo8(4)
424 0238 8093 0000 sts VersionInfo+5,r24
425 023c 85EF ldi r24,lo8(-11)
426 023e 8093 0000 sts AnalogOffsetGier,r24
427 .L34:
428 0242 8091 0000 lds r24,twi_state
429 0246 8823 tst r24
430 0248 39F0 breq .L36
431 024a C701 movw r24,r14
432 024c 0E94 0000 call CheckDelay
433 0250 8823 tst r24
434 0252 09F0 breq .+2
435 0254 90CF rjmp .L47
436 0256 F5CF rjmp .L34
437 .L36:
438 0258 1092 0000 sts AdReady,__zero_reg__
439 025c 8FEC ldi r24,lo8(-49)
440 025e 8093 7A00 sts 122,r24
441 .L39:
442 0262 8091 0000 lds r24,AdReady
443 0266 8823 tst r24
444 0268 E1F3 breq .L39
445 026a CA30 cpi r28,lo8(10)
446 026c 20F4 brsh .L15
447 026e 8AE0 ldi r24,lo8(10)
448 0270 90E0 ldi r25,hi8(10)
449 0272 0E94 0000 call Delay_ms_Mess
450 .L15:
451 0276 C150 subi r28,lo8(-(-1))
452 0278 09F0 breq .+2
453 027a 2DCF rjmp .L43
454 027c 86E4 ldi r24,lo8(70)
455 027e 90E0 ldi r25,hi8(70)
456 0280 0E94 0000 call Delay_ms_Mess
457 /* epilogue: frame size=0 */
458 0284 CF91 pop r28
459 0286 1F91 pop r17
460 0288 FF90 pop r15
461 028a EF90 pop r14
462 028c 0895 ret
463 /* epilogue end (size=5) */
464 /* function SucheGyroOffset size 238 (229) */
466 .lcomm kanal.0,1
467 .lcomm state.1,1
468 .lcomm subcount.2,1
469 .lcomm gier1.3,2
470 .lcomm roll1.4,2
471 .lcomm nick1.5,2
472 .lcomm nick_filter.6,2
473 .lcomm roll_filter.7,2
474 .lcomm accy.8,2
475 .lcomm accx.9,2
476 .lcomm tmpLuftdruck.10,4
477 .lcomm messanzahl_Druck.11,1
478 .global __vector_24
480 __vector_24:
481 /* prologue: frame size=0 */
482 028e 1F92 push __zero_reg__
483 0290 0F92 push __tmp_reg__
484 0292 0FB6 in __tmp_reg__,__SREG__
485 0294 0F92 push __tmp_reg__
486 0296 1124 clr __zero_reg__
487 0298 AF92 push r10
488 029a BF92 push r11
489 029c CF92 push r12
490 029e DF92 push r13
491 02a0 EF92 push r14
492 02a2 FF92 push r15
493 02a4 0F93 push r16
494 02a6 1F93 push r17
495 02a8 2F93 push r18
496 02aa 3F93 push r19
497 02ac 4F93 push r20
498 02ae 5F93 push r21
499 02b0 6F93 push r22
500 02b2 7F93 push r23
501 02b4 8F93 push r24
502 02b6 9F93 push r25
503 02b8 AF93 push r26
504 02ba BF93 push r27
505 02bc EF93 push r30
506 02be FF93 push r31
507 /* prologue end (size=25) */
508 02c0 8091 0000 lds r24,state.1
509 02c4 282F mov r18,r24
510 02c6 3327 clr r19
511 02c8 4427 clr r20
512 02ca 5527 clr r21
513 02cc 8F5F subi r24,lo8(-(1))
514 02ce 8093 0000 sts state.1,r24
515 02d2 F901 movw r30,r18
516 02d4 2231 cpi r18,18
517 02d6 3105 cpc r19,__zero_reg__
518 02d8 08F0 brlo .+2
519 02da 8CC3 rjmp .L101
520 02dc E050 subi r30,lo8(-(pm(.L102)))
521 02de F040 sbci r31,hi8(-(pm(.L102)))
522 02e0 0C94 0000 jmp __tablejump2__
523 .data
524 .section .progmem.gcc_sw_table, "a", @progbits
525 .p2align 1
526 .L102:
527 0000 0000 .word pm(.L53)
528 0002 0000 .word pm(.L54)
529 0004 0000 .word pm(.L55)
530 0006 0000 .word pm(.L56)
531 0008 0000 .word pm(.L57)
532 000a 0000 .word pm(.L58)
533 000c 0000 .word pm(.L59)
534 000e 0000 .word pm(.L60)
535 0010 0000 .word pm(.L61)
536 0012 0000 .word pm(.L94)
537 0014 0000 .word pm(.L58)
538 0016 0000 .word pm(.L73)
539 0018 0000 .word pm(.L74)
540 001a 0000 .word pm(.L79)
541 001c 0000 .word pm(.L80)
542 001e 0000 .word pm(.L81)
543 0020 0000 .word pm(.L87)
544 0022 0000 .word pm(.L93)
545 .text
546 .L53:
547 02e4 8091 7800 lds r24,120
548 02e8 9091 7900 lds r25,(120)+1
549 02ec 46C0 rjmp .L111
550 .L54:
551 02ee 8091 7800 lds r24,120
552 02f2 9091 7900 lds r25,(120)+1
553 02f6 2CC1 rjmp .L110
554 .L55:
555 02f8 8091 7800 lds r24,120
556 02fc 9091 7900 lds r25,(120)+1
557 0300 9093 0000 sts (gier1.3)+1,r25
558 0304 8093 0000 sts gier1.3,r24
559 0308 57C1 rjmp .L112
560 .L56:
561 030a 8091 0000 lds r24,NeutralAccY
562 030e 9091 0000 lds r25,(NeutralAccY)+1
563 0312 2091 7800 lds r18,120
564 0316 3091 7900 lds r19,(120)+1
565 031a 821B sub r24,r18
566 031c 930B sbc r25,r19
567 031e 9093 0000 sts (Aktuell_ay)+1,r25
568 0322 8093 0000 sts Aktuell_ay,r24
569 0326 8091 0000 lds r24,Aktuell_ay
570 032a 9091 0000 lds r25,(Aktuell_ay)+1
571 032e 9093 0000 sts (accy.8)+1,r25
572 0332 8093 0000 sts accy.8,r24
573 0336 5EC1 rjmp .L113
574 .L57:
575 0338 8091 7800 lds r24,120
576 033c 9091 7900 lds r25,(120)+1
577 0340 2091 0000 lds r18,NeutralAccX
578 0344 3091 0000 lds r19,(NeutralAccX)+1
579 0348 821B sub r24,r18
580 034a 930B sbc r25,r19
581 034c 9093 0000 sts (Aktuell_ax)+1,r25
582 0350 8093 0000 sts Aktuell_ax,r24
583 0354 8091 0000 lds r24,Aktuell_ax
584 0358 9091 0000 lds r25,(Aktuell_ax)+1
585 035c 9093 0000 sts (accx.9)+1,r25
586 0360 8093 0000 sts accx.9,r24
587 0364 49C3 rjmp .L108
588 .L58:
589 0366 8091 0000 lds r24,nick1.5
590 036a 9091 0000 lds r25,(nick1.5)+1
591 036e 2091 7800 lds r18,120
592 0372 3091 7900 lds r19,(120)+1
593 0376 820F add r24,r18
594 0378 931F adc r25,r19
595 .L111:
596 037a 9093 0000 sts (nick1.5)+1,r25
597 037e 8093 0000 sts nick1.5,r24
598 .L115:
599 0382 81E0 ldi r24,lo8(1)
600 0384 3AC3 rjmp .L109
601 .L59:
602 0386 8091 0000 lds r24,roll1.4
603 038a 9091 0000 lds r25,(roll1.4)+1
604 038e 2091 7800 lds r18,120
605 0392 3091 7900 lds r19,(120)+1
606 0396 820F add r24,r18
607 0398 931F adc r25,r19
608 039a 9093 0000 sts (roll1.4)+1,r25
609 039e 8093 0000 sts roll1.4,r24
610 03a2 84E0 ldi r24,lo8(4)
611 03a4 2AC3 rjmp .L109
612 .L60:
613 03a6 8091 0000 lds r24,UBat
614 03aa 9091 0000 lds r25,(UBat)+1
615 03ae 9C01 movw r18,r24
616 03b0 220F lsl r18
617 03b2 331F rol r19
618 03b4 280F add r18,r24
619 03b6 391F adc r19,r25
620 03b8 8091 7800 lds r24,120
621 03bc 9091 7900 lds r25,(120)+1
622 03c0 63E0 ldi r22,lo8(3)
623 03c2 70E0 ldi r23,hi8(3)
624 03c4 0E94 0000 call __udivmodhi4
625 03c8 260F add r18,r22
626 03ca 371F adc r19,r23
627 03cc 3695 lsr r19
628 03ce 2795 ror r18
629 03d0 3695 lsr r19
630 03d2 2795 ror r18
631 03d4 3093 0000 sts (UBat)+1,r19
632 03d8 2093 0000 sts UBat,r18
633 03dc 85E0 ldi r24,lo8(5)
634 03de 0DC3 rjmp .L109
635 .L61:
636 03e0 8091 7800 lds r24,120
637 03e4 9091 7900 lds r25,(120)+1
638 03e8 4091 0000 lds r20,NeutralAccZ
639 03ec 5091 0000 lds r21,(NeutralAccZ)+1
640 03f0 841B sub r24,r20
641 03f2 950B sbc r25,r21
642 03f4 9093 0000 sts (AdWertAccHoch)+1,r25
643 03f8 8093 0000 sts AdWertAccHoch,r24
644 03fc 8091 0000 lds r24,AdWertAccHoch
645 0400 9091 0000 lds r25,(AdWertAccHoch)+1
646 0404 0297 sbiw r24,2
647 0406 04F1 brlt .L62
648 0408 22E0 ldi r18,hi8(750)
649 040a 4E3E cpi r20,lo8(750)
650 040c 5207 cpc r21,r18
651 040e 84F4 brge .L63
652 0410 2091 0000 lds r18,subcount.2
653 0414 2B5F subi r18,lo8(-(5))
654 0416 2093 0000 sts subcount.2,r18
655 041a 2550 subi r18,lo8(-(-5))
656 041c 8091 0000 lds r24,modell_fliegt
657 0420 9091 0000 lds r25,(modell_fliegt)+1
658 0424 845F subi r24,lo8(500)
659 0426 9140 sbci r25,hi8(500)
660 0428 18F4 brsh .L63
661 042a 215F subi r18,lo8(-(15))
662 042c 2093 0000 sts subcount.2,r18
663 .L63:
664 0430 8091 0000 lds r24,subcount.2
665 0434 8536 cpi r24,lo8(101)
666 0436 84F1 brlt .L66
667 0438 4F5F subi r20,lo8(-(1))
668 043a 5F4F sbci r21,hi8(-(1))
669 043c 5093 0000 sts (NeutralAccZ)+1,r21
670 0440 4093 0000 sts NeutralAccZ,r20
671 0444 8456 subi r24,lo8(-(-100))
672 0446 26C0 rjmp .L104
673 .L62:
674 0448 8091 0000 lds r24,AdWertAccHoch
675 044c 9091 0000 lds r25,(AdWertAccHoch)+1
676 0450 8F5F subi r24,lo8(-1)
677 0452 9F4F sbci r25,hi8(-1)
678 0454 0CF5 brge .L66
679 0456 32E0 ldi r19,hi8(551)
680 0458 4732 cpi r20,lo8(551)
681 045a 5307 cpc r21,r19
682 045c ECF0 brlt .L66
683 045e 2091 0000 lds r18,subcount.2
684 0462 2550 subi r18,lo8(-(-5))
685 0464 2093 0000 sts subcount.2,r18
686 0468 2B5F subi r18,lo8(-(5))
687 046a 8091 0000 lds r24,modell_fliegt
688 046e 9091 0000 lds r25,(modell_fliegt)+1
689 0472 845F subi r24,lo8(500)
690 0474 9140 sbci r25,hi8(500)
691 0476 18F4 brsh .L69
692 0478 2F50 subi r18,lo8(-(-15))
693 047a 2093 0000 sts subcount.2,r18
694 .L69:
695 047e 8091 0000 lds r24,subcount.2
696 0482 8C39 cpi r24,lo8(-100)
697 0484 4CF4 brge .L66
698 0486 4150 subi r20,lo8(-(-1))
699 0488 5040 sbci r21,hi8(-(-1))
700 048a 5093 0000 sts (NeutralAccZ)+1,r21
701 048e 4093 0000 sts NeutralAccZ,r20
702 0492 8C59 subi r24,lo8(-(100))
703 .L104:
704 0494 8093 0000 sts subcount.2,r24
705 .L66:
706 0498 81E0 ldi r24,lo8(1)
707 049a 8093 0000 sts messanzahl_AccHoch,r24
708 049e 8091 7800 lds r24,120
709 04a2 9091 7900 lds r25,(120)+1
710 04a6 9093 0000 sts (Aktuell_az)+1,r25
711 04aa 8093 0000 sts Aktuell_az,r24
712 04ae 8091 0000 lds r24,AdWertAccHoch
713 04b2 9091 0000 lds r25,(AdWertAccHoch)+1
714 04b6 9C01 movw r18,r24
715 04b8 4427 clr r20
716 04ba 37FD sbrc r19,7
717 04bc 4095 com r20
718 04be 542F mov r21,r20
719 04c0 8091 0000 lds r24,Mess_Integral_Hoch
720 04c4 9091 0000 lds r25,(Mess_Integral_Hoch)+1
721 04c8 A091 0000 lds r26,(Mess_Integral_Hoch)+2
722 04cc B091 0000 lds r27,(Mess_Integral_Hoch)+3
723 04d0 820F add r24,r18
724 04d2 931F adc r25,r19
725 04d4 A41F adc r26,r20
726 04d6 B51F adc r27,r21
727 04d8 8093 0000 sts Mess_Integral_Hoch,r24
728 04dc 9093 0000 sts (Mess_Integral_Hoch)+1,r25
729 04e0 A093 0000 sts (Mess_Integral_Hoch)+2,r26
730 04e4 B093 0000 sts (Mess_Integral_Hoch)+3,r27
731 04e8 2091 0000 lds r18,Mess_Integral_Hoch
732 04ec 3091 0000 lds r19,(Mess_Integral_Hoch)+1
733 04f0 4091 0000 lds r20,(Mess_Integral_Hoch)+2
734 04f4 5091 0000 lds r21,(Mess_Integral_Hoch)+3
735 04f8 57FF sbrs r21,7
736 04fa 04C0 rjmp .L71
737 04fc 2150 subi r18,lo8(-(1023))
738 04fe 3C4F sbci r19,hi8(-(1023))
739 0500 4F4F sbci r20,hlo8(-(1023))
740 0502 5F4F sbci r21,hhi8(-(1023))
741 .L71:
742 0504 0AE0 ldi r16,10
743 0506 5595 1: asr r21
744 0508 4795 ror r20
745 050a 3795 ror r19
746 050c 2795 ror r18
747 050e 0A95 dec r16
748 0510 D1F7 brne 1b
749 0512 8091 0000 lds r24,Mess_Integral_Hoch
750 0516 9091 0000 lds r25,(Mess_Integral_Hoch)+1
751 051a A091 0000 lds r26,(Mess_Integral_Hoch)+2
752 051e B091 0000 lds r27,(Mess_Integral_Hoch)+3
753 0522 821B sub r24,r18
754 0524 930B sbc r25,r19
755 0526 A40B sbc r26,r20
756 0528 B50B sbc r27,r21
757 052a 8093 0000 sts Mess_Integral_Hoch,r24
758 052e 9093 0000 sts (Mess_Integral_Hoch)+1,r25
759 0532 A093 0000 sts (Mess_Integral_Hoch)+2,r26
760 0536 B093 0000 sts (Mess_Integral_Hoch)+3,r27
761 053a 2EC1 rjmp .L114
762 .L73:
763 053c 8091 0000 lds r24,roll1.4
764 0540 9091 0000 lds r25,(roll1.4)+1
765 0544 2091 7800 lds r18,120
766 0548 3091 7900 lds r19,(120)+1
767 054c 820F add r24,r18
768 054e 931F adc r25,r19
769 .L110:
770 0550 9093 0000 sts (roll1.4)+1,r25
771 0554 8093 0000 sts roll1.4,r24
772 0558 1092 0000 sts kanal.0,__zero_reg__
773 055c 50C2 rjmp .L52
774 .L74:
775 055e 8091 0000 lds r24,PlatinenVersion
776 0562 8A30 cpi r24,lo8(10)
777 0564 71F4 brne .L75
778 0566 8091 7800 lds r24,120
779 056a 9091 7900 lds r25,(120)+1
780 056e 2091 0000 lds r18,gier1.3
781 0572 3091 0000 lds r19,(gier1.3)+1
782 0576 820F add r24,r18
783 0578 931F adc r25,r19
784 057a 0196 adiw r24,1
785 057c 9695 lsr r25
786 057e 8795 ror r24
787 0580 17C0 rjmp .L105
788 .L75:
789 0582 4091 0000 lds r20,gier1.3
790 0586 5091 0000 lds r21,(gier1.3)+1
791 058a 8431 cpi r24,lo8(20)
792 058c 58F0 brlo .L77
793 058e 2091 7800 lds r18,120
794 0592 3091 7900 lds r19,(120)+1
795 0596 240F add r18,r20
796 0598 351F adc r19,r21
797 059a 8FEF ldi r24,lo8(2047)
798 059c 97E0 ldi r25,hi8(2047)
799 059e 821B sub r24,r18
800 05a0 930B sbc r25,r19
801 05a2 06C0 rjmp .L105
802 .L77:
803 05a4 8091 7800 lds r24,120
804 05a8 9091 7900 lds r25,(120)+1
805 05ac 840F add r24,r20
806 05ae 951F adc r25,r21
807 .L105:
808 05b0 9093 0000 sts (AdWertGier)+1,r25
809 05b4 8093 0000 sts AdWertGier,r24
810 .L112:
811 05b8 86E0 ldi r24,lo8(6)
812 05ba 1FC2 rjmp .L109
813 .L79:
814 05bc 8091 0000 lds r24,NeutralAccY
815 05c0 9091 0000 lds r25,(NeutralAccY)+1
816 05c4 2091 7800 lds r18,120
817 05c8 3091 7900 lds r19,(120)+1
818 05cc 821B sub r24,r18
819 05ce 930B sbc r25,r19
820 05d0 9093 0000 sts (Aktuell_ay)+1,r25
821 05d4 8093 0000 sts Aktuell_ay,r24
822 05d8 8091 0000 lds r24,Aktuell_ay
823 05dc 9091 0000 lds r25,(Aktuell_ay)+1
824 05e0 2091 0000 lds r18,accy.8
825 05e4 3091 0000 lds r19,(accy.8)+1
826 05e8 820F add r24,r18
827 05ea 931F adc r25,r19
828 05ec 9093 0000 sts (AdWertAccRoll)+1,r25
829 05f0 8093 0000 sts AdWertAccRoll,r24
830 .L113:
831 05f4 87E0 ldi r24,lo8(7)
832 05f6 01C2 rjmp .L109
833 .L80:
834 05f8 8091 7800 lds r24,120
835 05fc 9091 7900 lds r25,(120)+1
836 0600 2091 0000 lds r18,NeutralAccX
837 0604 3091 0000 lds r19,(NeutralAccX)+1
838 0608 821B sub r24,r18
839 060a 930B sbc r25,r19
840 060c 9093 0000 sts (Aktuell_ax)+1,r25
841 0610 8093 0000 sts Aktuell_ax,r24
842 0614 8091 0000 lds r24,Aktuell_ax
843 0618 9091 0000 lds r25,(Aktuell_ax)+1
844 061c 2091 0000 lds r18,accx.9
845 0620 3091 0000 lds r19,(accx.9)+1
846 0624 820F add r24,r18
847 0626 931F adc r25,r19
848 0628 9093 0000 sts (AdWertAccNick)+1,r25
849 062c 8093 0000 sts AdWertAccNick,r24
850 0630 E3C1 rjmp .L108
851 .L81:
852 0632 2091 0000 lds r18,nick1.5
853 0636 3091 0000 lds r19,(nick1.5)+1
854 063a 8091 7800 lds r24,120
855 063e 9091 7900 lds r25,(120)+1
856 0642 280F add r18,r24
857 0644 391F adc r19,r25
858 0646 3093 0000 sts (nick1.5)+1,r19
859 064a 2093 0000 sts nick1.5,r18
860 064e 8091 0000 lds r24,PlatinenVersion
861 0652 8A30 cpi r24,lo8(10)
862 0654 19F4 brne .L82
863 0656 220F add r18,r18
864 0658 331F adc r19,r19
865 065a 04C0 rjmp .L106
866 .L82:
867 065c 220F lsl r18
868 065e 331F rol r19
869 0660 220F lsl r18
870 0662 331F rol r19
871 .L106:
872 0664 3093 0000 sts (nick1.5)+1,r19
873 0668 2093 0000 sts nick1.5,r18
874 066c 2091 0000 lds r18,nick1.5
875 0670 3091 0000 lds r19,(nick1.5)+1
876 0674 C901 movw r24,r18
877 0676 37FD sbrc r19,7
878 0678 0796 adiw r24,7
879 .L84:
880 067a A3E0 ldi r26,3
881 067c 9595 1: asr r25
882 067e 8795 ror r24
883 0680 AA95 dec r26
884 0682 E1F7 brne 1b
885 0684 9093 0000 sts (AdWertNick)+1,r25
886 0688 8093 0000 sts AdWertNick,r24
887 068c 8091 0000 lds r24,nick_filter.6
888 0690 9091 0000 lds r25,(nick_filter.6)+1
889 0694 820F add r24,r18
890 0696 931F adc r25,r19
891 0698 97FD sbrc r25,7
892 069a 0196 adiw r24,1
893 .L85:
894 069c 9595 asr r25
895 069e 8795 ror r24
896 06a0 9093 0000 sts (nick_filter.6)+1,r25
897 06a4 8093 0000 sts nick_filter.6,r24
898 06a8 2091 0000 lds r18,AdNeutralNick
899 06ac 3091 0000 lds r19,(AdNeutralNick)+1
900 06b0 821B sub r24,r18
901 06b2 930B sbc r25,r19
902 06b4 9093 0000 sts (HiResNick)+1,r25
903 06b8 8093 0000 sts HiResNick,r24
904 06bc 2091 0000 lds r18,AdWertNickFilter
905 06c0 3091 0000 lds r19,(AdWertNickFilter)+1
906 06c4 8091 0000 lds r24,HiResNick
907 06c8 9091 0000 lds r25,(HiResNick)+1
908 06cc 280F add r18,r24
909 06ce 391F adc r19,r25
910 06d0 37FF sbrs r19,7
911 06d2 02C0 rjmp .L86
912 06d4 2F5F subi r18,lo8(-(1))
913 06d6 3F4F sbci r19,hi8(-(1))
914 .L86:
915 06d8 3595 asr r19
916 06da 2795 ror r18
917 06dc 3093 0000 sts (AdWertNickFilter)+1,r19
918 06e0 2093 0000 sts AdWertNickFilter,r18
919 06e4 4ECE rjmp .L115
920 .L87:
921 06e6 2091 0000 lds r18,roll1.4
922 06ea 3091 0000 lds r19,(roll1.4)+1
923 06ee 8091 7800 lds r24,120
924 06f2 9091 7900 lds r25,(120)+1
925 06f6 280F add r18,r24
926 06f8 391F adc r19,r25
927 06fa 3093 0000 sts (roll1.4)+1,r19
928 06fe 2093 0000 sts roll1.4,r18
929 0702 8091 0000 lds r24,PlatinenVersion
930 0706 8A30 cpi r24,lo8(10)
931 0708 19F4 brne .L88
932 070a 220F add r18,r18
933 070c 331F adc r19,r19
934 070e 04C0 rjmp .L107
935 .L88:
936 0710 220F lsl r18
937 0712 331F rol r19
938 0714 220F lsl r18
939 0716 331F rol r19
940 .L107:
941 0718 3093 0000 sts (roll1.4)+1,r19
942 071c 2093 0000 sts roll1.4,r18
943 0720 2091 0000 lds r18,roll1.4
944 0724 3091 0000 lds r19,(roll1.4)+1
945 0728 C901 movw r24,r18
946 072a 37FD sbrc r19,7
947 072c 0796 adiw r24,7
948 .L90:
949 072e 63E0 ldi r22,3
950 0730 9595 1: asr r25
951 0732 8795 ror r24
952 0734 6A95 dec r22
953 0736 E1F7 brne 1b
954 0738 9093 0000 sts (AdWertRoll)+1,r25
955 073c 8093 0000 sts AdWertRoll,r24
956 0740 8091 0000 lds r24,roll_filter.7
957 0744 9091 0000 lds r25,(roll_filter.7)+1
958 0748 820F add r24,r18
959 074a 931F adc r25,r19
960 074c 97FD sbrc r25,7
961 074e 0196 adiw r24,1
962 .L91:
963 0750 9595 asr r25
964 0752 8795 ror r24
965 0754 9093 0000 sts (roll_filter.7)+1,r25
966 0758 8093 0000 sts roll_filter.7,r24
967 075c 2091 0000 lds r18,AdNeutralRoll
968 0760 3091 0000 lds r19,(AdNeutralRoll)+1
969 0764 821B sub r24,r18
970 0766 930B sbc r25,r19
971 0768 9093 0000 sts (HiResRoll)+1,r25
972 076c 8093 0000 sts HiResRoll,r24
973 0770 2091 0000 lds r18,AdWertRollFilter
974 0774 3091 0000 lds r19,(AdWertRollFilter)+1
975 0778 8091 0000 lds r24,HiResRoll
976 077c 9091 0000 lds r25,(HiResRoll)+1
977 0780 280F add r18,r24
978 0782 391F adc r19,r25
979 0784 37FF sbrs r19,7
980 0786 02C0 rjmp .L92
981 0788 2F5F subi r18,lo8(-(1))
982 078a 3F4F sbci r19,hi8(-(1))
983 .L92:
984 078c 3595 asr r19
985 078e 2795 ror r18
986 0790 3093 0000 sts (AdWertRollFilter)+1,r19
987 0794 2093 0000 sts AdWertRollFilter,r18
988 .L114:
989 0798 83E0 ldi r24,lo8(3)
990 079a 2FC1 rjmp .L109
991 .L93:
992 079c 1092 0000 sts state.1,__zero_reg__
993 07a0 81E0 ldi r24,lo8(1)
994 07a2 8093 0000 sts AdReady,r24
995 07a6 8091 0000 lds r24,ZaehlMessungen
996 07aa 9091 0000 lds r25,(ZaehlMessungen)+1
997 07ae 0196 adiw r24,1
998 07b0 9093 0000 sts (ZaehlMessungen)+1,r25
999 07b4 8093 0000 sts ZaehlMessungen,r24
1000 .L94:
1001 07b8 8091 7800 lds r24,120
1002 07bc 9091 7900 lds r25,(120)+1
1003 07c0 9093 0000 sts (MessLuftdruck)+1,r25
1004 07c4 8093 0000 sts MessLuftdruck,r24
1005 07c8 8091 0000 lds r24,MessLuftdruck
1006 07cc 9091 0000 lds r25,(MessLuftdruck)+1
1007 07d0 AA27 clr r26
1008 07d2 BB27 clr r27
1009 07d4 A090 0000 lds r10,tmpLuftdruck.10
1010 07d8 B090 0000 lds r11,(tmpLuftdruck.10)+1
1011 07dc C090 0000 lds r12,(tmpLuftdruck.10)+2
1012 07e0 D090 0000 lds r13,(tmpLuftdruck.10)+3
1013 07e4 A80E add r10,r24
1014 07e6 B91E adc r11,r25
1015 07e8 CA1E adc r12,r26
1016 07ea DB1E adc r13,r27
1017 07ec A092 0000 sts tmpLuftdruck.10,r10
1018 07f0 B092 0000 sts (tmpLuftdruck.10)+1,r11
1019 07f4 C092 0000 sts (tmpLuftdruck.10)+2,r12
1020 07f8 D092 0000 sts (tmpLuftdruck.10)+3,r13
1021 07fc 8091 0000 lds r24,messanzahl_Druck.11
1022 0800 8F5F subi r24,lo8(-(1))
1023 0802 8093 0000 sts messanzahl_Druck.11,r24
1024 0806 8231 cpi r24,lo8(18)
1025 0808 08F4 brsh .+2
1026 080a F6C0 rjmp .L108
1027 080c 8091 0000 lds r24,Luftdruck
1028 0810 9091 0000 lds r25,(Luftdruck)+1
1029 0814 A091 0000 lds r26,(Luftdruck)+2
1030 0818 B091 0000 lds r27,(Luftdruck)+3
1031 081c 7C01 movw r14,r24
1032 081e 8D01 movw r16,r26
1033 0820 23E0 ldi r18,3
1034 0822 EE0C 1: lsl r14
1035 0824 FF1C rol r15
1036 0826 001F rol r16
1037 0828 111F rol r17
1038 082a 2A95 dec r18
1039 082c D1F7 brne 1b
1040 082e E81A sub r14,r24
1041 0830 F90A sbc r15,r25
1042 0832 0A0B sbc r16,r26
1043 0834 1B0B sbc r17,r27
1044 0836 EA0C add r14,r10
1045 0838 FB1C adc r15,r11
1046 083a 0C1D adc r16,r12
1047 083c 1D1D adc r17,r13
1048 083e 8091 0000 lds r24,ExpandBaro
1049 0842 9927 clr r25
1050 0844 87FD sbrc r24,7
1051 0846 9095 com r25
1052 0848 A92F mov r26,r25
1053 084a B92F mov r27,r25
1054 084c BC01 movw r22,r24
1055 084e CD01 movw r24,r26
1056 0850 26EC ldi r18,lo8(9414)
1057 0852 34E2 ldi r19,hi8(9414)
1058 0854 40E0 ldi r20,hlo8(9414)
1059 0856 50E0 ldi r21,hhi8(9414)
1060 0858 0E94 0000 call __mulsi3
1061 085c DC01 movw r26,r24
1062 085e CB01 movw r24,r22
1063 0860 E81A sub r14,r24
1064 0862 F90A sbc r15,r25
1065 0864 0A0B sbc r16,r26
1066 0866 1B0B sbc r17,r27
1067 0868 D801 movw r26,r16
1068 086a C701 movw r24,r14
1069 086c 0496 adiw r24,4
1070 086e A11D adc r26,__zero_reg__
1071 0870 B11D adc r27,__zero_reg__
1072 0872 B7FF sbrs r27,7
1073 0874 05C0 rjmp .L96
1074 0876 D801 movw r26,r16
1075 0878 C701 movw r24,r14
1076 087a 0B96 adiw r24,11
1077 087c A11D adc r26,__zero_reg__
1078 087e B11D adc r27,__zero_reg__
1079 .L96:
1080 0880 13E0 ldi r17,3
1081 0882 B595 1: asr r27
1082 0884 A795 ror r26
1083 0886 9795 ror r25
1084 0888 8795 ror r24
1085 088a 1A95 dec r17
1086 088c D1F7 brne 1b
1087 088e 8093 0000 sts Luftdruck,r24
1088 0892 9093 0000 sts (Luftdruck)+1,r25
1089 0896 A093 0000 sts (Luftdruck)+2,r26
1090 089a B093 0000 sts (Luftdruck)+3,r27
1091 089e 8091 0000 lds r24,StartLuftdruck
1092 08a2 9091 0000 lds r25,(StartLuftdruck)+1
1093 08a6 7C01 movw r14,r24
1094 08a8 0027 clr r16
1095 08aa F7FC sbrc r15,7
1096 08ac 0095 com r16
1097 08ae 102F mov r17,r16
1098 08b0 8091 0000 lds r24,Luftdruck
1099 08b4 9091 0000 lds r25,(Luftdruck)+1
1100 08b8 A091 0000 lds r26,(Luftdruck)+2
1101 08bc B091 0000 lds r27,(Luftdruck)+3
1102 08c0 E81A sub r14,r24
1103 08c2 F90A sbc r15,r25
1104 08c4 0A0B sbc r16,r26
1105 08c6 1B0B sbc r17,r27
1106 08c8 E092 0000 sts HoehenWert,r14
1107 08cc F092 0000 sts (HoehenWert)+1,r15
1108 08d0 0093 0000 sts (HoehenWert)+2,r16
1109 08d4 1093 0000 sts (HoehenWert)+3,r17
1110 08d8 2091 0000 lds r18,SummenHoehe
1111 08dc 3091 0000 lds r19,(SummenHoehe)+1
1112 08e0 4091 0000 lds r20,(SummenHoehe)+2
1113 08e4 5091 0000 lds r21,(SummenHoehe)+3
1114 08e8 57FF sbrs r21,7
1115 08ea 04C0 rjmp .L97
1116 08ec 215F subi r18,lo8(-(15))
1117 08ee 3F4F sbci r19,hi8(-(15))
1118 08f0 4F4F sbci r20,hlo8(-(15))
1119 08f2 5F4F sbci r21,hhi8(-(15))
1120 .L97:
1121 08f4 F4E0 ldi r31,4
1122 08f6 5595 1: asr r21
1123 08f8 4795 ror r20
1124 08fa 3795 ror r19
1125 08fc 2795 ror r18
1126 08fe FA95 dec r31
1127 0900 D1F7 brne 1b
1128 0902 8091 0000 lds r24,SummenHoehe
1129 0906 9091 0000 lds r25,(SummenHoehe)+1
1130 090a A091 0000 lds r26,(SummenHoehe)+2
1131 090e B091 0000 lds r27,(SummenHoehe)+3
1132 0912 821B sub r24,r18
1133 0914 930B sbc r25,r19
1134 0916 A40B sbc r26,r20
1135 0918 B50B sbc r27,r21
1136 091a 8093 0000 sts SummenHoehe,r24
1137 091e 9093 0000 sts (SummenHoehe)+1,r25
1138 0922 A093 0000 sts (SummenHoehe)+2,r26
1139 0926 B093 0000 sts (SummenHoehe)+3,r27
1140 092a 8091 0000 lds r24,SummenHoehe
1141 092e 9091 0000 lds r25,(SummenHoehe)+1
1142 0932 A091 0000 lds r26,(SummenHoehe)+2
1143 0936 B091 0000 lds r27,(SummenHoehe)+3
1144 093a 8E0D add r24,r14
1145 093c 9F1D adc r25,r15
1146 093e A01F adc r26,r16
1147 0940 B11F adc r27,r17
1148 0942 8093 0000 sts SummenHoehe,r24
1149 0946 9093 0000 sts (SummenHoehe)+1,r25
1150 094a A093 0000 sts (SummenHoehe)+2,r26
1151 094e B093 0000 sts (SummenHoehe)+3,r27
1152 0952 8091 0000 lds r24,VarioMeter
1153 0956 9091 0000 lds r25,(VarioMeter)+1
1154 095a AC01 movw r20,r24
1155 095c E5E0 ldi r30,5
1156 095e 440F 1: lsl r20
1157 0960 551F rol r21
1158 0962 EA95 dec r30
1159 0964 E1F7 brne 1b
1160 0966 481B sub r20,r24
1161 0968 590B sbc r21,r25
1162 096a 8091 0000 lds r24,SummenHoehe
1163 096e 9091 0000 lds r25,(SummenHoehe)+1
1164 0972 A091 0000 lds r26,(SummenHoehe)+2
1165 0976 B091 0000 lds r27,(SummenHoehe)+3
1166 097a B7FF sbrs r27,7
1167 097c 03C0 rjmp .L98
1168 097e 0F96 adiw r24,15
1169 0980 A11D adc r26,__zero_reg__
1170 0982 B11D adc r27,__zero_reg__
1171 .L98:
1172 0984 74E0 ldi r23,4
1173 0986 B595 1: asr r27
1174 0988 A795 ror r26
1175 098a 9795 ror r25
1176 098c 8795 ror r24
1177 098e 7A95 dec r23
1178 0990 D1F7 brne 1b
1179 0992 2091 0000 lds r18,HoehenWert
1180 0996 3091 0000 lds r19,(HoehenWert)+1
1181 099a 281B sub r18,r24
1182 099c 390B sbc r19,r25
1183 099e 63E0 ldi r22,3
1184 09a0 220F 1: lsl r18
1185 09a2 331F rol r19
1186 09a4 6A95 dec r22
1187 09a6 E1F7 brne 1b
1188 09a8 240F add r18,r20
1189 09aa 351F adc r19,r21
1190 09ac 37FF sbrs r19,7
1191 09ae 02C0 rjmp .L99
1192 09b0 215E subi r18,lo8(-(31))
1193 09b2 3F4F sbci r19,hi8(-(31))
1194 .L99:
1195 09b4 45E0 ldi r20,5
1196 09b6 3595 1: asr r19
1197 09b8 2795 ror r18
1198 09ba 4A95 dec r20
1199 09bc E1F7 brne 1b
1200 09be 3093 0000 sts (VarioMeter)+1,r19
1201 09c2 2093 0000 sts VarioMeter,r18
1202 09c6 D601 movw r26,r12
1203 09c8 C501 movw r24,r10
1204 09ca D7FE sbrs r13,7
1205 09cc 03C0 rjmp .L100
1206 09ce 0196 adiw r24,1
1207 09d0 A11D adc r26,__zero_reg__
1208 09d2 B11D adc r27,__zero_reg__
1209 .L100:
1210 09d4 B595 asr r27
1211 09d6 A795 ror r26
1212 09d8 9795 ror r25
1213 09da 8795 ror r24
1214 09dc 8093 0000 sts tmpLuftdruck.10,r24
1215 09e0 9093 0000 sts (tmpLuftdruck.10)+1,r25
1216 09e4 A093 0000 sts (tmpLuftdruck.10)+2,r26
1217 09e8 B093 0000 sts (tmpLuftdruck.10)+3,r27
1218 09ec 89E0 ldi r24,lo8(9)
1219 09ee 8093 0000 sts messanzahl_Druck.11,r24
1220 09f2 02C0 rjmp .L108
1221 .L101:
1222 09f4 1092 0000 sts state.1,__zero_reg__
1223 .L108:
1224 09f8 82E0 ldi r24,lo8(2)
1225 .L109:
1226 09fa 8093 0000 sts kanal.0,r24
1227 .L52:
1228 09fe 8091 0000 lds r24,kanal.0
1229 0a02 8093 7C00 sts 124,r24
1230 0a06 8091 0000 lds r24,state.1
1231 0a0a 8823 tst r24
1232 0a0c 19F0 breq .L51
1233 0a0e 8FEC ldi r24,lo8(-49)
1234 0a10 8093 7A00 sts 122,r24
1235 .L51:
1236 /* epilogue: frame size=0 */
1237 0a14 FF91 pop r31
1238 0a16 EF91 pop r30
1239 0a18 BF91 pop r27
1240 0a1a AF91 pop r26
1241 0a1c 9F91 pop r25
1242 0a1e 8F91 pop r24
1243 0a20 7F91 pop r23
1244 0a22 6F91 pop r22
1245 0a24 5F91 pop r21
1246 0a26 4F91 pop r20
1247 0a28 3F91 pop r19
1248 0a2a 2F91 pop r18
1249 0a2c 1F91 pop r17
1250 0a2e 0F91 pop r16
1251 0a30 FF90 pop r15
1252 0a32 EF90 pop r14
1253 0a34 DF90 pop r13
1254 0a36 CF90 pop r12
1255 0a38 BF90 pop r11
1256 0a3a AF90 pop r10
1257 0a3c 0F90 pop __tmp_reg__
1258 0a3e 0FBE out __SREG__,__tmp_reg__
1259 0a40 0F90 pop __tmp_reg__
1260 0a42 1F90 pop __zero_reg__
1261 0a44 1895 reti
1262 /* epilogue end (size=25) */
1263 /* function __vector_24 size 1014 (964) */
1265 .comm Aktuell_Nick,2,1
1266 .comm Aktuell_Roll,2,1
1267 .comm Aktuell_Gier,2,1
1268 .comm Aktuell_ax,2,1
1269 .comm Aktuell_ay,2,1
1270 .comm Aktuell_az,2,1
1271 .comm DruckOffsetSetting,1,1
1272 .comm StartLuftdruck,2,1
1273 .comm NeutralAccZ_float,4,1
1274 /* File "analog.c": code 1350 = 0x0546 (1285), prologues 31, epilogues 34 */
DEFINED SYMBOLS
*ABS*:00000000 analog.c
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:14 .data:00000000 AdReady
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:19 .data:00000001 AnalogOffsetGier
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:24 .data:00000002 AnalogOffsetRoll
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:29 .data:00000003 AnalogOffsetNick
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:36 .bss:00000000 ZaehlMessungen
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:42 .bss:00000002 VarioMeter
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:48 .bss:00000004 ExpandBaro
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:54 .data:00000004 MessLuftdruck
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:61 .bss:00000005 SummenHoehe
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:67 .data:00000006 Luftdruck
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:74 .bss:00000009 messanzahl_AccHoch
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:80 .bss:0000000a AdWertAccHoch
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:86 .bss:0000000c AdWertAccNick
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:92 .bss:0000000e AdWertAccRoll
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:98 .bss:00000010 AdWertGier
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:104 .bss:00000012 AdWertRoll
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:110 .bss:00000014 AdWertNick
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:116 .data:0000000a HiResRoll
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:121 .data:0000000c HiResNick
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:128 .bss:00000016 AdWertGierFilter
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:134 .bss:00000018 AdWertRollFilter
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:140 .bss:0000001a AdWertNickFilter
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:146 .data:0000000e UBat
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:151 .text:00000000 ADC_Init
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:165 .progmem.data:00000000 __c.13
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:170 .text:0000000c SucheLuftruckOffset
*COM*:00000001 DruckOffsetSetting
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:258 .progmem.data:00000002 __c.12
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:263 .text:000000c0 SucheGyroOffset
.bss:0000001c kanal.0
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:466 .bss:0000001d state.1
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:467 .bss:0000001e subcount.2
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:468 .bss:0000001f gier1.3
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:469 .bss:00000021 roll1.4
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:470 .bss:00000023 nick1.5
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:471 .bss:00000025 nick_filter.6
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:472 .bss:00000027 roll_filter.7
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:473 .bss:00000029 accy.8
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:474 .bss:0000002b accx.9
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:475 .bss:0000002d tmpLuftdruck.10
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:476 .bss:00000031 messanzahl_Druck.11
C:\Users\Arthur-P\AppData\Local\Temp/cca4aaaa.s:480 .text:0000028e __vector_24
*COM*:00000002 Aktuell_ay
*COM*:00000002 Aktuell_ax
*COM*:00000002 Aktuell_az
*COM*:00000002 StartLuftdruck
*COM*:00000002 Aktuell_Nick
*COM*:00000002 Aktuell_Roll
*COM*:00000002 Aktuell_Gier
*COM*:00000004 NeutralAccZ_float
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
GetParamByte
Delay_ms_Mess
uart_putchar
_printf_P
SetParamByte
EE_Parameter
VersionInfo
SetDelay
twi_state
BLFlags
CheckDelay
__tablejump2__
NeutralAccY
NeutralAccX
__udivmodhi4
NeutralAccZ
modell_fliegt
Mess_Integral_Hoch
PlatinenVersion
AdNeutralNick
AdNeutralRoll
__mulsi3
HoehenWert
/branches/V0.80d-Arthur-P/capacity.c
0,0 → 1,143
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Thanks to Marcel Haller (Lion) for the nice idea and first implementation
// + Nur für den privaten Gebrauch
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "capacity.h"
#include "twimaster.h"
#include "main.h"
#include "timer0.h"
#include "analog.h"
 
#define CAPACITY_UPDATE_INTERVAL 10 // 10 ms
#define FC_OFFSET_CURRENT 5 // calculate with a current of 0.5A
#define BL_OFFSET_CURRENT 2 // calculate with a current of 0.2A
 
// global varialbles
unsigned short update_timer = 0;
Capacity_t Capacity;
 
// initialize capacity calculation
void Capacity_Init(void)
{
Capacity.ActualCurrent = 0;
Capacity.UsedCapacity = 0;
Capacity.ActualPower = 0;
Capacity.MinOfMaxPWM = 0;
update_timer = SetDelay(CAPACITY_UPDATE_INTERVAL);
}
 
 
// called in main loop at a regular interval
void Capacity_Update(void)
{
unsigned short Current, SetSum; // max value will be 255 * 12 = 3060
static unsigned short SubCounter = 0;
static unsigned short CurrentOffset = 0;
static unsigned long SumCurrentOffset = 0;
unsigned char i, NumOfMotors, MinOfMaxPWM;
 
if(CheckDelay(update_timer))
{
update_timer += CAPACITY_UPDATE_INTERVAL; // do not use SetDelay to avoid timing leaks
// determine sum of all present BL currents and setpoints
Current = 0;
SetSum = 0;
NumOfMotors = 0;
MinOfMaxPWM = 255;
for(i = 0; i < MAX_MOTORS; i++)
{
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
NumOfMotors++;
Current += (unsigned int)(Motor[i].Current);
SetSum += (unsigned int)(Motor[i].SetPoint);
if(Motor[i].MaxPWM < MinOfMaxPWM) MinOfMaxPWM = Motor[i].MaxPWM;
}
}
Capacity.MinOfMaxPWM = MinOfMaxPWM;
 
if(SetSum == 0) // if all setpoints are 0
{ // determine offsets of motor currents
#define CURRENT_AVERAGE 8 // 8bit = 256 * 10 ms = 2.56s average time
CurrentOffset = (unsigned int)(SumCurrentOffset>>CURRENT_AVERAGE);
SumCurrentOffset -= CurrentOffset;
SumCurrentOffset += Current;
// after averaging set current to static offset
Current = FC_OFFSET_CURRENT;
}
else // some motors are running, includes also motor test condition, where "MotorRunning" is false
{ // subtract offset
if(Current > CurrentOffset) Current -= CurrentOffset;
else Current = 0;
// add the FC and BL Offsets
Current += FC_OFFSET_CURRENT + NumOfMotors * BL_OFFSET_CURRENT;
}
 
// update actual Current
Capacity.ActualCurrent = Current;
// update actual Power
if(Current < 255) Capacity.ActualPower = (UBat * Current) / 100; // in W higher resolution
else Capacity.ActualPower = (UBat * (Current/4)) / 25; // in W
 
// update used capacity
SubCounter += Current;
 
// 100mA * 1ms * CAPACITY_UPDATE_INTERVAL = 1 mA * 100 ms * CAPACITY_UPDATE_INTERVAL
// = 1mA * 0.1s * CAPACITY_UPDATE_INTERVAL = 1mA * 1min / (600 / CAPACITY_UPDATE_INTERVAL)
// = 1mAh / (36000 / CAPACITY_UPDATE_INTERVAL)
#define SUB_COUNTER_LIMIT (36000 / CAPACITY_UPDATE_INTERVAL)
if(SubCounter > SUB_COUNTER_LIMIT)
{
Capacity.UsedCapacity++; // we have one mAh more
SubCounter -= SUB_COUNTER_LIMIT; // keep the remaining sub part
}
} // EOF check delay update timer
}
/branches/V0.80d-Arthur-P/capacity.d
0,0 → 1,3
capacity.o capacity.d : capacity.c capacity.h twimaster.h main.h old_macros.h \
printf_P.h timer0.h uart.h analog.h menu.h rc.h fc.h gps.h spi.h led.h \
spektrum.h eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/capacity.h
0,0 → 1,18
#ifndef _CAPACITY_H
#define _CAPACITY_H
 
typedef struct
{
unsigned short ActualCurrent; // in 0.1A Steps
unsigned short ActualPower; // in 0.1W
unsigned short UsedCapacity; // in mAh
unsigned char MinOfMaxPWM; // BL Power Limit
} __attribute__((packed)) Capacity_t;
 
extern Capacity_t Capacity;
 
void Capacity_Init(void);
void Capacity_Update(void);
 
#endif //_CAPACITY_H
 
/branches/V0.80d-Arthur-P/capacity.lst
0,0 → 1,229
1 .file "capacity.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global update_timer
11 .global update_timer
12 .section .bss
15 update_timer:
16 0000 0000 .skip 2,0
17 .text
18 .global Capacity_Init
20 Capacity_Init:
21 /* prologue: frame size=0 */
22 /* prologue end (size=0) */
23 0000 1092 0000 sts (Capacity)+1,__zero_reg__
24 0004 1092 0000 sts Capacity,__zero_reg__
25 0008 1092 0000 sts (Capacity+4)+1,__zero_reg__
26 000c 1092 0000 sts Capacity+4,__zero_reg__
27 0010 1092 0000 sts (Capacity+2)+1,__zero_reg__
28 0014 1092 0000 sts Capacity+2,__zero_reg__
29 0018 1092 0000 sts Capacity+6,__zero_reg__
30 001c 8AE0 ldi r24,lo8(10)
31 001e 90E0 ldi r25,hi8(10)
32 0020 0E94 0000 call SetDelay
33 0024 9093 0000 sts (update_timer)+1,r25
34 0028 8093 0000 sts update_timer,r24
35 /* epilogue: frame size=0 */
36 002c 0895 ret
37 /* epilogue end (size=1) */
38 /* function Capacity_Init size 23 (22) */
40 .lcomm SubCounter.0,2
41 .lcomm CurrentOffset.1,2
42 .lcomm SumCurrentOffset.2,4
43 .global Capacity_Update
45 Capacity_Update:
46 /* prologue: frame size=0 */
47 002e CF93 push r28
48 0030 DF93 push r29
49 /* prologue end (size=2) */
50 0032 8091 0000 lds r24,update_timer
51 0036 9091 0000 lds r25,(update_timer)+1
52 003a 0E94 0000 call CheckDelay
53 003e 8823 tst r24
54 0040 09F4 brne .+2
55 0042 AFC0 rjmp .L2
56 0044 8091 0000 lds r24,update_timer
57 0048 9091 0000 lds r25,(update_timer)+1
58 004c 0A96 adiw r24,10
59 004e 9093 0000 sts (update_timer)+1,r25
60 0052 8093 0000 sts update_timer,r24
61 0056 E0E0 ldi r30,lo8(0)
62 0058 F0E0 ldi r31,hi8(0)
63 005a 9F01 movw r18,r30
64 005c 90E0 ldi r25,lo8(0)
65 005e 5FEF ldi r21,lo8(-1)
66 0060 A0E0 ldi r26,lo8(Motor)
67 0062 B0E0 ldi r27,hi8(Motor)
68 0064 4BE0 ldi r20,lo8(11)
69 .L9:
70 0066 ED01 movw r28,r26
71 0068 8B81 ldd r24,Y+3
72 006a 87FF sbrs r24,7
73 006c 0BC0 rjmp .L6
74 006e 9F5F subi r25,lo8(-(1))
75 0070 8D81 ldd r24,Y+5
76 0072 E80F add r30,r24
77 0074 F11D adc r31,__zero_reg__
78 0076 8981 ldd r24,Y+1
79 0078 280F add r18,r24
80 007a 311D adc r19,__zero_reg__
81 007c 8E81 ldd r24,Y+6
82 007e 8517 cp r24,r21
83 0080 08F4 brsh .L6
84 0082 582F mov r21,r24
85 .L6:
86 0084 4150 subi r20,lo8(-(-1))
87 0086 1896 adiw r26,8
88 0088 47FF sbrs r20,7
89 008a EDCF rjmp .L9
90 008c 5093 0000 sts Capacity+6,r21
91 0090 232B or r18,r19
92 0092 41F5 brne .L10
93 0094 2091 0000 lds r18,SumCurrentOffset.2
94 0098 3091 0000 lds r19,(SumCurrentOffset.2)+1
95 009c 4091 0000 lds r20,(SumCurrentOffset.2)+2
96 00a0 5091 0000 lds r21,(SumCurrentOffset.2)+3
97 00a4 BB27 clr r27
98 00a6 A52F mov r26,r21
99 00a8 942F mov r25,r20
100 00aa 832F mov r24,r19
101 00ac 9093 0000 sts (CurrentOffset.1)+1,r25
102 00b0 8093 0000 sts CurrentOffset.1,r24
103 00b4 AA27 clr r26
104 00b6 BB27 clr r27
105 00b8 281B sub r18,r24
106 00ba 390B sbc r19,r25
107 00bc 4A0B sbc r20,r26
108 00be 5B0B sbc r21,r27
109 00c0 CF01 movw r24,r30
110 00c2 AA27 clr r26
111 00c4 BB27 clr r27
112 00c6 280F add r18,r24
113 00c8 391F adc r19,r25
114 00ca 4A1F adc r20,r26
115 00cc 5B1F adc r21,r27
116 00ce 2093 0000 sts SumCurrentOffset.2,r18
117 00d2 3093 0000 sts (SumCurrentOffset.2)+1,r19
118 00d6 4093 0000 sts (SumCurrentOffset.2)+2,r20
119 00da 5093 0000 sts (SumCurrentOffset.2)+3,r21
120 00de E5E0 ldi r30,lo8(5)
121 00e0 F0E0 ldi r31,hi8(5)
122 00e2 13C0 rjmp .L11
123 .L10:
124 00e4 2091 0000 lds r18,CurrentOffset.1
125 00e8 3091 0000 lds r19,(CurrentOffset.1)+1
126 00ec 2E17 cp r18,r30
127 00ee 3F07 cpc r19,r31
128 00f0 18F4 brsh .L12
129 00f2 E21B sub r30,r18
130 00f4 F30B sbc r31,r19
131 00f6 02C0 rjmp .L13
132 .L12:
133 00f8 E0E0 ldi r30,lo8(0)
134 00fa F0E0 ldi r31,hi8(0)
135 .L13:
136 00fc 892F mov r24,r25
137 00fe 9927 clr r25
138 0100 880F add r24,r24
139 0102 991F adc r25,r25
140 0104 E80F add r30,r24
141 0106 F91F adc r31,r25
142 0108 3596 adiw r30,5
143 .L11:
144 010a F093 0000 sts (Capacity)+1,r31
145 010e E093 0000 sts Capacity,r30
146 0112 EF3F cpi r30,255
147 0114 F105 cpc r31,__zero_reg__
148 0116 78F4 brsh .L14
149 0118 8091 0000 lds r24,UBat
150 011c 9091 0000 lds r25,(UBat)+1
151 0120 8E9F mul r24,r30
152 0122 9001 movw r18,r0
153 0124 8F9F mul r24,r31
154 0126 300D add r19,r0
155 0128 9E9F mul r25,r30
156 012a 300D add r19,r0
157 012c 1124 clr r1
158 012e C901 movw r24,r18
159 0130 64E6 ldi r22,lo8(100)
160 0132 70E0 ldi r23,hi8(100)
161 0134 13C0 rjmp .L19
162 .L14:
163 0136 CF01 movw r24,r30
164 0138 9695 lsr r25
165 013a 8795 ror r24
166 013c 9695 lsr r25
167 013e 8795 ror r24
168 0140 2091 0000 lds r18,UBat
169 0144 3091 0000 lds r19,(UBat)+1
170 0148 289F mul r18,r24
171 014a A001 movw r20,r0
172 014c 299F mul r18,r25
173 014e 500D add r21,r0
174 0150 389F mul r19,r24
175 0152 500D add r21,r0
176 0154 1124 clr r1
177 0156 CA01 movw r24,r20
178 0158 69E1 ldi r22,lo8(25)
179 015a 70E0 ldi r23,hi8(25)
180 .L19:
181 015c 0E94 0000 call __udivmodhi4
182 0160 7093 0000 sts (Capacity+2)+1,r23
183 0164 6093 0000 sts Capacity+2,r22
184 0168 2091 0000 lds r18,SubCounter.0
185 016c 3091 0000 lds r19,(SubCounter.0)+1
186 0170 2E0F add r18,r30
187 0172 3F1F adc r19,r31
188 0174 3093 0000 sts (SubCounter.0)+1,r19
189 0178 2093 0000 sts SubCounter.0,r18
190 017c 5EE0 ldi r21,hi8(3601)
191 017e 2131 cpi r18,lo8(3601)
192 0180 3507 cpc r19,r21
193 0182 78F0 brlo .L2
194 0184 8091 0000 lds r24,Capacity+4
195 0188 9091 0000 lds r25,(Capacity+4)+1
196 018c 0196 adiw r24,1
197 018e 9093 0000 sts (Capacity+4)+1,r25
198 0192 8093 0000 sts Capacity+4,r24
199 0196 2051 subi r18,lo8(-(-3600))
200 0198 3E40 sbci r19,hi8(-(-3600))
201 019a 3093 0000 sts (SubCounter.0)+1,r19
202 019e 2093 0000 sts SubCounter.0,r18
203 .L2:
204 /* epilogue: frame size=0 */
205 01a2 DF91 pop r29
206 01a4 CF91 pop r28
207 01a6 0895 ret
208 /* epilogue end (size=3) */
209 /* function Capacity_Update size 189 (184) */
211 .comm Capacity,7,1
212 /* File "capacity.c": code 212 = 0x00d4 ( 206), prologues 2, epilogues 4 */
DEFINED SYMBOLS
*ABS*:00000000 capacity.c
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:15 .bss:00000000 update_timer
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:20 .text:00000000 Capacity_Init
*COM*:00000007 Capacity
.bss:00000002 SubCounter.0
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:40 .bss:00000004 CurrentOffset.1
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:41 .bss:00000006 SumCurrentOffset.2
C:\Users\Arthur-P\AppData\Local\Temp/ccmoaaaa.s:45 .text:0000002e Capacity_Update
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SetDelay
CheckDelay
Motor
UBat
__udivmodhi4
/branches/V0.80d-Arthur-P/debug.c
0,0 → 1,48
#include "main.h"
#include "debug.h"
 
#ifdef DEBUG // only include functions if DEBUG is defined in main.h
 
#warning : "### DEBUG-Funktion aktiv ###"
 
 
 
unsigned char Debug_BufPtr = 0;
struct str_Debug tDebug;
unsigned char SendDebugOutput = 0;
 
// function called from _printf_P to output character
void Debug_Putchar(char c)
{
if (!SendDebugOutput)
{
tDebug.Text[Debug_BufPtr++] = c; // copy character to buffer
if (Debug_BufPtr > 30) Debug_BufPtr = 30; // avoid buffer overflow
}
}
 
void DebugSend(unsigned char cmd)
{
if (!SendDebugOutput)
{
tDebug.Cmd = cmd;
tDebug.Text[Debug_BufPtr] = '\0'; // end of text marker
Debug_BufPtr = 0; // set bufferindex to 0
SendDebugOutput = 1; // set flag to trasmit data the next time in serial transmit function
}
}
#endif
 
/*
add the following code block to the serial transmit function
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
SendDebugOutput = 0;
}
#endif
 
*/
 
/branches/V0.80d-Arthur-P/debug.d
0,0 → 1,3
debug.o debug.d : debug.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/debug.h
0,0 → 1,60
#ifndef _DEBUG_H
#define _DEBUG_H
// ----------------------------------------------
#define CMD_NONE 0x00
#define CMD_RAW_OUTPUT 0x01
#define CMD_ERROR_MSG 0x02
#define CMD_WARNING_MSG 0x04
#define CMD_GREEN_MSG 0x08
 
// debug console in MK-Tool can also handle ANSI ESC seq.
#define ANSI_ATTRIBUTE_OFF "\033[0m"
#define ANSI_BOLD "\033[1m"
#define ANSI_UNDERSCORE "\033[4m"
#define ANSI_BLINK "\033[5m"
#define ANSI_INVERSE "\033[7m"
#define ANSI_INVISIBLE "\033[8m"
 
#define ANSI_COLOR_BLACK "\033[30m"
#define ANSI_COLOR_RED "\033[31m"
#define ANSI_COLOR_GREEN "\033[32m"
#define ANSI_COLOR_YELLOW "\033[33m"
#define ANSI_COLOR_BLUE "\033[34m"
#define ANSI_COLOR_VIOLETT "\033[35m"
#define ANSI_COLOR_KOBALTBLUE "\033[36m"
#define ANSI_COLOR_WHITE "\033[37m"
 
#define ANSI_CLEAR "\033[2J"
#define ANSI_HOME "\033[H"
 
// macros for easier use
#ifdef DEBUG // only include functions if DEBUG is defined in main.h
 
#define Debug(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_NONE); }
#define Debug_Raw(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_RAW_OUTPUT); }
#define Debug_Warning(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_WARNING_MSG); }
#define Debug_Error(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_ERROR_MSG); }
#define Debug_OK(format, args...) { _printf_P(&Debug_Putchar, PSTR(format) , ## args); DebugSend(CMD_GREEN_MSG); }
 
struct str_Debug
{
unsigned char Cmd; // bitcoded command
char Text[32];
};
 
extern struct str_Debug tDebug;
unsigned char SendDebugOutput;
 
void Debug_Putchar(char c);
void DebugSend(unsigned char cmd);
 
#else // dummy macros (won't waste flash, if #DEBUG is disabled)
#define Debug(format, args...) ;
#define Debug_Raw(format, args...) ;
#define Debug_Warning(format, args...) ;
#define Debug_Error(format, args...) ;
#define Debug_OK(format, args...) ;
#endif
 
// ----------------------------------------------
#endif
/branches/V0.80d-Arthur-P/debug.lst
0,0 → 1,21
1 .file "debug.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 /* File "debug.c": code 0 = 0x0000 ( 0), prologues 0, epilogues 0 */
DEFINED SYMBOLS
*ABS*:00000000 debug.c
C:\Users\Arthur-P\AppData\Local\Temp/ccENaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccENaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccENaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccENaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccENaaaa.s:7 *ABS*:00000001 __zero_reg__
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
/branches/V0.80d-Arthur-P/eeprom.c
0,0 → 1,715
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Contant Values
// + 0-250 -> normale Values
// + 251 -> Poti1
// + 252 -> Poti2
// + 253 -> Poti3
// + 254 -> Poti4
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#ifndef EEMEM
#define EEMEM __attribute__ ((section (".eeprom")))
#endif
 
 
#include <avr/eeprom.h>
#include <string.h>
#include "eeprom.h"
#include "uart.h"
#include "led.h"
#include "main.h"
#include "fc.h"
#include "twimaster.h"
 
paramset_t EE_Parameter;
MixerTable_t Mixer;
uint8_t RequiredMotors;
 
 
uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t i;
 
for(i=0; i<len; i++)
{
crc += pBuffer[i];
}
return crc;
}
 
uint8_t EEProm_Checksum(uint16_t EEAddr, uint16_t len)
{
uint8_t crc = 0xAA;
uint16_t off;
 
for(off=0; off<len; off++)
{
crc += eeprom_read_byte((uint8_t*)(EEAddr + off));;
}
return crc;
}
 
void ParamSet_DefaultStickMapping(void)
{
EE_Parameter.Kanalbelegung[K_GAS] = 1;
EE_Parameter.Kanalbelegung[K_ROLL] = 2;
EE_Parameter.Kanalbelegung[K_NICK] = 3;
EE_Parameter.Kanalbelegung[K_GIER] = 4;
EE_Parameter.Kanalbelegung[K_POTI1] = 5;
EE_Parameter.Kanalbelegung[K_POTI2] = 6;
EE_Parameter.Kanalbelegung[K_POTI3] = 7;
EE_Parameter.Kanalbelegung[K_POTI4] = 8;
EE_Parameter.Kanalbelegung[K_POTI5] = 9;
EE_Parameter.Kanalbelegung[K_POTI6] = 10;
EE_Parameter.Kanalbelegung[K_POTI7] = 11;
EE_Parameter.Kanalbelegung[K_POTI8] = 12;
}
 
 
/***************************************************/
/* Default Values for parameter set 1 */
/***************************************************/
void ParamSet_DefaultSet1(void) // sport
{
EE_Parameter.Revision = EEPARAM_REVISION;
 
if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 10;
EE_Parameter.Driftkomp = 0;
EE_Parameter.GyroAccFaktor = 27;
EE_Parameter.WinkelUmschlagNick = 78;
EE_Parameter.WinkelUmschlagRoll = 78;
}
else
{
EE_Parameter.Gyro_D = 3;
EE_Parameter.Driftkomp = 32;
EE_Parameter.GyroAccFaktor = 30;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
}
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER;
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT | CFG2_VARIO_BEEP;// | CFG_SENSITIVE_RC
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 255; // Wert : 0-247 255 -> Poti1
EE_Parameter.Hoehe_P = 15; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-247
EE_Parameter.Hoehe_ACC_Wirkung = 00; // Wert : 0-247
EE_Parameter.Hoehe_HoverBand = 8; // Wert : 0-247
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247
EE_Parameter.Hoehe_StickNeutralPoint = 0; // Wert : 0-247 (0 = Hover-Estimation)
EE_Parameter.Hoehe_Verstaerkung = 20; // Wert : 0-50
EE_Parameter.Stick_P = 14; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.Gier_P = 12; // Wert : 1-20
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-247
EE_Parameter.KompassWirkung = 128; // Wert : 0-247
EE_Parameter.Gyro_P = 80; // Wert : 0-247
EE_Parameter.Gyro_I = 150; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 80; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 150; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.NotGas = 45; // Wert : 0-247 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 90; // Wert : 0-247 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.I_Faktor = 32;
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.UserParam4 = 0; // zur freien Verwendung
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
EE_Parameter.UserParam7 = 0; // zur freien Verwendung
EE_Parameter.UserParam8 = 0; // zur freien Verwendung
EE_Parameter.ServoNickControl = 100; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoCompInvert = 1; // Wert : 0-247 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickRefresh = 6;
EE_Parameter.Servo3 = 125;
EE_Parameter.Servo4 = 125;
EE_Parameter.Servo5 = 125;
EE_Parameter.ServoRollControl = 100; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoRollComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoRollMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoRollMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-247 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 80;
EE_Parameter.CouplingYawCorrection = 1;
EE_Parameter.GyroAccAbgleich = 16; // 1/k;
EE_Parameter.DynamicStability = 100;
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.WARN_J16_Bitmask = 0xAA;
EE_Parameter.WARN_J17_Bitmask = 0xAA;
EE_Parameter.J16Timing = 15;
EE_Parameter.J17Timing = 15;
EE_Parameter.NaviGpsModeControl = 254; // 254 -> Poti 2
EE_Parameter.NaviGpsGain = 100;
EE_Parameter.NaviGpsP = 90;
EE_Parameter.NaviGpsI = 90;
EE_Parameter.NaviGpsD = 90;
EE_Parameter.NaviGpsPLimit = 75;
EE_Parameter.NaviGpsILimit = 75;
EE_Parameter.NaviGpsDLimit = 75;
EE_Parameter.NaviGpsACC = 0;
EE_Parameter.NaviGpsMinSat = 6;
EE_Parameter.NaviStickThreshold = 8;
EE_Parameter.NaviWindCorrection = 90;
EE_Parameter.NaviSpeedCompensation = 30;
EE_Parameter.NaviOperatingRadius = 100;
EE_Parameter.NaviAngleLimitation = 100;
EE_Parameter.NaviPH_LoginTime = 2;
EE_Parameter.Receiver = RECEIVER_SPEKTRUM;
EE_Parameter.OrientationAngle = 0;
EE_Parameter.OrientationModeControl = 0;
memcpy(EE_Parameter.Name, "Sport\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
 
/***************************************************/
/* Default Values for parameter set 2 */
/***************************************************/
void ParamSet_DefaultSet2(void) // normal
{
EE_Parameter.Revision = EEPARAM_REVISION;
 
if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 10;
EE_Parameter.Driftkomp = 0;
EE_Parameter.GyroAccFaktor = 27;
EE_Parameter.WinkelUmschlagNick = 78;
EE_Parameter.WinkelUmschlagRoll = 78;
}
else
{
EE_Parameter.Gyro_D = 3;
EE_Parameter.Driftkomp = 32;
EE_Parameter.GyroAccFaktor = 30;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
}
EE_Parameter.GlobalConfig = CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER;
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT | CFG2_VARIO_BEEP;// CFG_SENSITIVE_RC
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 255; // Wert : 0-247 255 -> Poti1
EE_Parameter.Hoehe_P = 15; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-247
EE_Parameter.Hoehe_ACC_Wirkung = 0; // Wert : 0-247
EE_Parameter.Hoehe_HoverBand = 8; // Wert : 0-247
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation)
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50
EE_Parameter.Stick_P = 10; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.Gier_P = 6; // Wert : 1-20
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-247
EE_Parameter.KompassWirkung = 128; // Wert : 0-247
EE_Parameter.Gyro_P = 90; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 90; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.NotGas = 45; // Wert : 0-247 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 90; // Wert : 0-247 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.I_Faktor = 32;
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.UserParam4 = 0; // zur freien Verwendung
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
EE_Parameter.UserParam7 = 0; // zur freien Verwendung
EE_Parameter.UserParam8 = 0; // zur freien Verwendung
EE_Parameter.ServoNickControl = 100; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoCompInvert = 1; // Wert : 0-247 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickRefresh = 6;
EE_Parameter.Servo3 = 125;
EE_Parameter.Servo4 = 125;
EE_Parameter.Servo5 = 125;
EE_Parameter.ServoRollControl = 100; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoRollComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoRollMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoRollMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-247 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 80;
EE_Parameter.CouplingYawCorrection = 60;
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.DynamicStability = 75;
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.WARN_J16_Bitmask = 0xAA;
EE_Parameter.WARN_J17_Bitmask = 0xAA;
EE_Parameter.J16Timing = 20;
EE_Parameter.J17Timing = 20;
EE_Parameter.NaviGpsModeControl = 254; // 254 -> Poti 2
EE_Parameter.NaviGpsGain = 100;
EE_Parameter.NaviGpsP = 90;
EE_Parameter.NaviGpsI = 90;
EE_Parameter.NaviGpsD = 90;
EE_Parameter.NaviGpsPLimit = 75;
EE_Parameter.NaviGpsILimit = 75;
EE_Parameter.NaviGpsDLimit = 75;
EE_Parameter.NaviGpsACC = 0;
EE_Parameter.NaviGpsMinSat = 6;
EE_Parameter.NaviStickThreshold = 8;
EE_Parameter.NaviWindCorrection = 90;
EE_Parameter.NaviSpeedCompensation = 30;
EE_Parameter.NaviOperatingRadius = 100;
EE_Parameter.NaviAngleLimitation = 100;
EE_Parameter.NaviPH_LoginTime = 2;
EE_Parameter.Receiver = RECEIVER_SPEKTRUM;
EE_Parameter.OrientationAngle = 0;
EE_Parameter.OrientationModeControl = 0;
memcpy(EE_Parameter.Name, "Normal\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
 
/***************************************************/
/* Default Values for parameter set 3 */
/***************************************************/
void ParamSet_DefaultSet3(void) // beginner
{
EE_Parameter.Revision = EEPARAM_REVISION;
if(PlatinenVersion >= 20)
{
EE_Parameter.Gyro_D = 10;
EE_Parameter.Driftkomp = 0;
EE_Parameter.GyroAccFaktor = 27;
EE_Parameter.WinkelUmschlagNick = 78;
EE_Parameter.WinkelUmschlagRoll = 78;
}
else
{
EE_Parameter.Gyro_D = 3;
EE_Parameter.Driftkomp = 32;
EE_Parameter.GyroAccFaktor = 30;
EE_Parameter.WinkelUmschlagNick = 85;
EE_Parameter.WinkelUmschlagRoll = 85;
}
EE_Parameter.GlobalConfig = /*CFG_DREHRATEN_BEGRENZER |*/ CFG_ACHSENKOPPLUNG_AKTIV | CFG_KOMPASS_AKTIV | CFG_GPS_AKTIV | CFG_HOEHEN_SCHALTER;
EE_Parameter.ExtraConfig = CFG2_HEIGHT_LIMIT | CFG2_VARIO_BEEP;// | CFG_SENSITIVE_RC
EE_Parameter.Hoehe_MinGas = 30;
EE_Parameter.MaxHoehe = 255; // Wert : 0-247 255 -> Poti1
EE_Parameter.Hoehe_P = 15; // Wert : 0-32
EE_Parameter.Luftdruck_D = 30; // Wert : 0-247
EE_Parameter.Hoehe_ACC_Wirkung = 0; // Wert : 0-247
EE_Parameter.Hoehe_HoverBand = 8; // Wert : 0-247
EE_Parameter.Hoehe_GPS_Z = 64; // Wert : 0-247
EE_Parameter.Hoehe_StickNeutralPoint = 0;// Wert : 0-247 (0 = Hover-Estimation)
EE_Parameter.Hoehe_Verstaerkung = 15; // Wert : 0-50
EE_Parameter.Stick_P = 8; // Wert : 1-20
EE_Parameter.Stick_D = 16; // Wert : 0-20
EE_Parameter.Gier_P = 6; // Wert : 1-20
EE_Parameter.Gas_Min = 8; // Wert : 0-32
EE_Parameter.Gas_Max = 230; // Wert : 33-247
EE_Parameter.KompassWirkung = 128; // Wert : 0-247
EE_Parameter.Gyro_P = 100; // Wert : 0-247
EE_Parameter.Gyro_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Gier_P = 100; // Wert : 0-247
EE_Parameter.Gyro_Gier_I = 120; // Wert : 0-247
EE_Parameter.Gyro_Stability = 6; // Wert : 1-8
EE_Parameter.UnterspannungsWarnung = 33; // Wert : 0-247 ( Automatische Zellenerkennung bei < 50)
EE_Parameter.NotGas = 45; // Wert : 0-247 // Gaswert bei Empangsverlust
EE_Parameter.NotGasZeit = 90; // Wert : 0-247 // Zeit bis auf NotGas geschaltet wird, wg. Rx-Problemen
EE_Parameter.I_Faktor = 16;
EE_Parameter.UserParam1 = 0; // zur freien Verwendung
EE_Parameter.UserParam2 = 0; // zur freien Verwendung
EE_Parameter.UserParam3 = 0; // zur freien Verwendung
EE_Parameter.UserParam4 = 0; // zur freien Verwendung
EE_Parameter.UserParam5 = 0; // zur freien Verwendung
EE_Parameter.UserParam6 = 0; // zur freien Verwendung
EE_Parameter.UserParam7 = 0; // zur freien Verwendung
EE_Parameter.UserParam8 = 0; // zur freien Verwendung
EE_Parameter.ServoNickControl = 100; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoNickComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoCompInvert = 1; // Wert : 0-247 // Richtung Einfluss Gyro/Servo
EE_Parameter.ServoNickMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.ServoNickRefresh = 6;
EE_Parameter.Servo3 = 125;
EE_Parameter.Servo4 = 125;
EE_Parameter.Servo5 = 125;
EE_Parameter.ServoRollControl = 100; // Wert : 0-247 // Stellung des Servos
EE_Parameter.ServoRollComp = 40; // Wert : 0-247 // Einfluss Gyro/Servo
EE_Parameter.ServoRollMin = 0; // Wert : 0-247 // Anschlag
EE_Parameter.ServoRollMax = 247; // Wert : 0-247 // Anschlag
EE_Parameter.LoopGasLimit = 50;
EE_Parameter.LoopThreshold = 90; // Wert: 0-247 Schwelle für Stickausschlag
EE_Parameter.LoopHysterese = 50;
EE_Parameter.BitConfig = 0; // Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts
EE_Parameter.AchsKopplung1 = 90;
EE_Parameter.AchsKopplung2 = 80;
EE_Parameter.CouplingYawCorrection = 70;
EE_Parameter.GyroAccAbgleich = 32; // 1/k
EE_Parameter.DynamicStability = 70;
EE_Parameter.J16Bitmask = 95;
EE_Parameter.J17Bitmask = 243;
EE_Parameter.WARN_J16_Bitmask = 0xAA;
EE_Parameter.WARN_J17_Bitmask = 0xAA;
EE_Parameter.J16Timing = 30;
EE_Parameter.J17Timing = 30;
EE_Parameter.NaviGpsModeControl = 254; // 254 -> Poti 2
EE_Parameter.NaviGpsGain = 100;
EE_Parameter.NaviGpsP = 90;
EE_Parameter.NaviGpsI = 90;
EE_Parameter.NaviGpsD = 90;
EE_Parameter.NaviGpsPLimit = 75;
EE_Parameter.NaviGpsILimit = 75;
EE_Parameter.NaviGpsDLimit = 75;
EE_Parameter.NaviGpsACC = 0;
EE_Parameter.NaviGpsMinSat = 6;
EE_Parameter.NaviStickThreshold = 8;
EE_Parameter.NaviWindCorrection = 90;
EE_Parameter.NaviSpeedCompensation = 30;
EE_Parameter.NaviOperatingRadius = 100;
EE_Parameter.NaviAngleLimitation = 100;
EE_Parameter.NaviPH_LoginTime = 2;
EE_Parameter.Receiver = RECEIVER_SPEKTRUM;
EE_Parameter.OrientationAngle = 0;
EE_Parameter.OrientationModeControl = 0;
memcpy(EE_Parameter.Name, "Beginner\0", 12);
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
}
 
/***************************************************/
/* Read Parameter from EEPROM as byte */
/***************************************************/
uint8_t GetParamByte(uint16_t param_id)
{
return eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id));
}
 
/***************************************************/
/* Write Parameter to EEPROM as byte */
/***************************************************/
void SetParamByte(uint16_t param_id, uint8_t value)
{
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
}
 
/***************************************************/
/* Read Parameter from EEPROM as word */
/***************************************************/
uint16_t GetParamWord(uint16_t param_id)
{
return eeprom_read_word((uint16_t *)(EEPROM_ADR_PARAM_BEGIN + param_id));
}
 
/***************************************************/
/* Write Parameter to EEPROM as word */
/***************************************************/
void SetParamWord(uint16_t param_id, uint16_t value)
{
eeprom_write_word((uint16_t*)(EEPROM_ADR_PARAM_BEGIN + param_id), value);
}
 
/***************************************************/
/* Read Parameter Set from EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber)
{
uint8_t crc;
uint16_t eeaddr;
 
// range the setnumber
if((1 > setnumber) || (setnumber > 5)) setnumber = 3;
 
// calculate eeprom addr
eeaddr = EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1);
 
// calculate checksum from eeprom
crc = EEProm_Checksum(eeaddr, PARAMSET_STRUCT_LEN - 1);
 
// check crc
if(crc != eeprom_read_byte((uint8_t*)(eeaddr + PARAMSET_STRUCT_LEN - 1))) return 0;
 
// check revision
if(eeprom_read_byte((uint8_t*)(eeaddr)) != EEPARAM_REVISION) return 0;
 
// read paramset from eeprom
eeprom_read_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
LED_Init();
return 1;
}
 
/***************************************************/
/* Write Parameter Set to EEPROM */
/***************************************************/
// number [1..5]
uint8_t ParamSet_WriteToEEProm(uint8_t setnumber)
{
uint8_t crc;
 
if(EE_Parameter.Revision == EEPARAM_REVISION) // write only the right revision to eeprom
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) return 0;
 
// update checksum
EE_Parameter.crc = RAM_Checksum((uint8_t*)(&EE_Parameter), sizeof(EE_Parameter)-1);
 
// write paramset to eeprom
eeprom_write_block((void *) &EE_Parameter, (void*)(EEPROM_ADR_PARAMSET + PARAMSET_STRUCT_LEN * (setnumber - 1)), PARAMSET_STRUCT_LEN);
 
// backup channel settings to separate block in eeprom
eeprom_write_block( (void*)(EE_Parameter.Kanalbelegung), (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
 
// write crc of channel block to eeprom
crc = RAM_Checksum((uint8_t*)(EE_Parameter.Kanalbelegung), sizeof(EE_Parameter.Kanalbelegung));
eeprom_write_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung)), crc);
 
// update active settings number
SetActiveParamSet(setnumber);
LED_Init();
return 1;
}
// wrong revision
return 0;
}
 
/***************************************************/
/* Read MixerTable from EEPROM */
/***************************************************/
uint8_t MixerTable_ReadFromEEProm(void)
{
uint8_t crc;
 
// calculate checksum in eeprom
crc = EEProm_Checksum(EEPROM_ADR_MIXERTABLE, sizeof(Mixer) - 1);
 
// check crc
if( crc != eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE + sizeof(Mixer) - 1)) ) return 0;
 
// check revision
if(eeprom_read_byte((uint8_t*)(EEPROM_ADR_MIXERTABLE)) != EEMIXER_REVISION) return 0;
 
// read mixer table
eeprom_read_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
 
/***************************************************/
/* Write Mixer Table to EEPROM */
/***************************************************/
uint8_t MixerTable_WriteToEEProm(void)
{
if(Mixer.Revision == EEMIXER_REVISION)
{
// update crc
Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
 
// write to eeprom
eeprom_write_block((void *) &Mixer, (void*)(EEPROM_ADR_MIXERTABLE), sizeof(Mixer));
return 1;
}
else return 0;
}
 
/***************************************************/
/* Default Values for Mixer Table */
/***************************************************/
void MixerTable_Default(void) // Quadro
{
uint8_t i;
 
Mixer.Revision = EEMIXER_REVISION;
// clear mixer table
for(i = 0; i < 16; i++)
{
Mixer.Motor[i][MIX_GAS] = 0;
Mixer.Motor[i][MIX_NICK] = 0;
Mixer.Motor[i][MIX_ROLL] = 0;
Mixer.Motor[i][MIX_YAW] = 0;
}
// default = Quadro
Mixer.Motor[0][MIX_GAS] = 64; Mixer.Motor[0][MIX_NICK] = +64; Mixer.Motor[0][MIX_ROLL] = 0; Mixer.Motor[0][MIX_YAW] = +64;
Mixer.Motor[1][MIX_GAS] = 64; Mixer.Motor[1][MIX_NICK] = -64; Mixer.Motor[1][MIX_ROLL] = 0; Mixer.Motor[1][MIX_YAW] = +64;
Mixer.Motor[2][MIX_GAS] = 64; Mixer.Motor[2][MIX_NICK] = 0; Mixer.Motor[2][MIX_ROLL] = -64; Mixer.Motor[2][MIX_YAW] = -64;
Mixer.Motor[3][MIX_GAS] = 64; Mixer.Motor[3][MIX_NICK] = 0; Mixer.Motor[3][MIX_ROLL] = +64; Mixer.Motor[3][MIX_YAW] = -64;
memcpy(Mixer.Name, "Quadro\0", 7);
Mixer.crc = Mixer.crc = RAM_Checksum((uint8_t*)(&Mixer), sizeof(Mixer) - 1);
}
 
/***************************************************/
/* Get active parameter set */
/***************************************************/
uint8_t GetActiveParamSet(void)
{
uint8_t setnumber;
setnumber = eeprom_read_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET));
if(setnumber > 5)
{
setnumber = 3;
eeprom_write_byte((void*)(EEPROM_ADR_PARAM_BEGIN+PID_ACTIVE_SET), setnumber);
}
return(setnumber);
}
 
/***************************************************/
/* Set active parameter set */
/***************************************************/
void SetActiveParamSet(uint8_t setnumber)
{
if(setnumber > 5) setnumber = 5;
if(setnumber < 1) setnumber = 1;
eeprom_write_byte((uint8_t*)(EEPROM_ADR_PARAM_BEGIN + PID_ACTIVE_SET), setnumber);
}
 
/***************************************************/
/* Initialize EEPROM Parameter Sets */
/***************************************************/
void ParamSet_Init(void)
{
uint8_t channel_backup = 0, bad_params = 0, ee_default = 0,i;
 
 
if(EEPARAM_REVISION != GetParamByte(PID_EE_REVISION) )
{
ee_default = 1; // software update or forced by mktool
SetParamByte(PID_EE_REVISION, EEPARAM_REVISION);
}
 
 
// 1st check for a valid channel backup in eeprom
i = EEProm_Checksum(EEPROM_ADR_CHANNELS, sizeof(EE_Parameter.Kanalbelegung));
if(i == eeprom_read_byte((uint8_t*)(EEPROM_ADR_CHANNELS + sizeof(EE_Parameter.Kanalbelegung))) ) channel_backup = 1;
 
 
// parameter check
 
// check all 5 parameter settings
for (i = 1;i < 6; i++)
{
if(ee_default || !ParamSet_ReadFromEEProm(i)) // could not read paramset from eeprom
{
bad_params = 1;
printf("\n\rGenerating default Parameter Set %d",i);
switch(i)
{
case 1:
ParamSet_DefaultSet1(); // Fill ParamSet Structure to default parameter set 1 (Sport)
break;
case 2:
ParamSet_DefaultSet2(); // Kamera
break;
case 3:
ParamSet_DefaultSet3(); // Beginner
break;
default:
ParamSet_DefaultSet3(); // Kamera
break;
}
if(channel_backup) // if we have an channel mapping backup in eeprom
{ // restore it from eeprom
eeprom_read_block((void *)EE_Parameter.Kanalbelegung, (void*)(EEPROM_ADR_CHANNELS), sizeof(EE_Parameter.Kanalbelegung));
}
else
{ // use default mapping
ParamSet_DefaultStickMapping();
}
ParamSet_WriteToEEProm(i);
}
}
if(bad_params) // at least one of the parameter settings were invalid
{
// default-Setting is parameter set 3
SetActiveParamSet(3);
}
 
 
// read active parameter set to ParamSet stucture
i = GetActiveParamSet();
ParamSet_ReadFromEEProm(i);
printf("\n\rUsing Parameter Set %d", i);
 
// load mixer table
if(ee_default || !MixerTable_ReadFromEEProm() )
{
printf("\n\rGenerating default Mixer Table");
MixerTable_Default(); // Quadro
MixerTable_WriteToEEProm();
}
// determine motornumber
RequiredMotors = 0;
for(i = 0; i < 16; i++)
{
if(Mixer.Motor[i][MIX_GAS] > 0) RequiredMotors++;
}
 
printf("\n\rMixer-Config: '%s' (%u Motors)",Mixer.Name, RequiredMotors);
printf("\n\r==============================");
}
/branches/V0.80d-Arthur-P/eeprom.d
0,0 → 1,3
eeprom.o eeprom.d : eeprom.c eeprom.h twimaster.h uart.h led.h main.h old_macros.h \
printf_P.h timer0.h analog.h menu.h rc.h fc.h gps.h spi.h spektrum.h \
capacity.h libfc.h debug.h
/branches/V0.80d-Arthur-P/eeprom.h
0,0 → 1,238
#ifndef _EEPROM_H
#define _EEPROM_H
 
#include <inttypes.h>
#include "twimaster.h"
 
#define EEPARAM_REVISION 84 // is count up, if paramater stucture has changed (compatibility)
#define EEMIXER_REVISION 1 // is count up, if mixer stucture has changed (compatibility)
 
 
#define EEPROM_ADR_PARAM_BEGIN 0
#define PID_EE_REVISION 1 // byte
#define PID_ACTIVE_SET 2 // byte
#define PID_PRESSURE_OFFSET 3 // byte
 
#define PID_ACC_NICK 4 // word
#define PID_ACC_ROLL 6 // word
#define PID_ACC_TOP 8 // word
 
#define PID_FLIGHT_MINUTES_TOTAL 10 // word
#define PID_FLIGHT_MINUTES 14 // word
 
 
#define EEPROM_ADR_CHANNELS 80 // 80 - 93, 12 bytes + 1 byte crc
#define EEPROM_ADR_PARAMSET 100 // 100 - 650, 5 * 110 bytes
#define EEPROM_ADR_MIXERTABLE 1000 // 1000 - 1078, 78 bytes
#define EEPROM_ADR_BLCONFIG 1200 // 1200 - 1296, 12 * 8 bytes
 
#define MIX_GAS 0
#define MIX_NICK 1
#define MIX_ROLL 2
#define MIX_YAW 3
 
typedef struct
{
uint8_t Revision;
int8_t Name[12];
int8_t Motor[16][4];
uint8_t crc;
} __attribute__((packed)) MixerTable_t;
 
extern MixerTable_t Mixer;
extern uint8_t RequiredMotors;
 
#define CFG_HOEHENREGELUNG 0x01
#define CFG_HOEHEN_SCHALTER 0x02
#define CFG_HEADING_HOLD 0x04
#define CFG_KOMPASS_AKTIV 0x08
#define CFG_KOMPASS_FIX 0x10
#define CFG_GPS_AKTIV 0x20
#define CFG_ACHSENKOPPLUNG_AKTIV 0x40
#define CFG_DREHRATEN_BEGRENZER 0x80
 
#define CFG_LOOP_OBEN 0x01
#define CFG_LOOP_UNTEN 0x02
#define CFG_LOOP_LINKS 0x04
#define CFG_LOOP_RECHTS 0x08
#define CFG_MOTOR_BLINK 0x10
#define CFG_MOTOR_OFF_LED1 0x20
#define CFG_MOTOR_OFF_LED2 0x40
#define CFG_RES4 0x80
 
#define CFG2_HEIGHT_LIMIT 0x01
#define CFG2_VARIO_BEEP 0x02
#define CFG_SENSITIVE_RC 0x04
 
// bit mask for ParamSet.Config0
#define CFG0_AIRPRESS_SENSOR 0x01
#define CFG0_HEIGHT_SWITCH 0x02
#define CFG0_HEADING_HOLD 0x04
#define CFG0_COMPASS_ACTIVE 0x08
#define CFG0_COMPASS_FIX 0x10
#define CFG0_GPS_ACTIVE 0x20
#define CFG0_AXIS_COUPLING_ACTIVE 0x40
#define CFG0_ROTARY_RATE_LIMITER 0x80
 
// defines for the receiver selection
#define RECEIVER_PPM 0
#define RECEIVER_SPEKTRUM 1
#define RECEIVER_SPEKTRUM_HI_RES 2
#define RECEIVER_SPEKTRUM_LOW_RES 3
#define RECEIVER_JETI 4
#define RECEIVER_ACT_DSL 5
#define RECEIVER_UNKNOWN 0xFF
 
// defines for lookup ParamSet.ChannelAssignment
#define K_NICK 0
#define K_ROLL 1
#define K_GAS 2
#define K_GIER 3
#define K_POTI1 4
#define K_POTI2 5
#define K_POTI3 6
#define K_POTI4 7
#define K_POTI5 8
#define K_POTI6 9
#define K_POTI7 10
#define K_POTI8 11
 
 
// values above 247 representing poti1 to poti8
// poti1 = 255
// poti2 = 254
// poti3 = 253
// poti4 = 252
// poti5 = 251
// poti6 = 250
// poti7 = 249
// poti8 = 248
 
 
typedef struct
{
unsigned char Revision;
unsigned char Kanalbelegung[12]; // GAS[0], GIER[1],NICK[2], ROLL[3], POTI1, POTI2, POTI3
unsigned char GlobalConfig; // 0x01=Höhenregler aktiv,0x02=Kompass aktiv, 0x04=GPS aktiv, 0x08=Heading Hold aktiv
unsigned char Hoehe_MinGas; // Wert : 0-100
unsigned char Luftdruck_D; // Wert : 0-250
unsigned char MaxHoehe; // Wert : 0-32
unsigned char Hoehe_P; // Wert : 0-32
unsigned char Hoehe_Verstaerkung; // Wert : 0-50
unsigned char Hoehe_ACC_Wirkung; // Wert : 0-250
unsigned char Hoehe_HoverBand; // Wert : 0-250
unsigned char Hoehe_GPS_Z; // Wert : 0-250
unsigned char Hoehe_StickNeutralPoint;// Wert : 0-250
unsigned char Stick_P; // Wert : 1-6
unsigned char Stick_D; // Wert : 0-64
unsigned char Gier_P; // Wert : 1-20
unsigned char Gas_Min; // Wert : 0-32
unsigned char Gas_Max; // Wert : 33-250
unsigned char GyroAccFaktor; // Wert : 1-64
unsigned char KompassWirkung; // Wert : 0-32
unsigned char Gyro_P; // Wert : 10-250
unsigned char Gyro_I; // Wert : 0-250
unsigned char Gyro_D; // Wert : 0-250
unsigned char Gyro_Gier_P; // Wert : 10-250
unsigned char Gyro_Gier_I; // Wert : 0-250
unsigned char Gyro_Stability; // Wert : 0-16
unsigned char UnterspannungsWarnung; // Wert : 0-250
unsigned char NotGas; // Wert : 0-250 //Gaswert bei Empängsverlust
unsigned char NotGasZeit; // Wert : 0-250 // Zeitbis auf NotGas geschaltet wird, wg. Rx-Problemen
unsigned char Receiver; // 0= Summensignal, 1= Spektrum, 2 =Jeti, 3=ACT DSL, 4=ACT S3D
unsigned char I_Faktor; // Wert : 0-250
unsigned char UserParam1; // Wert : 0-250
unsigned char UserParam2; // Wert : 0-250
unsigned char UserParam3; // Wert : 0-250
unsigned char UserParam4; // Wert : 0-250
unsigned char ServoNickControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoNickComp; // Wert : 0-250 // Einfluss Gyro/Servo
unsigned char ServoNickMin; // Wert : 0-250 // Anschlag
unsigned char ServoNickMax; // Wert : 0-250 // Anschlag
//--- Seit V0.75
unsigned char ServoRollControl; // Wert : 0-250 // Stellung des Servos
unsigned char ServoRollComp; // Wert : 0-250
unsigned char ServoRollMin; // Wert : 0-250
unsigned char ServoRollMax; // Wert : 0-250
//---
unsigned char ServoNickRefresh; // Speed of the Servo
unsigned char Servo3; // Value or mapping of the Servo Output
unsigned char Servo4; // Value or mapping of the Servo Output
unsigned char Servo5; // Value or mapping of the Servo Output
unsigned char LoopGasLimit; // Wert: 0-250 max. Gas während Looping
unsigned char LoopThreshold; // Wert: 0-250 Schwelle für Stickausschlag
unsigned char LoopHysterese; // Wert: 0-250 Hysterese für Stickausschlag
unsigned char AchsKopplung1; // Wert: 0-250 Faktor, mit dem Gier die Achsen Roll und Nick koppelt (NickRollMitkopplung)
unsigned char AchsKopplung2; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
unsigned char CouplingYawCorrection; // Wert: 0-250 Faktor, mit dem Nick und Roll verkoppelt werden
unsigned char WinkelUmschlagNick; // Wert: 0-250 180°-Punkt
unsigned char WinkelUmschlagRoll; // Wert: 0-250 180°-Punkt
unsigned char GyroAccAbgleich; // 1/k (Koppel_ACC_Wirkung)
unsigned char Driftkomp;
unsigned char DynamicStability;
unsigned char UserParam5; // Wert : 0-250
unsigned char UserParam6; // Wert : 0-250
unsigned char UserParam7; // Wert : 0-250
unsigned char UserParam8; // Wert : 0-250
//---Output ---------------------------------------------
unsigned char J16Bitmask; // for the J16 Output
unsigned char J16Timing; // for the J16 Output
unsigned char J17Bitmask; // for the J17 Output
unsigned char J17Timing; // for the J17 Output
// seit version V0.75c
unsigned char WARN_J16_Bitmask; // for the J16 Output
unsigned char WARN_J17_Bitmask; // for the J17 Output
//---NaviCtrl---------------------------------------------
unsigned char NaviGpsModeControl; // Parameters for the Naviboard
unsigned char NaviGpsGain;
unsigned char NaviGpsP;
unsigned char NaviGpsI;
unsigned char NaviGpsD;
unsigned char NaviGpsPLimit;
unsigned char NaviGpsILimit;
unsigned char NaviGpsDLimit;
unsigned char NaviGpsACC;
unsigned char NaviGpsMinSat;
unsigned char NaviStickThreshold;
unsigned char NaviWindCorrection;
unsigned char NaviSpeedCompensation;
unsigned char NaviOperatingRadius;
unsigned char NaviAngleLimitation;
unsigned char NaviPH_LoginTime;
//---Ext.Ctrl---------------------------------------------
unsigned char ExternalControl; // for serial Control
//---CareFree---------------------------------------------
unsigned char OrientationAngle; // Where is the front-direction?
unsigned char OrientationModeControl; // switch for CareFree
//------------------------------------------------
unsigned char BitConfig; // (war Loop-Cfg) Bitcodiert: 0x01=oben, 0x02=unten, 0x04=links, 0x08=rechts / wird getrennt behandelt
unsigned char ServoCompInvert; // // 0x01 = Nick, 0x02 = Roll 0 oder 1 // WICHTIG!!! am Ende lassen
unsigned char ExtraConfig; // bitcodiert
char Name[12];
unsigned char crc; // must be the last byte!
} paramset_t;
 
#define PARAMSET_STRUCT_LEN sizeof(paramset_t)
 
extern paramset_t EE_Parameter;
 
extern uint8_t RAM_Checksum(uint8_t* pBuffer, uint16_t len);
 
extern void ParamSet_Init(void);
 
extern uint8_t ParamSet_ReadFromEEProm(uint8_t setnumber);
extern uint8_t ParamSet_WriteToEEProm(uint8_t setnumber);
 
extern uint8_t GetActiveParamSet(void);
extern void SetActiveParamSet(uint8_t setnumber);
 
extern uint8_t MixerTable_ReadFromEEProm(void);
extern uint8_t MixerTable_WriteToEEProm(void);
 
extern uint8_t GetParamByte(uint16_t param_id);
extern void SetParamByte(uint16_t param_id, uint8_t value);
extern uint16_t GetParamWord(uint16_t param_id);
extern void SetParamWord(uint16_t param_id, uint16_t value);
 
 
#endif //_EEPROM_H
/branches/V0.80d-Arthur-P/eeprom.lst
0,0 → 1,1309
1 .file "eeprom.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .text
11 .global RAM_Checksum
13 RAM_Checksum:
14 /* prologue: frame size=0 */
15 /* prologue end (size=0) */
16 0000 4AEA ldi r20,lo8(-86)
17 0002 20E0 ldi r18,lo8(0)
18 0004 30E0 ldi r19,hi8(0)
19 0006 2617 cp r18,r22
20 0008 3707 cpc r19,r23
21 000a 40F4 brsh .L7
22 000c FC01 movw r30,r24
23 .L5:
24 000e 8191 ld r24,Z+
25 0010 480F add r20,r24
26 0012 2F5F subi r18,lo8(-(1))
27 0014 3F4F sbci r19,hi8(-(1))
28 0016 2617 cp r18,r22
29 0018 3707 cpc r19,r23
30 001a C8F3 brlo .L5
31 .L7:
32 001c 842F mov r24,r20
33 001e 9927 clr r25
34 /* epilogue: frame size=0 */
35 0020 0895 ret
36 /* epilogue end (size=1) */
37 /* function RAM_Checksum size 17 (16) */
39 .global EEProm_Checksum
41 EEProm_Checksum:
42 /* prologue: frame size=0 */
43 /* prologue end (size=0) */
44 0022 AC01 movw r20,r24
45 0024 9AEA ldi r25,lo8(-86)
46 0026 20E0 ldi r18,lo8(0)
47 0028 30E0 ldi r19,hi8(0)
48 .L16:
49 002a 2617 cp r18,r22
50 002c 3707 cpc r19,r23
51 002e 50F4 brsh .L15
52 0030 DA01 movw r26,r20
53 0032 A20F add r26,r18
54 0034 B31F adc r27,r19
55 /* #APP */
56 0036 0E94 0000 call __eeprom_read_byte_1F2021
57 003a 802D mov r24,__tmp_reg__
58 /* #NOAPP */
59 003c 980F add r25,r24
60 003e 2F5F subi r18,lo8(-(1))
61 0040 3F4F sbci r19,hi8(-(1))
62 0042 F3CF rjmp .L16
63 .L15:
64 0044 892F mov r24,r25
65 0046 9927 clr r25
66 /* epilogue: frame size=0 */
67 0048 0895 ret
68 /* epilogue end (size=1) */
69 /* function EEProm_Checksum size 21 (20) */
71 .global ParamSet_DefaultStickMapping
73 ParamSet_DefaultStickMapping:
74 /* prologue: frame size=0 */
75 /* prologue end (size=0) */
76 004a 81E0 ldi r24,lo8(1)
77 004c 8093 0000 sts EE_Parameter+3,r24
78 0050 82E0 ldi r24,lo8(2)
79 0052 8093 0000 sts EE_Parameter+2,r24
80 0056 83E0 ldi r24,lo8(3)
81 0058 8093 0000 sts EE_Parameter+1,r24
82 005c 84E0 ldi r24,lo8(4)
83 005e 8093 0000 sts EE_Parameter+4,r24
84 0062 85E0 ldi r24,lo8(5)
85 0064 8093 0000 sts EE_Parameter+5,r24
86 0068 86E0 ldi r24,lo8(6)
87 006a 8093 0000 sts EE_Parameter+6,r24
88 006e 87E0 ldi r24,lo8(7)
89 0070 8093 0000 sts EE_Parameter+7,r24
90 0074 88E0 ldi r24,lo8(8)
91 0076 8093 0000 sts EE_Parameter+8,r24
92 007a 89E0 ldi r24,lo8(9)
93 007c 8093 0000 sts EE_Parameter+9,r24
94 0080 8AE0 ldi r24,lo8(10)
95 0082 8093 0000 sts EE_Parameter+10,r24
96 0086 8BE0 ldi r24,lo8(11)
97 0088 8093 0000 sts EE_Parameter+11,r24
98 008c 8CE0 ldi r24,lo8(12)
99 008e 8093 0000 sts EE_Parameter+12,r24
100 /* epilogue: frame size=0 */
101 0092 0895 ret
102 /* epilogue end (size=1) */
103 /* function ParamSet_DefaultStickMapping size 37 (36) */
105 .data
106 .LC0:
107 0000 5370 6F72 .string "Sport"
107 7400
108 0006 00 .string ""
109 .text
110 .global ParamSet_DefaultSet1
112 ParamSet_DefaultSet1:
113 /* prologue: frame size=0 */
114 0094 1F93 push r17
115 0096 CF93 push r28
116 0098 DF93 push r29
117 /* prologue end (size=3) */
118 009a 84E5 ldi r24,lo8(84)
119 009c 8093 0000 sts EE_Parameter,r24
120 00a0 8091 0000 lds r24,PlatinenVersion
121 00a4 8431 cpi r24,lo8(20)
122 00a6 50F0 brlo .L19
123 00a8 8AE0 ldi r24,lo8(10)
124 00aa 8093 0000 sts EE_Parameter+32,r24
125 00ae 1092 0000 sts EE_Parameter+66,__zero_reg__
126 00b2 8BE1 ldi r24,lo8(27)
127 00b4 8093 0000 sts EE_Parameter+28,r24
128 00b8 8EE4 ldi r24,lo8(78)
129 00ba 0AC0 rjmp .L21
130 .L19:
131 00bc 83E0 ldi r24,lo8(3)
132 00be 8093 0000 sts EE_Parameter+32,r24
133 00c2 80E2 ldi r24,lo8(32)
134 00c4 8093 0000 sts EE_Parameter+66,r24
135 00c8 8EE1 ldi r24,lo8(30)
136 00ca 8093 0000 sts EE_Parameter+28,r24
137 00ce 85E5 ldi r24,lo8(85)
138 .L21:
139 00d0 8093 0000 sts EE_Parameter+63,r24
140 00d4 8093 0000 sts EE_Parameter+64,r24
141 00d8 8AE6 ldi r24,lo8(106)
142 00da 8093 0000 sts EE_Parameter+13,r24
143 00de 83E0 ldi r24,lo8(3)
144 00e0 8093 0000 sts EE_Parameter+99,r24
145 00e4 AEE1 ldi r26,lo8(30)
146 00e6 A093 0000 sts EE_Parameter+14,r26
147 00ea 8FEF ldi r24,lo8(-1)
148 00ec 8093 0000 sts EE_Parameter+16,r24
149 00f0 EFE0 ldi r30,lo8(15)
150 00f2 E093 0000 sts EE_Parameter+17,r30
151 00f6 A093 0000 sts EE_Parameter+15,r26
152 00fa 1092 0000 sts EE_Parameter+19,__zero_reg__
153 00fe F8E0 ldi r31,lo8(8)
154 0100 F093 0000 sts EE_Parameter+20,r31
155 0104 80E4 ldi r24,lo8(64)
156 0106 8093 0000 sts EE_Parameter+21,r24
157 010a 1092 0000 sts EE_Parameter+22,__zero_reg__
158 010e 84E1 ldi r24,lo8(20)
159 0110 8093 0000 sts EE_Parameter+18,r24
160 0114 8EE0 ldi r24,lo8(14)
161 0116 8093 0000 sts EE_Parameter+23,r24
162 011a B0E1 ldi r27,lo8(16)
163 011c B093 0000 sts EE_Parameter+24,r27
164 0120 1CE0 ldi r17,lo8(12)
165 0122 1093 0000 sts EE_Parameter+25,r17
166 0126 F093 0000 sts EE_Parameter+26,r31
167 012a 86EE ldi r24,lo8(-26)
168 012c 8093 0000 sts EE_Parameter+27,r24
169 0130 80E8 ldi r24,lo8(-128)
170 0132 8093 0000 sts EE_Parameter+29,r24
171 0136 50E5 ldi r21,lo8(80)
172 0138 5093 0000 sts EE_Parameter+30,r21
173 013c 86E9 ldi r24,lo8(-106)
174 013e 8093 0000 sts EE_Parameter+31,r24
175 0142 5093 0000 sts EE_Parameter+33,r21
176 0146 8093 0000 sts EE_Parameter+34,r24
177 014a 76E0 ldi r23,lo8(6)
178 014c 7093 0000 sts EE_Parameter+35,r23
179 0150 81E2 ldi r24,lo8(33)
180 0152 8093 0000 sts EE_Parameter+36,r24
181 0156 8DE2 ldi r24,lo8(45)
182 0158 8093 0000 sts EE_Parameter+37,r24
183 015c 9AE5 ldi r25,lo8(90)
184 015e 9093 0000 sts EE_Parameter+38,r25
185 0162 80E2 ldi r24,lo8(32)
186 0164 8093 0000 sts EE_Parameter+40,r24
187 0168 1092 0000 sts EE_Parameter+41,__zero_reg__
188 016c 1092 0000 sts EE_Parameter+42,__zero_reg__
189 0170 1092 0000 sts EE_Parameter+43,__zero_reg__
190 0174 1092 0000 sts EE_Parameter+44,__zero_reg__
191 0178 1092 0000 sts EE_Parameter+68,__zero_reg__
192 017c 1092 0000 sts EE_Parameter+69,__zero_reg__
193 0180 1092 0000 sts EE_Parameter+70,__zero_reg__
194 0184 1092 0000 sts EE_Parameter+71,__zero_reg__
195 0188 34E6 ldi r19,lo8(100)
196 018a 3093 0000 sts EE_Parameter+45,r19
197 018e 48E2 ldi r20,lo8(40)
198 0190 4093 0000 sts EE_Parameter+46,r20
199 0194 61E0 ldi r22,lo8(1)
200 0196 6093 0000 sts EE_Parameter+98,r22
201 019a 1092 0000 sts EE_Parameter+47,__zero_reg__
202 019e 27EF ldi r18,lo8(-9)
203 01a0 2093 0000 sts EE_Parameter+48,r18
204 01a4 7093 0000 sts EE_Parameter+53,r23
205 01a8 8DE7 ldi r24,lo8(125)
206 01aa 8093 0000 sts EE_Parameter+54,r24
207 01ae 8093 0000 sts EE_Parameter+55,r24
208 01b2 8093 0000 sts EE_Parameter+56,r24
209 01b6 3093 0000 sts EE_Parameter+49,r19
210 01ba 4093 0000 sts EE_Parameter+50,r20
211 01be 1092 0000 sts EE_Parameter+51,__zero_reg__
212 01c2 2093 0000 sts EE_Parameter+52,r18
213 01c6 82E3 ldi r24,lo8(50)
214 01c8 8093 0000 sts EE_Parameter+57,r24
215 01cc 9093 0000 sts EE_Parameter+58,r25
216 01d0 8093 0000 sts EE_Parameter+59,r24
217 01d4 1092 0000 sts EE_Parameter+97,__zero_reg__
218 01d8 9093 0000 sts EE_Parameter+60,r25
219 01dc 5093 0000 sts EE_Parameter+61,r21
220 01e0 6093 0000 sts EE_Parameter+62,r22
221 01e4 B093 0000 sts EE_Parameter+65,r27
222 01e8 3093 0000 sts EE_Parameter+67,r19
223 01ec 8FE5 ldi r24,lo8(95)
224 01ee 8093 0000 sts EE_Parameter+72,r24
225 01f2 83EF ldi r24,lo8(-13)
226 01f4 8093 0000 sts EE_Parameter+74,r24
227 01f8 8AEA ldi r24,lo8(-86)
228 01fa 8093 0000 sts EE_Parameter+76,r24
229 01fe 8093 0000 sts EE_Parameter+77,r24
230 0202 E093 0000 sts EE_Parameter+73,r30
231 0206 E093 0000 sts EE_Parameter+75,r30
232 020a 8EEF ldi r24,lo8(-2)
233 020c 8093 0000 sts EE_Parameter+78,r24
234 0210 3093 0000 sts EE_Parameter+79,r19
235 0214 9093 0000 sts EE_Parameter+80,r25
236 0218 9093 0000 sts EE_Parameter+81,r25
237 021c 9093 0000 sts EE_Parameter+82,r25
238 0220 8BE4 ldi r24,lo8(75)
239 0222 8093 0000 sts EE_Parameter+83,r24
240 0226 8093 0000 sts EE_Parameter+84,r24
241 022a 8093 0000 sts EE_Parameter+85,r24
242 022e 1092 0000 sts EE_Parameter+86,__zero_reg__
243 0232 7093 0000 sts EE_Parameter+87,r23
244 0236 F093 0000 sts EE_Parameter+88,r31
245 023a 9093 0000 sts EE_Parameter+89,r25
246 023e A093 0000 sts EE_Parameter+90,r26
247 0242 3093 0000 sts EE_Parameter+91,r19
248 0246 3093 0000 sts EE_Parameter+92,r19
249 024a 82E0 ldi r24,lo8(2)
250 024c 8093 0000 sts EE_Parameter+93,r24
251 0250 6093 0000 sts EE_Parameter+39,r22
252 0254 1092 0000 sts EE_Parameter+95,__zero_reg__
253 0258 1092 0000 sts EE_Parameter+96,__zero_reg__
254 025c A0E0 ldi r26,lo8(EE_Parameter+100)
255 025e B0E0 ldi r27,hi8(EE_Parameter+100)
256 0260 E0E0 ldi r30,lo8(.LC0)
257 0262 F0E0 ldi r31,hi8(.LC0)
258 0264 ED01 movw r28,r26
259 0266 0190 ld __tmp_reg__,Z+
260 0268 0992 st Y+,__tmp_reg__
261 026a 1A95 dec r17
262 026c E1F7 brne .-8
263 026e 60E7 ldi r22,lo8(112)
264 0270 70E0 ldi r23,hi8(112)
265 0272 CD01 movw r24,r26
266 0274 8456 subi r24,lo8(-(-100))
267 0276 9040 sbci r25,hi8(-(-100))
268 0278 0E94 0000 call RAM_Checksum
269 027c 8093 0000 sts EE_Parameter+112,r24
270 /* epilogue: frame size=0 */
271 0280 DF91 pop r29
272 0282 CF91 pop r28
273 0284 1F91 pop r17
274 0286 0895 ret
275 /* epilogue end (size=4) */
276 /* function ParamSet_DefaultSet1 size 250 (243) */
278 .data
279 .LC1:
280 0007 4E6F 726D .string "Normal"
280 616C 00
281 000e 00 .string ""
282 .text
283 .global ParamSet_DefaultSet2
285 ParamSet_DefaultSet2:
286 /* prologue: frame size=0 */
287 0288 CF93 push r28
288 028a DF93 push r29
289 /* prologue end (size=2) */
290 028c 84E5 ldi r24,lo8(84)
291 028e 8093 0000 sts EE_Parameter,r24
292 0292 8091 0000 lds r24,PlatinenVersion
293 0296 8431 cpi r24,lo8(20)
294 0298 50F0 brlo .L23
295 029a 8AE0 ldi r24,lo8(10)
296 029c 8093 0000 sts EE_Parameter+32,r24
297 02a0 1092 0000 sts EE_Parameter+66,__zero_reg__
298 02a4 8BE1 ldi r24,lo8(27)
299 02a6 8093 0000 sts EE_Parameter+28,r24
300 02aa 8EE4 ldi r24,lo8(78)
301 02ac 0AC0 rjmp .L25
302 .L23:
303 02ae 83E0 ldi r24,lo8(3)
304 02b0 8093 0000 sts EE_Parameter+32,r24
305 02b4 80E2 ldi r24,lo8(32)
306 02b6 8093 0000 sts EE_Parameter+66,r24
307 02ba 8EE1 ldi r24,lo8(30)
308 02bc 8093 0000 sts EE_Parameter+28,r24
309 02c0 85E5 ldi r24,lo8(85)
310 .L25:
311 02c2 8093 0000 sts EE_Parameter+63,r24
312 02c6 8093 0000 sts EE_Parameter+64,r24
313 02ca 8AE6 ldi r24,lo8(106)
314 02cc 8093 0000 sts EE_Parameter+13,r24
315 02d0 83E0 ldi r24,lo8(3)
316 02d2 8093 0000 sts EE_Parameter+99,r24
317 02d6 7EE1 ldi r23,lo8(30)
318 02d8 7093 0000 sts EE_Parameter+14,r23
319 02dc 8FEF ldi r24,lo8(-1)
320 02de 8093 0000 sts EE_Parameter+16,r24
321 02e2 9FE0 ldi r25,lo8(15)
322 02e4 9093 0000 sts EE_Parameter+17,r25
323 02e8 7093 0000 sts EE_Parameter+15,r23
324 02ec 1092 0000 sts EE_Parameter+19,__zero_reg__
325 02f0 68E0 ldi r22,lo8(8)
326 02f2 6093 0000 sts EE_Parameter+20,r22
327 02f6 80E4 ldi r24,lo8(64)
328 02f8 8093 0000 sts EE_Parameter+21,r24
329 02fc 1092 0000 sts EE_Parameter+22,__zero_reg__
330 0300 9093 0000 sts EE_Parameter+18,r25
331 0304 8AE0 ldi r24,lo8(10)
332 0306 8093 0000 sts EE_Parameter+23,r24
333 030a 80E1 ldi r24,lo8(16)
334 030c 8093 0000 sts EE_Parameter+24,r24
335 0310 56E0 ldi r21,lo8(6)
336 0312 5093 0000 sts EE_Parameter+25,r21
337 0316 6093 0000 sts EE_Parameter+26,r22
338 031a 86EE ldi r24,lo8(-26)
339 031c 8093 0000 sts EE_Parameter+27,r24
340 0320 80E8 ldi r24,lo8(-128)
341 0322 8093 0000 sts EE_Parameter+29,r24
342 0326 2AE5 ldi r18,lo8(90)
343 0328 2093 0000 sts EE_Parameter+30,r18
344 032c 88E7 ldi r24,lo8(120)
345 032e 8093 0000 sts EE_Parameter+31,r24
346 0332 2093 0000 sts EE_Parameter+33,r18
347 0336 8093 0000 sts EE_Parameter+34,r24
348 033a 5093 0000 sts EE_Parameter+35,r21
349 033e 81E2 ldi r24,lo8(33)
350 0340 8093 0000 sts EE_Parameter+36,r24
351 0344 8DE2 ldi r24,lo8(45)
352 0346 8093 0000 sts EE_Parameter+37,r24
353 034a 2093 0000 sts EE_Parameter+38,r18
354 034e E0E2 ldi r30,lo8(32)
355 0350 E093 0000 sts EE_Parameter+40,r30
356 0354 1092 0000 sts EE_Parameter+41,__zero_reg__
357 0358 1092 0000 sts EE_Parameter+42,__zero_reg__
358 035c 1092 0000 sts EE_Parameter+43,__zero_reg__
359 0360 1092 0000 sts EE_Parameter+44,__zero_reg__
360 0364 1092 0000 sts EE_Parameter+68,__zero_reg__
361 0368 1092 0000 sts EE_Parameter+69,__zero_reg__
362 036c 1092 0000 sts EE_Parameter+70,__zero_reg__
363 0370 1092 0000 sts EE_Parameter+71,__zero_reg__
364 0374 44E6 ldi r20,lo8(100)
365 0376 4093 0000 sts EE_Parameter+45,r20
366 037a 38E2 ldi r19,lo8(40)
367 037c 3093 0000 sts EE_Parameter+46,r19
368 0380 F1E0 ldi r31,lo8(1)
369 0382 F093 0000 sts EE_Parameter+98,r31
370 0386 1092 0000 sts EE_Parameter+47,__zero_reg__
371 038a 97EF ldi r25,lo8(-9)
372 038c 9093 0000 sts EE_Parameter+48,r25
373 0390 5093 0000 sts EE_Parameter+53,r21
374 0394 8DE7 ldi r24,lo8(125)
375 0396 8093 0000 sts EE_Parameter+54,r24
376 039a 8093 0000 sts EE_Parameter+55,r24
377 039e 8093 0000 sts EE_Parameter+56,r24
378 03a2 4093 0000 sts EE_Parameter+49,r20
379 03a6 3093 0000 sts EE_Parameter+50,r19
380 03aa 1092 0000 sts EE_Parameter+51,__zero_reg__
381 03ae 9093 0000 sts EE_Parameter+52,r25
382 03b2 82E3 ldi r24,lo8(50)
383 03b4 8093 0000 sts EE_Parameter+57,r24
384 03b8 2093 0000 sts EE_Parameter+58,r18
385 03bc 8093 0000 sts EE_Parameter+59,r24
386 03c0 1092 0000 sts EE_Parameter+97,__zero_reg__
387 03c4 2093 0000 sts EE_Parameter+60,r18
388 03c8 80E5 ldi r24,lo8(80)
389 03ca 8093 0000 sts EE_Parameter+61,r24
390 03ce 8CE3 ldi r24,lo8(60)
391 03d0 8093 0000 sts EE_Parameter+62,r24
392 03d4 E093 0000 sts EE_Parameter+65,r30
393 03d8 9BE4 ldi r25,lo8(75)
394 03da 9093 0000 sts EE_Parameter+67,r25
395 03de 8FE5 ldi r24,lo8(95)
396 03e0 8093 0000 sts EE_Parameter+72,r24
397 03e4 83EF ldi r24,lo8(-13)
398 03e6 8093 0000 sts EE_Parameter+74,r24
399 03ea 8AEA ldi r24,lo8(-86)
400 03ec 8093 0000 sts EE_Parameter+76,r24
401 03f0 8093 0000 sts EE_Parameter+77,r24
402 03f4 84E1 ldi r24,lo8(20)
403 03f6 8093 0000 sts EE_Parameter+73,r24
404 03fa 8093 0000 sts EE_Parameter+75,r24
405 03fe 8EEF ldi r24,lo8(-2)
406 0400 8093 0000 sts EE_Parameter+78,r24
407 0404 4093 0000 sts EE_Parameter+79,r20
408 0408 2093 0000 sts EE_Parameter+80,r18
409 040c 2093 0000 sts EE_Parameter+81,r18
410 0410 2093 0000 sts EE_Parameter+82,r18
411 0414 9093 0000 sts EE_Parameter+83,r25
412 0418 9093 0000 sts EE_Parameter+84,r25
413 041c 9093 0000 sts EE_Parameter+85,r25
414 0420 1092 0000 sts EE_Parameter+86,__zero_reg__
415 0424 5093 0000 sts EE_Parameter+87,r21
416 0428 6093 0000 sts EE_Parameter+88,r22
417 042c 2093 0000 sts EE_Parameter+89,r18
418 0430 7093 0000 sts EE_Parameter+90,r23
419 0434 4093 0000 sts EE_Parameter+91,r20
420 0438 4093 0000 sts EE_Parameter+92,r20
421 043c 82E0 ldi r24,lo8(2)
422 043e 8093 0000 sts EE_Parameter+93,r24
423 0442 F093 0000 sts EE_Parameter+39,r31
424 0446 1092 0000 sts EE_Parameter+95,__zero_reg__
425 044a 1092 0000 sts EE_Parameter+96,__zero_reg__
426 044e A0E0 ldi r26,lo8(EE_Parameter+100)
427 0450 B0E0 ldi r27,hi8(EE_Parameter+100)
428 0452 8CE0 ldi r24,lo8(12)
429 0454 E0E0 ldi r30,lo8(.LC1)
430 0456 F0E0 ldi r31,hi8(.LC1)
431 0458 ED01 movw r28,r26
432 045a 0190 ld __tmp_reg__,Z+
433 045c 0992 st Y+,__tmp_reg__
434 045e 8A95 dec r24
435 0460 E1F7 brne .-8
436 0462 60E7 ldi r22,lo8(112)
437 0464 70E0 ldi r23,hi8(112)
438 0466 CD01 movw r24,r26
439 0468 8456 subi r24,lo8(-(-100))
440 046a 9040 sbci r25,hi8(-(-100))
441 046c 0E94 0000 call RAM_Checksum
442 0470 8093 0000 sts EE_Parameter+112,r24
443 /* epilogue: frame size=0 */
444 0474 DF91 pop r29
445 0476 CF91 pop r28
446 0478 0895 ret
447 /* epilogue end (size=3) */
448 /* function ParamSet_DefaultSet2 size 249 (244) */
450 .data
451 .LC2:
452 000f 4265 6769 .string "Beginner"
452 6E6E 6572
452 00
453 0018 00 .string ""
454 .text
455 .global ParamSet_DefaultSet3
457 ParamSet_DefaultSet3:
458 /* prologue: frame size=0 */
459 047a CF93 push r28
460 047c DF93 push r29
461 /* prologue end (size=2) */
462 047e 84E5 ldi r24,lo8(84)
463 0480 8093 0000 sts EE_Parameter,r24
464 0484 8091 0000 lds r24,PlatinenVersion
465 0488 8431 cpi r24,lo8(20)
466 048a 50F0 brlo .L27
467 048c 8AE0 ldi r24,lo8(10)
468 048e 8093 0000 sts EE_Parameter+32,r24
469 0492 1092 0000 sts EE_Parameter+66,__zero_reg__
470 0496 8BE1 ldi r24,lo8(27)
471 0498 8093 0000 sts EE_Parameter+28,r24
472 049c 8EE4 ldi r24,lo8(78)
473 049e 0AC0 rjmp .L29
474 .L27:
475 04a0 83E0 ldi r24,lo8(3)
476 04a2 8093 0000 sts EE_Parameter+32,r24
477 04a6 80E2 ldi r24,lo8(32)
478 04a8 8093 0000 sts EE_Parameter+66,r24
479 04ac 8EE1 ldi r24,lo8(30)
480 04ae 8093 0000 sts EE_Parameter+28,r24
481 04b2 85E5 ldi r24,lo8(85)
482 .L29:
483 04b4 8093 0000 sts EE_Parameter+63,r24
484 04b8 8093 0000 sts EE_Parameter+64,r24
485 04bc 8AE6 ldi r24,lo8(106)
486 04be 8093 0000 sts EE_Parameter+13,r24
487 04c2 83E0 ldi r24,lo8(3)
488 04c4 8093 0000 sts EE_Parameter+99,r24
489 04c8 6EE1 ldi r22,lo8(30)
490 04ca 6093 0000 sts EE_Parameter+14,r22
491 04ce 8FEF ldi r24,lo8(-1)
492 04d0 8093 0000 sts EE_Parameter+16,r24
493 04d4 9FE0 ldi r25,lo8(15)
494 04d6 9093 0000 sts EE_Parameter+17,r25
495 04da 6093 0000 sts EE_Parameter+15,r22
496 04de 1092 0000 sts EE_Parameter+19,__zero_reg__
497 04e2 78E0 ldi r23,lo8(8)
498 04e4 7093 0000 sts EE_Parameter+20,r23
499 04e8 80E4 ldi r24,lo8(64)
500 04ea 8093 0000 sts EE_Parameter+21,r24
501 04ee 1092 0000 sts EE_Parameter+22,__zero_reg__
502 04f2 9093 0000 sts EE_Parameter+18,r25
503 04f6 7093 0000 sts EE_Parameter+23,r23
504 04fa 90E1 ldi r25,lo8(16)
505 04fc 9093 0000 sts EE_Parameter+24,r25
506 0500 56E0 ldi r21,lo8(6)
507 0502 5093 0000 sts EE_Parameter+25,r21
508 0506 7093 0000 sts EE_Parameter+26,r23
509 050a 86EE ldi r24,lo8(-26)
510 050c 8093 0000 sts EE_Parameter+27,r24
511 0510 80E8 ldi r24,lo8(-128)
512 0512 8093 0000 sts EE_Parameter+29,r24
513 0516 34E6 ldi r19,lo8(100)
514 0518 3093 0000 sts EE_Parameter+30,r19
515 051c 88E7 ldi r24,lo8(120)
516 051e 8093 0000 sts EE_Parameter+31,r24
517 0522 3093 0000 sts EE_Parameter+33,r19
518 0526 8093 0000 sts EE_Parameter+34,r24
519 052a 5093 0000 sts EE_Parameter+35,r21
520 052e 81E2 ldi r24,lo8(33)
521 0530 8093 0000 sts EE_Parameter+36,r24
522 0534 8DE2 ldi r24,lo8(45)
523 0536 8093 0000 sts EE_Parameter+37,r24
524 053a 2AE5 ldi r18,lo8(90)
525 053c 2093 0000 sts EE_Parameter+38,r18
526 0540 9093 0000 sts EE_Parameter+40,r25
527 0544 1092 0000 sts EE_Parameter+41,__zero_reg__
528 0548 1092 0000 sts EE_Parameter+42,__zero_reg__
529 054c 1092 0000 sts EE_Parameter+43,__zero_reg__
530 0550 1092 0000 sts EE_Parameter+44,__zero_reg__
531 0554 1092 0000 sts EE_Parameter+68,__zero_reg__
532 0558 1092 0000 sts EE_Parameter+69,__zero_reg__
533 055c 1092 0000 sts EE_Parameter+70,__zero_reg__
534 0560 1092 0000 sts EE_Parameter+71,__zero_reg__
535 0564 3093 0000 sts EE_Parameter+45,r19
536 0568 48E2 ldi r20,lo8(40)
537 056a 4093 0000 sts EE_Parameter+46,r20
538 056e E1E0 ldi r30,lo8(1)
539 0570 E093 0000 sts EE_Parameter+98,r30
540 0574 1092 0000 sts EE_Parameter+47,__zero_reg__
541 0578 97EF ldi r25,lo8(-9)
542 057a 9093 0000 sts EE_Parameter+48,r25
543 057e 5093 0000 sts EE_Parameter+53,r21
544 0582 8DE7 ldi r24,lo8(125)
545 0584 8093 0000 sts EE_Parameter+54,r24
546 0588 8093 0000 sts EE_Parameter+55,r24
547 058c 8093 0000 sts EE_Parameter+56,r24
548 0590 3093 0000 sts EE_Parameter+49,r19
549 0594 4093 0000 sts EE_Parameter+50,r20
550 0598 1092 0000 sts EE_Parameter+51,__zero_reg__
551 059c 9093 0000 sts EE_Parameter+52,r25
552 05a0 82E3 ldi r24,lo8(50)
553 05a2 8093 0000 sts EE_Parameter+57,r24
554 05a6 2093 0000 sts EE_Parameter+58,r18
555 05aa 8093 0000 sts EE_Parameter+59,r24
556 05ae 1092 0000 sts EE_Parameter+97,__zero_reg__
557 05b2 2093 0000 sts EE_Parameter+60,r18
558 05b6 80E5 ldi r24,lo8(80)
559 05b8 8093 0000 sts EE_Parameter+61,r24
560 05bc 96E4 ldi r25,lo8(70)
561 05be 9093 0000 sts EE_Parameter+62,r25
562 05c2 80E2 ldi r24,lo8(32)
563 05c4 8093 0000 sts EE_Parameter+65,r24
564 05c8 9093 0000 sts EE_Parameter+67,r25
565 05cc 8FE5 ldi r24,lo8(95)
566 05ce 8093 0000 sts EE_Parameter+72,r24
567 05d2 83EF ldi r24,lo8(-13)
568 05d4 8093 0000 sts EE_Parameter+74,r24
569 05d8 8AEA ldi r24,lo8(-86)
570 05da 8093 0000 sts EE_Parameter+76,r24
571 05de 8093 0000 sts EE_Parameter+77,r24
572 05e2 6093 0000 sts EE_Parameter+73,r22
573 05e6 6093 0000 sts EE_Parameter+75,r22
574 05ea 8EEF ldi r24,lo8(-2)
575 05ec 8093 0000 sts EE_Parameter+78,r24
576 05f0 3093 0000 sts EE_Parameter+79,r19
577 05f4 2093 0000 sts EE_Parameter+80,r18
578 05f8 2093 0000 sts EE_Parameter+81,r18
579 05fc 2093 0000 sts EE_Parameter+82,r18
580 0600 8BE4 ldi r24,lo8(75)
581 0602 8093 0000 sts EE_Parameter+83,r24
582 0606 8093 0000 sts EE_Parameter+84,r24
583 060a 8093 0000 sts EE_Parameter+85,r24
584 060e 1092 0000 sts EE_Parameter+86,__zero_reg__
585 0612 5093 0000 sts EE_Parameter+87,r21
586 0616 7093 0000 sts EE_Parameter+88,r23
587 061a 2093 0000 sts EE_Parameter+89,r18
588 061e 6093 0000 sts EE_Parameter+90,r22
589 0622 3093 0000 sts EE_Parameter+91,r19
590 0626 3093 0000 sts EE_Parameter+92,r19
591 062a 82E0 ldi r24,lo8(2)
592 062c 8093 0000 sts EE_Parameter+93,r24
593 0630 E093 0000 sts EE_Parameter+39,r30
594 0634 1092 0000 sts EE_Parameter+95,__zero_reg__
595 0638 1092 0000 sts EE_Parameter+96,__zero_reg__
596 063c A0E0 ldi r26,lo8(EE_Parameter+100)
597 063e B0E0 ldi r27,hi8(EE_Parameter+100)
598 0640 8CE0 ldi r24,lo8(12)
599 0642 E0E0 ldi r30,lo8(.LC2)
600 0644 F0E0 ldi r31,hi8(.LC2)
601 0646 ED01 movw r28,r26
602 0648 0190 ld __tmp_reg__,Z+
603 064a 0992 st Y+,__tmp_reg__
604 064c 8A95 dec r24
605 064e E1F7 brne .-8
606 0650 60E7 ldi r22,lo8(112)
607 0652 70E0 ldi r23,hi8(112)
608 0654 CD01 movw r24,r26
609 0656 8456 subi r24,lo8(-(-100))
610 0658 9040 sbci r25,hi8(-(-100))
611 065a 0E94 0000 call RAM_Checksum
612 065e 8093 0000 sts EE_Parameter+112,r24
613 /* epilogue: frame size=0 */
614 0662 DF91 pop r29
615 0664 CF91 pop r28
616 0666 0895 ret
617 /* epilogue end (size=3) */
618 /* function ParamSet_DefaultSet3 size 247 (242) */
620 .global GetParamByte
622 GetParamByte:
623 /* prologue: frame size=0 */
624 /* prologue end (size=0) */
625 0668 DC01 movw r26,r24
626 /* #APP */
627 066a 0E94 0000 call __eeprom_read_byte_1F2021
628 066e 802D mov r24,__tmp_reg__
629 /* #NOAPP */
630 0670 9927 clr r25
631 /* epilogue: frame size=0 */
632 0672 0895 ret
633 /* epilogue end (size=1) */
634 /* function GetParamByte size 7 (6) */
636 .global SetParamByte
638 SetParamByte:
639 /* prologue: frame size=0 */
640 /* prologue end (size=0) */
641 0674 DC01 movw r26,r24
642 /* #APP */
643 0676 062E mov __tmp_reg__,r22
644 0678 0E94 0000 call __eeprom_write_byte_1F2021
645 /* #NOAPP */
646 /* epilogue: frame size=0 */
647 067c 0895 ret
648 /* epilogue end (size=1) */
649 /* function SetParamByte size 6 (5) */
651 .global GetParamWord
653 GetParamWord:
654 /* prologue: frame size=0 */
655 /* prologue end (size=0) */
656 067e DC01 movw r26,r24
657 /* #APP */
658 0680 0E94 0000 call __eeprom_read_word_1F2021
659
660 /* #NOAPP */
661 0684 CF01 movw r24,r30
662 /* epilogue: frame size=0 */
663 0686 0895 ret
664 /* epilogue end (size=1) */
665 /* function GetParamWord size 7 (6) */
667 .global SetParamWord
669 SetParamWord:
670 /* prologue: frame size=0 */
671 /* prologue end (size=0) */
672 0688 DC01 movw r26,r24
673 /* #APP */
674 068a 0B01 movw __tmp_reg__,r22
675 068c 0E94 0000 call __eeprom_write_word_1F2021
676
677 /* #NOAPP */
678 /* epilogue: frame size=0 */
679 0690 0895 ret
680 /* epilogue end (size=1) */
681 /* function SetParamWord size 8 (7) */
683 .global ParamSet_ReadFromEEProm
685 ParamSet_ReadFromEEProm:
686 /* prologue: frame size=0 */
687 0692 FF92 push r15
688 0694 0F93 push r16
689 0696 1F93 push r17
690 0698 CF93 push r28
691 069a DF93 push r29
692 /* prologue end (size=5) */
693 069c 982F mov r25,r24
694 069e 8150 subi r24,lo8(-(-1))
695 06a0 8530 cpi r24,lo8(5)
696 06a2 08F0 brlo .L39
697 06a4 93E0 ldi r25,lo8(3)
698 .L39:
699 06a6 81E7 ldi r24,lo8(113)
700 06a8 F82E mov r15,r24
701 06aa 9F9D mul r25,r15
702 06ac 8001 movw r16,r0
703 06ae 1124 clr r1
704 06b0 E801 movw r28,r16
705 06b2 2D97 sbiw r28,13
706 06b4 60E7 ldi r22,lo8(112)
707 06b6 70E0 ldi r23,hi8(112)
708 06b8 CE01 movw r24,r28
709 06ba 0E94 0000 call EEProm_Checksum
710 06be 982F mov r25,r24
711 06c0 D801 movw r26,r16
712 06c2 AD59 subi r26,lo8(-(99))
713 06c4 BF4F sbci r27,hi8(-(99))
714 /* #APP */
715 06c6 0E94 0000 call __eeprom_read_byte_1F2021
716 06ca 802D mov r24,__tmp_reg__
717 /* #NOAPP */
718 06cc 8917 cp r24,r25
719 06ce 31F4 brne .L51
720 06d0 DE01 movw r26,r28
721 /* #APP */
722 06d2 0E94 0000 call __eeprom_read_byte_1F2021
723 06d6 802D mov r24,__tmp_reg__
724 /* #NOAPP */
725 06d8 8435 cpi r24,lo8(84)
726 06da 19F0 breq .L42
727 .L51:
728 06dc 80E0 ldi r24,lo8(0)
729 06de 90E0 ldi r25,hi8(0)
730 06e0 0AC0 rjmp .L38
731 .L42:
732 06e2 E0E0 ldi r30,lo8(EE_Parameter)
733 06e4 F0E0 ldi r31,hi8(EE_Parameter)
734 06e6 DE01 movw r26,r28
735 /* #APP */
736 06e8 1F2C mov __zero_reg__,r15
737 06ea 0E94 0000 call __eeprom_read_block_1F2021
738 /* #NOAPP */
739 06ee 0E94 0000 call LED_Init
740 06f2 81E0 ldi r24,lo8(1)
741 06f4 90E0 ldi r25,hi8(1)
742 .L38:
743 /* epilogue: frame size=0 */
744 06f6 E5E0 ldi r30,5
745 06f8 CDB7 in r28,__SP_L__
746 06fa DEB7 in r29,__SP_H__
747 06fc 0C94 0000 jmp __epilogue_restores__+26
748 /* epilogue end (size=5) */
749 /* function ParamSet_ReadFromEEProm size 58 (48) */
751 .global SetActiveParamSet
753 SetActiveParamSet:
754 /* prologue: frame size=0 */
755 /* prologue end (size=0) */
756 0700 8630 cpi r24,lo8(6)
757 0702 10F0 brlo .L53
758 0704 85E0 ldi r24,lo8(5)
759 0706 03C0 rjmp .L54
760 .L53:
761 0708 8823 tst r24
762 070a 09F4 brne .L54
763 070c 81E0 ldi r24,lo8(1)
764 .L54:
765 070e A2E0 ldi r26,lo8(2)
766 0710 B0E0 ldi r27,hi8(2)
767 /* #APP */
768 0712 082E mov __tmp_reg__,r24
769 0714 0E94 0000 call __eeprom_write_byte_1F2021
770 /* #NOAPP */
771 /* epilogue: frame size=0 */
772 0718 0895 ret
773 /* epilogue end (size=1) */
774 /* function SetActiveParamSet size 14 (13) */
776 .global ParamSet_WriteToEEProm
778 ParamSet_WriteToEEProm:
779 /* prologue: frame size=0 */
780 071a 1F93 push r17
781 071c CF93 push r28
782 071e DF93 push r29
783 /* prologue end (size=3) */
784 0720 182F mov r17,r24
785 0722 C0E0 ldi r28,lo8(EE_Parameter)
786 0724 D0E0 ldi r29,hi8(EE_Parameter)
787 0726 8091 0000 lds r24,EE_Parameter
788 072a 8435 cpi r24,lo8(84)
789 072c 91F5 brne .L57
790 072e 1630 cpi r17,lo8(6)
791 0730 10F0 brlo .L58
792 0732 15E0 ldi r17,lo8(5)
793 0734 02C0 rjmp .L59
794 .L58:
795 0736 1123 tst r17
796 0738 61F1 breq .L57
797 .L59:
798 073a 60E7 ldi r22,lo8(112)
799 073c 70E0 ldi r23,hi8(112)
800 073e 80E0 ldi r24,lo8(EE_Parameter)
801 0740 90E0 ldi r25,hi8(EE_Parameter)
802 0742 0E94 0000 call RAM_Checksum
803 0746 8093 0000 sts EE_Parameter+112,r24
804 074a 81E7 ldi r24,lo8(113)
805 074c 189F mul r17,r24
806 074e D001 movw r26,r0
807 0750 1124 clr r1
808 0752 1D97 sbiw r26,13
809 0754 FE01 movw r30,r28
810 /* #APP */
811 0756 182E mov __zero_reg__,r24
812 0758 0E94 0000 call __eeprom_write_block_1F2021
813 /* #NOAPP */
814 075c E0E0 ldi r30,lo8(EE_Parameter+1)
815 075e F0E0 ldi r31,hi8(EE_Parameter+1)
816 0760 A0E5 ldi r26,lo8(80)
817 0762 B0E0 ldi r27,hi8(80)
818 0764 2CE0 ldi r18,lo8(12)
819 0766 30E0 ldi r19,hi8(12)
820 /* #APP */
821 0768 122E mov __zero_reg__,r18
822 076a 0E94 0000 call __eeprom_write_block_1F2021
823 /* #NOAPP */
824 076e B901 movw r22,r18
825 0770 80E0 ldi r24,lo8(EE_Parameter+1)
826 0772 90E0 ldi r25,hi8(EE_Parameter+1)
827 0774 0E94 0000 call RAM_Checksum
828 0778 ACE5 ldi r26,lo8(92)
829 077a B0E0 ldi r27,hi8(92)
830 /* #APP */
831 077c 082E mov __tmp_reg__,r24
832 077e 0E94 0000 call __eeprom_write_byte_1F2021
833 /* #NOAPP */
834 0782 812F mov r24,r17
835 0784 0E94 0000 call SetActiveParamSet
836 0788 0E94 0000 call LED_Init
837 078c 81E0 ldi r24,lo8(1)
838 078e 90E0 ldi r25,hi8(1)
839 0790 02C0 rjmp .L56
840 .L57:
841 0792 80E0 ldi r24,lo8(0)
842 0794 90E0 ldi r25,hi8(0)
843 .L56:
844 /* epilogue: frame size=0 */
845 0796 DF91 pop r29
846 0798 CF91 pop r28
847 079a 1F91 pop r17
848 079c 0895 ret
849 /* epilogue end (size=4) */
850 /* function ParamSet_WriteToEEProm size 69 (62) */
852 .global MixerTable_ReadFromEEProm
854 MixerTable_ReadFromEEProm:
855 /* prologue: frame size=0 */
856 /* prologue end (size=0) */
857 079e 6DE4 ldi r22,lo8(77)
858 07a0 70E0 ldi r23,hi8(77)
859 07a2 88EE ldi r24,lo8(1000)
860 07a4 93E0 ldi r25,hi8(1000)
861 07a6 0E94 0000 call EEProm_Checksum
862 07aa A5E3 ldi r26,lo8(1077)
863 07ac B4E0 ldi r27,hi8(1077)
864 /* #APP */
865 07ae 0E94 0000 call __eeprom_read_byte_1F2021
866 07b2 902D mov r25,__tmp_reg__
867 /* #NOAPP */
868 07b4 9817 cp r25,r24
869 07b6 39F4 brne .L87
870 07b8 A8EE ldi r26,lo8(1000)
871 07ba B3E0 ldi r27,hi8(1000)
872 /* #APP */
873 07bc 0E94 0000 call __eeprom_read_byte_1F2021
874 07c0 802D mov r24,__tmp_reg__
875 /* #NOAPP */
876 07c2 8130 cpi r24,lo8(1)
877 07c4 19F0 breq .L78
878 .L87:
879 07c6 80E0 ldi r24,lo8(0)
880 07c8 90E0 ldi r25,hi8(0)
881 07ca 0895 ret
882 .L78:
883 07cc E0E0 ldi r30,lo8(Mixer)
884 07ce F0E0 ldi r31,hi8(Mixer)
885 07d0 A8EE ldi r26,lo8(1000)
886 07d2 B3E0 ldi r27,hi8(1000)
887 07d4 8EE4 ldi r24,lo8(78)
888 /* #APP */
889 07d6 182E mov __zero_reg__,r24
890 07d8 0E94 0000 call __eeprom_read_block_1F2021
891 /* #NOAPP */
892 07dc 81E0 ldi r24,lo8(1)
893 07de 90E0 ldi r25,hi8(1)
894 07e0 0895 ret
895 /* epilogue: frame size=0 */
896 /* epilogue: noreturn */
897 /* epilogue end (size=0) */
898 /* function MixerTable_ReadFromEEProm size 37 (37) */
900 .global MixerTable_WriteToEEProm
902 MixerTable_WriteToEEProm:
903 /* prologue: frame size=0 */
904 07e2 CF93 push r28
905 07e4 DF93 push r29
906 /* prologue end (size=2) */
907 07e6 C0E0 ldi r28,lo8(Mixer)
908 07e8 D0E0 ldi r29,hi8(Mixer)
909 07ea 8091 0000 lds r24,Mixer
910 07ee 8130 cpi r24,lo8(1)
911 07f0 89F4 brne .L89
912 07f2 6DE4 ldi r22,lo8(77)
913 07f4 70E0 ldi r23,hi8(77)
914 07f6 CE01 movw r24,r28
915 07f8 0E94 0000 call RAM_Checksum
916 07fc 8093 0000 sts Mixer+77,r24
917 0800 A8EE ldi r26,lo8(1000)
918 0802 B3E0 ldi r27,hi8(1000)
919 0804 8EE4 ldi r24,lo8(78)
920 0806 FE01 movw r30,r28
921 /* #APP */
922 0808 182E mov __zero_reg__,r24
923 080a 0E94 0000 call __eeprom_write_block_1F2021
924 /* #NOAPP */
925 080e 81E0 ldi r24,lo8(1)
926 0810 90E0 ldi r25,hi8(1)
927 0812 02C0 rjmp .L88
928 .L89:
929 0814 80E0 ldi r24,lo8(0)
930 0816 90E0 ldi r25,hi8(0)
931 .L88:
932 /* epilogue: frame size=0 */
933 0818 DF91 pop r29
934 081a CF91 pop r28
935 081c 0895 ret
936 /* epilogue end (size=3) */
937 /* function MixerTable_WriteToEEProm size 31 (26) */
939 .data
940 .LC3:
941 0019 5175 6164 .string "Quadro"
941 726F 00
942 0020 00 .string ""
943 .text
944 .global MixerTable_Default
946 MixerTable_Default:
947 /* prologue: frame size=0 */
948 081e CF93 push r28
949 0820 DF93 push r29
950 /* prologue end (size=2) */
951 0822 81E0 ldi r24,lo8(1)
952 0824 8093 0000 sts Mixer,r24
953 0828 E0E0 ldi r30,lo8(Mixer)
954 082a F0E0 ldi r31,hi8(Mixer)
955 082c 8FE0 ldi r24,lo8(15)
956 .L102:
957 082e 1586 std Z+13,__zero_reg__
958 0830 1686 std Z+14,__zero_reg__
959 0832 1786 std Z+15,__zero_reg__
960 0834 108A std Z+16,__zero_reg__
961 0836 8150 subi r24,lo8(-(-1))
962 0838 3496 adiw r30,4
963 083a 87FF sbrs r24,7
964 083c F8CF rjmp .L102
965 083e 80E4 ldi r24,lo8(64)
966 0840 8093 0000 sts Mixer+13,r24
967 0844 8093 0000 sts Mixer+14,r24
968 0848 1092 0000 sts Mixer+15,__zero_reg__
969 084c 8093 0000 sts Mixer+16,r24
970 0850 8093 0000 sts Mixer+17,r24
971 0854 90EC ldi r25,lo8(-64)
972 0856 9093 0000 sts Mixer+18,r25
973 085a 1092 0000 sts Mixer+19,__zero_reg__
974 085e 8093 0000 sts Mixer+20,r24
975 0862 8093 0000 sts Mixer+21,r24
976 0866 1092 0000 sts Mixer+22,__zero_reg__
977 086a 9093 0000 sts Mixer+23,r25
978 086e 9093 0000 sts Mixer+24,r25
979 0872 8093 0000 sts Mixer+25,r24
980 0876 1092 0000 sts Mixer+26,__zero_reg__
981 087a 8093 0000 sts Mixer+27,r24
982 087e 9093 0000 sts Mixer+28,r25
983 0882 A0E0 ldi r26,lo8(Mixer+1)
984 0884 B0E0 ldi r27,hi8(Mixer+1)
985 0886 87E0 ldi r24,lo8(7)
986 0888 E0E0 ldi r30,lo8(.LC3)
987 088a F0E0 ldi r31,hi8(.LC3)
988 088c ED01 movw r28,r26
989 088e 0190 ld __tmp_reg__,Z+
990 0890 0992 st Y+,__tmp_reg__
991 0892 8A95 dec r24
992 0894 E1F7 brne .-8
993 0896 6DE4 ldi r22,lo8(77)
994 0898 70E0 ldi r23,hi8(77)
995 089a CD01 movw r24,r26
996 089c 0197 sbiw r24,1
997 089e 0E94 0000 call RAM_Checksum
998 08a2 8093 0000 sts Mixer+77,r24
999 /* epilogue: frame size=0 */
1000 08a6 DF91 pop r29
1001 08a8 CF91 pop r28
1002 08aa 0895 ret
1003 /* epilogue end (size=3) */
1004 /* function MixerTable_Default size 71 (66) */
1006 .global GetActiveParamSet
1008 GetActiveParamSet:
1009 /* prologue: frame size=0 */
1010 /* prologue end (size=0) */
1011 08ac A2E0 ldi r26,lo8(2)
1012 08ae B0E0 ldi r27,hi8(2)
1013 /* #APP */
1014 08b0 0E94 0000 call __eeprom_read_byte_1F2021
1015 08b4 802D mov r24,__tmp_reg__
1016 /* #NOAPP */
1017 08b6 8630 cpi r24,lo8(6)
1018 08b8 30F0 brlo .L107
1019 08ba 83E0 ldi r24,lo8(3)
1020 08bc A2E0 ldi r26,lo8(2)
1021 08be B0E0 ldi r27,hi8(2)
1022 /* #APP */
1023 08c0 082E mov __tmp_reg__,r24
1024 08c2 0E94 0000 call __eeprom_write_byte_1F2021
1025 /* #NOAPP */
1026 .L107:
1027 08c6 9927 clr r25
1028 /* epilogue: frame size=0 */
1029 08c8 0895 ret
1030 /* epilogue end (size=1) */
1031 /* function GetActiveParamSet size 17 (16) */
1033 .section .progmem.data,"a",@progbits
1036 __c.0:
1037 0000 0A0D 4765 .string "\n\rGenerating default Parameter Set %d"
1037 6E65 7261
1037 7469 6E67
1037 2064 6566
1037 6175 6C74
1040 __c.1:
1041 0026 0A0D 5573 .string "\n\rUsing Parameter Set %d"
1041 696E 6720
1041 5061 7261
1041 6D65 7465
1041 7220 5365
1044 __c.2:
1045 003f 0A0D 4765 .string "\n\rGenerating default Mixer Table"
1045 6E65 7261
1045 7469 6E67
1045 2064 6566
1045 6175 6C74
1048 __c.3:
1049 0060 0A0D 4D69 .string "\n\rMixer-Config: '%s' (%u Motors)"
1049 7865 722D
1049 436F 6E66
1049 6967 3A20
1049 2725 7327
1052 __c.4:
1053 0081 0A0D 3D3D .string "\n\r=============================="
1053 3D3D 3D3D
1053 3D3D 3D3D
1053 3D3D 3D3D
1053 3D3D 3D3D
1054 .text
1055 .global ParamSet_Init
1057 ParamSet_Init:
1058 /* prologue: frame size=0 */
1059 08ca DF92 push r13
1060 08cc EF92 push r14
1061 08ce FF92 push r15
1062 08d0 0F93 push r16
1063 08d2 1F93 push r17
1064 08d4 CF93 push r28
1065 /* prologue end (size=6) */
1066 08d6 FF24 clr r15
1067 08d8 DF2C mov r13,r15
1068 08da EF2C mov r14,r15
1069 08dc 81E0 ldi r24,lo8(1)
1070 08de 90E0 ldi r25,hi8(1)
1071 08e0 0E94 0000 call GetParamByte
1072 08e4 8435 cpi r24,lo8(84)
1073 08e6 39F0 breq .L110
1074 08e8 31E0 ldi r19,lo8(1)
1075 08ea E32E mov r14,r19
1076 08ec 64E5 ldi r22,lo8(84)
1077 08ee 81E0 ldi r24,lo8(1)
1078 08f0 90E0 ldi r25,hi8(1)
1079 08f2 0E94 0000 call SetParamByte
1080 .L110:
1081 08f6 6CE0 ldi r22,lo8(12)
1082 08f8 70E0 ldi r23,hi8(12)
1083 08fa 80E5 ldi r24,lo8(80)
1084 08fc 90E0 ldi r25,hi8(80)
1085 08fe 0E94 0000 call EEProm_Checksum
1086 0902 C82F mov r28,r24
1087 0904 ACE5 ldi r26,lo8(92)
1088 0906 B0E0 ldi r27,hi8(92)
1089 /* #APP */
1090 0908 0E94 0000 call __eeprom_read_byte_1F2021
1091 090c 802D mov r24,__tmp_reg__
1092 /* #NOAPP */
1093 090e 8C17 cp r24,r28
1094 0910 11F4 brne .L111
1095 0912 21E0 ldi r18,lo8(1)
1096 0914 D22E mov r13,r18
1097 .L111:
1098 0916 C1E0 ldi r28,lo8(1)
1099 0918 01E0 ldi r16,lo8(1)
1100 091a 10E0 ldi r17,hi8(1)
1101 .L133:
1102 091c EE20 tst r14
1103 091e 29F4 brne .L117
1104 0920 8C2F mov r24,r28
1105 0922 0E94 0000 call ParamSet_ReadFromEEProm
1106 0926 8823 tst r24
1107 0928 B1F5 brne .L115
1108 .L117:
1109 092a 91E0 ldi r25,lo8(1)
1110 092c F92E mov r15,r25
1111 092e 1F93 push r17
1112 0930 0F93 push r16
1113 0932 80E0 ldi r24,lo8(__c.0)
1114 0934 90E0 ldi r25,hi8(__c.0)
1115 0936 9F93 push r25
1116 0938 8F93 push r24
1117 093a 80E0 ldi r24,lo8(pm(uart_putchar))
1118 093c 90E0 ldi r25,hi8(pm(uart_putchar))
1119 093e 9F93 push r25
1120 0940 8F93 push r24
1121 0942 E091 0000 lds r30,_printf_P
1122 0946 F091 0000 lds r31,(_printf_P)+1
1123 094a 0995 icall
1124 094c 8DB7 in r24,__SP_L__
1125 094e 9EB7 in r25,__SP_H__
1126 0950 0696 adiw r24,6
1127 0952 8DBF out __SP_L__,r24
1128 0954 0230 cpi r16,2
1129 0956 1105 cpc r17,__zero_reg__
1130 0958 49F0 breq .L120
1131 095a 0330 cpi r16,3
1132 095c 1105 cpc r17,__zero_reg__
1133 095e 4CF4 brge .L122
1134 0960 0130 cpi r16,1
1135 0962 1105 cpc r17,__zero_reg__
1136 0964 31F4 brne .L122
1137 0966 0E94 0000 call ParamSet_DefaultSet1
1138 096a 05C0 rjmp .L118
1139 .L120:
1140 096c 0E94 0000 call ParamSet_DefaultSet2
1141 0970 02C0 rjmp .L118
1142 .L122:
1143 0972 0E94 0000 call ParamSet_DefaultSet3
1144 .L118:
1145 0976 DD20 tst r13
1146 0978 49F0 breq .L124
1147 097a E0E0 ldi r30,lo8(EE_Parameter+1)
1148 097c F0E0 ldi r31,hi8(EE_Parameter+1)
1149 097e A0E5 ldi r26,lo8(80)
1150 0980 B0E0 ldi r27,hi8(80)
1151 0982 8CE0 ldi r24,lo8(12)
1152 /* #APP */
1153 0984 182E mov __zero_reg__,r24
1154 0986 0E94 0000 call __eeprom_read_block_1F2021
1155 /* #NOAPP */
1156 098a 02C0 rjmp .L132
1157 .L124:
1158 098c 0E94 0000 call ParamSet_DefaultStickMapping
1159 .L132:
1160 0990 8C2F mov r24,r28
1161 0992 0E94 0000 call ParamSet_WriteToEEProm
1162 .L115:
1163 0996 CF5F subi r28,lo8(-(1))
1164 0998 0F5F subi r16,lo8(-(1))
1165 099a 1F4F sbci r17,hi8(-(1))
1166 099c C630 cpi r28,lo8(6)
1167 099e 08F4 brsh .+2
1168 09a0 BDCF rjmp .L133
1169 09a2 FF20 tst r15
1170 09a4 19F0 breq .L134
1171 09a6 83E0 ldi r24,lo8(3)
1172 09a8 0E94 0000 call SetActiveParamSet
1173 .L134:
1174 09ac 0E94 0000 call GetActiveParamSet
1175 09b0 C82F mov r28,r24
1176 09b2 0E94 0000 call ParamSet_ReadFromEEProm
1177 09b6 8C2F mov r24,r28
1178 09b8 9927 clr r25
1179 09ba 9F93 push r25
1180 09bc 8F93 push r24
1181 09be 80E0 ldi r24,lo8(__c.1)
1182 09c0 90E0 ldi r25,hi8(__c.1)
1183 09c2 9F93 push r25
1184 09c4 8F93 push r24
1185 09c6 00E0 ldi r16,lo8(pm(uart_putchar))
1186 09c8 10E0 ldi r17,hi8(pm(uart_putchar))
1187 09ca 1F93 push r17
1188 09cc 0F93 push r16
1189 09ce E091 0000 lds r30,_printf_P
1190 09d2 F091 0000 lds r31,(_printf_P)+1
1191 09d6 0995 icall
1192 09d8 8DB7 in r24,__SP_L__
1193 09da 9EB7 in r25,__SP_H__
1194 09dc 0696 adiw r24,6
1195 09de 8DBF out __SP_L__,r24
1196 09e0 EE20 tst r14
1197 09e2 21F4 brne .L136
1198 09e4 0E94 0000 call MixerTable_ReadFromEEProm
1199 09e8 8823 tst r24
1200 09ea 99F4 brne .L135
1201 .L136:
1202 09ec 80E0 ldi r24,lo8(__c.2)
1203 09ee 90E0 ldi r25,hi8(__c.2)
1204 09f0 9F93 push r25
1205 09f2 8F93 push r24
1206 09f4 1F93 push r17
1207 09f6 0F93 push r16
1208 09f8 E091 0000 lds r30,_printf_P
1209 09fc F091 0000 lds r31,(_printf_P)+1
1210 0a00 0995 icall
1211 0a02 0E94 0000 call MixerTable_Default
1212 0a06 0E94 0000 call MixerTable_WriteToEEProm
1213 0a0a 0F90 pop __tmp_reg__
1214 0a0c 0F90 pop __tmp_reg__
1215 0a0e 0F90 pop __tmp_reg__
1216 0a10 0F90 pop __tmp_reg__
1217 .L135:
1218 0a12 1092 0000 sts RequiredMotors,__zero_reg__
1219 0a16 90E0 ldi r25,lo8(0)
1220 0a18 E0E0 ldi r30,lo8(Mixer+13)
1221 0a1a F0E0 ldi r31,hi8(Mixer+13)
1222 0a1c CFE0 ldi r28,lo8(15)
1223 .L141:
1224 0a1e 8081 ld r24,Z
1225 0a20 3496 adiw r30,4
1226 0a22 1816 cp __zero_reg__,r24
1227 0a24 0CF4 brge .L139
1228 0a26 9F5F subi r25,lo8(-(1))
1229 .L139:
1230 0a28 C150 subi r28,lo8(-(-1))
1231 0a2a C7FF sbrs r28,7
1232 0a2c F8CF rjmp .L141
1233 0a2e 9093 0000 sts RequiredMotors,r25
1234 0a32 892F mov r24,r25
1235 0a34 9927 clr r25
1236 0a36 9F93 push r25
1237 0a38 8F93 push r24
1238 0a3a 80E0 ldi r24,lo8(Mixer+1)
1239 0a3c 90E0 ldi r25,hi8(Mixer+1)
1240 0a3e 9F93 push r25
1241 0a40 8F93 push r24
1242 0a42 80E0 ldi r24,lo8(__c.3)
1243 0a44 90E0 ldi r25,hi8(__c.3)
1244 0a46 9F93 push r25
1245 0a48 8F93 push r24
1246 0a4a 1F93 push r17
1247 0a4c 0F93 push r16
1248 0a4e E091 0000 lds r30,_printf_P
1249 0a52 F091 0000 lds r31,(_printf_P)+1
1250 0a56 0995 icall
1251 0a58 8DB7 in r24,__SP_L__
1252 0a5a 9EB7 in r25,__SP_H__
1253 0a5c 0896 adiw r24,8
1254 0a5e 8DBF out __SP_L__,r24
1255 0a60 80E0 ldi r24,lo8(__c.4)
1256 0a62 90E0 ldi r25,hi8(__c.4)
1257 0a64 9F93 push r25
1258 0a66 8F93 push r24
1259 0a68 1F93 push r17
1260 0a6a 0F93 push r16
1261 0a6c E091 0000 lds r30,_printf_P
1262 0a70 F091 0000 lds r31,(_printf_P)+1
1263 0a74 0995 icall
1264 0a76 0F90 pop __tmp_reg__
1265 0a78 0F90 pop __tmp_reg__
1266 0a7a 0F90 pop __tmp_reg__
1267 0a7c 0F90 pop __tmp_reg__
1268 /* epilogue: frame size=0 */
1269 0a7e CF91 pop r28
1270 0a80 1F91 pop r17
1271 0a82 0F91 pop r16
1272 0a84 FF90 pop r15
1273 0a86 EF90 pop r14
1274 0a88 DF90 pop r13
1275 0a8a 0895 ret
1276 /* epilogue end (size=7) */
1277 /* function ParamSet_Init size 227 (214) */
1279 .comm Mixer,78,1
1280 .comm RequiredMotors,1,1
1281 .comm EE_Parameter,113,1
1282 /* File "eeprom.c": code 1373 = 0x055d (1307), prologues 25, epilogues 41 */
DEFINED SYMBOLS
*ABS*:00000000 eeprom.c
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:13 .text:00000000 RAM_Checksum
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:41 .text:00000022 EEProm_Checksum
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:73 .text:0000004a ParamSet_DefaultStickMapping
*COM*:00000071 EE_Parameter
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:112 .text:00000094 ParamSet_DefaultSet1
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:285 .text:00000288 ParamSet_DefaultSet2
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:457 .text:0000047a ParamSet_DefaultSet3
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:622 .text:00000668 GetParamByte
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:638 .text:00000674 SetParamByte
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:653 .text:0000067e GetParamWord
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:669 .text:00000688 SetParamWord
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:685 .text:00000692 ParamSet_ReadFromEEProm
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:753 .text:00000700 SetActiveParamSet
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:778 .text:0000071a ParamSet_WriteToEEProm
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:854 .text:0000079e MixerTable_ReadFromEEProm
*COM*:0000004e Mixer
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:902 .text:000007e2 MixerTable_WriteToEEProm
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:946 .text:0000081e MixerTable_Default
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1008 .text:000008ac GetActiveParamSet
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1036 .progmem.data:00000000 __c.0
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1040 .progmem.data:00000026 __c.1
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1044 .progmem.data:0000003f __c.2
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1048 .progmem.data:00000060 __c.3
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1052 .progmem.data:00000081 __c.4
C:\Users\Arthur-P\AppData\Local\Temp/ccQZaaaa.s:1057 .text:000008ca ParamSet_Init
*COM*:00000001 RequiredMotors
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__eeprom_read_byte_1F2021
PlatinenVersion
__eeprom_write_byte_1F2021
__eeprom_read_word_1F2021
__eeprom_write_word_1F2021
__eeprom_read_block_1F2021
LED_Init
__epilogue_restores__
__eeprom_write_block_1F2021
uart_putchar
_printf_P
/branches/V0.80d-Arthur-P/fc.c
0,0 → 1,1740
/*#######################################################################################
Flight Control
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
// 20100804: Arthur P.: Modified to use user parameter 7 to determine downstep for motorsmoothing
// with 0 or 1 defaulting to the default -150% first step followed by upsmoothing and
// values beyond that resulting in 50% (2), 75% (4), 90% (10), 95% (20), 97.5% (40), 99% (100)
// downsteps.
// Within timer0.c user paramater 8 is used to activate an external HEF4017 on FC 1.x hardware,
// and/or to set the shutter interval timer in steps of 0.1sec (minimum = 1 sec), by using
// bit 8 (128) as on/off switch, and bits 7 (0..127) for the timer counter.
 
#include "main.h"
#include "mymath.h"
#include "isqrt.h"
 
unsigned char h,m,s;
unsigned int BaroExpandActive = 0;
int MesswertNick,MesswertRoll,MesswertGier,MesswertGierBias, RohMesswertNick,RohMesswertRoll;
int TrimNick, TrimRoll;
int AdNeutralNick = 0,AdNeutralRoll = 0,AdNeutralGier = 0,StartNeutralRoll = 0,StartNeutralNick = 0;
int Mittelwert_AccNick, Mittelwert_AccRoll;
unsigned int NeutralAccX=0, NeutralAccY=0;
int NaviAccNick, NaviAccRoll,NaviCntAcc = 0;
int NeutralAccZ = 0;
unsigned char ControlHeading = 0;// in 2°
long IntegralNick = 0,IntegralNick2 = 0;
long IntegralRoll = 0,IntegralRoll2 = 0;
long IntegralAccNick = 0,IntegralAccRoll = 0,IntegralAccZ = 0;
long Integral_Gier = 0;
long Mess_IntegralNick = 0,Mess_IntegralNick2 = 0;
long Mess_IntegralRoll = 0,Mess_IntegralRoll2 = 0;
long Mess_Integral_Gier = 0,Mess_Integral_Gier2 = 0;
long MittelIntegralNick,MittelIntegralRoll,MittelIntegralNick2,MittelIntegralRoll2;
long SummeNick=0,SummeRoll=0;
volatile long Mess_Integral_Hoch = 0;
int KompassValue = 0;
int KompassStartwert = 0;
int KompassRichtung = 0;
unsigned int KompassSignalSchlecht = 500;
unsigned char MAX_GAS,MIN_GAS;
unsigned char HoehenReglerAktiv = 0;
unsigned char TrichterFlug = 0;
long Umschlag180Nick = 250000L, Umschlag180Roll = 250000L;
long ErsatzKompass;
int ErsatzKompassInGrad; // Kompasswert in Grad
int GierGyroFehler = 0;
char GyroFaktor,GyroFaktorGier;
char IntegralFaktor,IntegralFaktorGier;
int DiffNick,DiffRoll;
//int Poti1 = 0, Poti2 = 0, Poti3 = 0, Poti4 = 0, Poti5 = 0, Poti6 = 0, Poti7 = 0, Poti8 = 0;
unsigned char Poti[9] = {0,0,0,0,0,0,0,0};
volatile unsigned char SenderOkay = 0;
int StickNick = 0,StickRoll = 0,StickGier = 0,StickGas = 0;
char MotorenEin = 0,StartTrigger = 0;
long HoehenWert = 0;
long SollHoehe = 0;
int LageKorrekturRoll = 0,LageKorrekturNick = 0, HoverGas = 0;
//float Ki = FAKTOR_I;
int Ki = 10300 / 33;
unsigned char Looping_Nick = 0,Looping_Roll = 0;
unsigned char Looping_Links = 0, Looping_Rechts = 0, Looping_Unten = 0, Looping_Oben = 0;
 
unsigned char Parameter_Luftdruck_D = 48; // Wert : 0-250
unsigned char Parameter_MaxHoehe = 251; // Wert : 0-250
unsigned char Parameter_Hoehe_P = 16; // Wert : 0-32
unsigned char Parameter_Hoehe_ACC_Wirkung = 58; // Wert : 0-250
unsigned char Parameter_KompassWirkung = 64; // Wert : 0-250
unsigned char Parameter_Hoehe_GPS_Z = 64; // Wert : 0-250
unsigned char Parameter_Gyro_D = 8; // Wert : 0-250
unsigned char Parameter_Gyro_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_I = 150; // Wert : 0-250
unsigned char Parameter_Gyro_Gier_P = 150; // Wert : 10-250
unsigned char Parameter_Gyro_Gier_I = 150; // Wert : 10-250
unsigned char Parameter_Gier_P = 2; // Wert : 1-20
unsigned char Parameter_I_Faktor = 10; // Wert : 1-20
unsigned char Parameter_UserParam1 = 0;
unsigned char Parameter_UserParam2 = 0;
unsigned char Parameter_UserParam3 = 0;
unsigned char Parameter_UserParam4 = 0;
unsigned char Parameter_UserParam5 = 0;
unsigned char Parameter_UserParam6 = 0;
unsigned char Parameter_UserParam7 = 0;
unsigned char Parameter_UserParam8 = 0;
unsigned char Parameter_ServoNickControl = 100;
unsigned char Parameter_ServoRollControl = 100;
unsigned char Parameter_LoopGasLimit = 70;
unsigned char Parameter_AchsKopplung1 = 90;
unsigned char Parameter_AchsKopplung2 = 65;
unsigned char Parameter_CouplingYawCorrection = 64;
//unsigned char Parameter_AchsGegenKopplung1 = 0;
unsigned char Parameter_DynamicStability = 100;
unsigned char Parameter_J16Bitmask; // for the J16 Output
unsigned char Parameter_J16Timing; // for the J16 Output
unsigned char Parameter_J17Bitmask; // for the J17 Output
unsigned char Parameter_J17Timing; // for the J17 Output
unsigned char Parameter_NaviGpsModeControl; // Parameters for the Naviboard
unsigned char Parameter_NaviGpsGain;
unsigned char Parameter_NaviGpsP;
unsigned char Parameter_NaviGpsI;
unsigned char Parameter_NaviGpsD;
unsigned char Parameter_NaviGpsACC;
unsigned char Parameter_NaviOperatingRadius;
unsigned char Parameter_NaviWindCorrection;
unsigned char Parameter_NaviSpeedCompensation;
unsigned char Parameter_ExternalControl;
unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
unsigned char CareFree = 0;
 
signed int ExternStickNick = 0,ExternStickRoll = 0,ExternStickGier = 0, ExternHoehenValue = -20;
int MaxStickNick = 0,MaxStickRoll = 0;
unsigned int modell_fliegt = 0;
volatile unsigned char FCFlags = 0;
long GIER_GRAD_FAKTOR = 1291;
signed int KopplungsteilNickRoll,KopplungsteilRollNick;
signed int tmp_motorwert[MAX_MOTORS];
char VarioCharacter = ' ';
 
#define LIMIT_MIN(value, min) {if(value <= min) value = min;}
#define LIMIT_MAX(value, max) {if(value >= max) value = max;}
#define LIMIT_MIN_MAX(value, min, max) {if(value <= min) value = min; else if(value >= max) value = max;}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Debugwerte zuordnen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
void CopyDebugValues(void)
{
DebugOut.Analog[0] = IntegralNick / (EE_Parameter.GyroAccFaktor * 4);
DebugOut.Analog[1] = IntegralRoll / (EE_Parameter.GyroAccFaktor * 4);
DebugOut.Analog[2] = Mittelwert_AccNick / 4;
DebugOut.Analog[3] = Mittelwert_AccRoll / 4;
DebugOut.Analog[4] = (signed int) AdNeutralGier - AdWertGier;
DebugOut.Analog[5] = HoehenWert/5;
DebugOut.Analog[6] = AdWertAccHoch;//(Mess_Integral_Hoch / 512);// Aktuell_az;
DebugOut.Analog[8] = KompassValue;
DebugOut.Analog[9] = UBat;
DebugOut.Analog[10] = SenderOkay;
DebugOut.Analog[11] = ErsatzKompass / GIER_GRAD_FAKTOR;
DebugOut.Analog[12] = Motor[0].SetPoint;
DebugOut.Analog[13] = Motor[1].SetPoint;
DebugOut.Analog[14] = Motor[2].SetPoint;
DebugOut.Analog[15] = Motor[3].SetPoint;
DebugOut.Analog[20] = ServoNickValue;
DebugOut.Analog[22] = Capacity.ActualCurrent;
DebugOut.Analog[23] = Capacity.UsedCapacity;
// DebugOut.Analog[22] = FromNaviCtrl_Value.GpsZ;
// DebugOut.Analog[29] = FromNaviCtrl_Value.SerialDataOkay;
DebugOut.Analog[29] = Capacity.MinOfMaxPWM;
DebugOut.Analog[30] = GPS_Nick;
DebugOut.Analog[31] = GPS_Roll;
if(VersionInfo.HardwareError[0] || VersionInfo.HardwareError[1]) DebugOut.Status[1] |= 1; else DebugOut.Status[1] &= 0xfe;
}
 
void Piep(unsigned char Anzahl, unsigned int dauer)
{
if(MotorenEin) return; //auf keinen Fall im Flug!
while(Anzahl--)
{
beeptime = dauer;
while(beeptime);
Delay_ms(dauer * 2);
}
}
 
//############################################################################
// Messwerte beim Ermitteln der Nullage
void CalibrierMittelwert(void)
//############################################################################
{
unsigned char i;
if(PlatinenVersion == 13) SucheGyroOffset();
// ADC auschalten, damit die Werte sich nicht während der Berechnung ändern
ANALOG_OFF;
MesswertNick = AdWertNick;
MesswertRoll = AdWertRoll;
MesswertGier = AdWertGier;
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
// ADC einschalten
ANALOG_ON;
for(i=0;i<8;i++)
{
int tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
LIMIT_MIN_MAX(tmp, 0, 255);
if(Poti[i] > tmp) Poti[i]--; else if(Poti[i] < tmp) Poti[i]++;
}
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
}
 
//############################################################################
// Nullwerte ermitteln
void SetNeutral(unsigned char AccAdjustment)
//############################################################################
{
unsigned char i;
unsigned int gier_neutral=0, nick_neutral=0, roll_neutral=0;
VersionInfo.HardwareError[0] = 0;
HEF4017R_ON;
NeutralAccX = 0;
NeutralAccY = 0;
NeutralAccZ = 0;
 
AdNeutralNick = 0;
AdNeutralRoll = 0;
AdNeutralGier = 0;
 
Parameter_AchsKopplung1 = 0;
Parameter_AchsKopplung2 = 0;
 
ExpandBaro = 0;
 
CalibrierMittelwert();
Delay_ms_Mess(100);
 
CalibrierMittelwert();
 
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
}
#define NEUTRAL_FILTER 32
for(i=0; i<NEUTRAL_FILTER; i++)
{
Delay_ms_Mess(10);
gier_neutral += AdWertGier;
nick_neutral += AdWertNick;
roll_neutral += AdWertRoll;
}
AdNeutralNick= (nick_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
AdNeutralRoll= (roll_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER / 8);
AdNeutralGier= (gier_neutral+NEUTRAL_FILTER/2) / (NEUTRAL_FILTER);
 
StartNeutralRoll = AdNeutralRoll;
StartNeutralNick = AdNeutralNick;
 
if(AccAdjustment)
{
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
NeutralAccZ = Aktuell_az;
 
// Save ACC neutral settings to eeprom
SetParamWord(PID_ACC_NICK, (uint16_t)NeutralAccX);
SetParamWord(PID_ACC_ROLL, (uint16_t)NeutralAccY);
SetParamWord(PID_ACC_TOP, (uint16_t)NeutralAccZ);
}
else
{
// restore from eeprom
NeutralAccX = (int16_t)GetParamWord(PID_ACC_NICK);
NeutralAccY = (int16_t)GetParamWord(PID_ACC_ROLL);
NeutralAccZ = (int16_t)GetParamWord(PID_ACC_TOP);
// strange settings?
if(((unsigned int) NeutralAccX > 2048) || ((unsigned int) NeutralAccY > 2048) || ((unsigned int) NeutralAccZ > 1024))
{
printf("\n\rACC not calibrated!\r\n");
NeutralAccX = abs(Mittelwert_AccNick) / (2*ACC_AMPLIFY);
NeutralAccY = abs(Mittelwert_AccRoll) / (2*ACC_AMPLIFY);
NeutralAccZ = Aktuell_az;
}
}
 
MesswertNick = 0;
MesswertRoll = 0;
MesswertGier = 0;
Delay_ms_Mess(100);
Mittelwert_AccNick = ACC_AMPLIFY * AdWertAccNick;
Mittelwert_AccRoll = ACC_AMPLIFY * AdWertAccRoll;
IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
Mess_IntegralNick2 = IntegralNick;
Mess_IntegralRoll2 = IntegralRoll;
Mess_Integral_Gier = 0;
StartLuftdruck = Luftdruck;
VarioMeter = 0;
Mess_Integral_Hoch = 0;
KompassStartwert = KompassValue;
GPS_Neutral();
beeptime = 50;
Umschlag180Nick = ((long) EE_Parameter.WinkelUmschlagNick * 2500L) + 15000L;
Umschlag180Roll = ((long) EE_Parameter.WinkelUmschlagRoll * 2500L) + 15000L;
ExternHoehenValue = 0;
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
GierGyroFehler = 0;
SendVersionToNavi = 1;
LED_Init();
FCFlags |= FCFLAG_CALIBRATE;
FromNaviCtrl_Value.Kalman_K = -1;
FromNaviCtrl_Value.Kalman_MaxDrift = 0;
FromNaviCtrl_Value.Kalman_MaxFusion = 32;
 
for(i=0;i<8;i++)
{
Poti[i] = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
}
SenderOkay = 100;
if(ServoActive)
{
HEF4017R_ON;
DDRD |=0x80; // enable J7 -> Servo signal
}
 
if((AdNeutralNick < 150 * 16) || (AdNeutralNick > 850 * 16)) { VersionInfo.HardwareError[0] |= DEFEKT_G_NICK; };
if((AdNeutralRoll < 150 * 16) || (AdNeutralRoll > 850 * 16)) { VersionInfo.HardwareError[0] |= DEFEKT_G_ROLL; };
if((AdNeutralGier < 150 * 2) || (AdNeutralGier > 850 * 2)) { VersionInfo.HardwareError[0] |= DEFEKT_G_GIER; };
if((NeutralAccX < 300) || (NeutralAccX > 750)) { VersionInfo.HardwareError[0] |= DEFEKT_A_NICK; };
if((NeutralAccY < 300) || (NeutralAccY > 750)) { VersionInfo.HardwareError[0] |= DEFEKT_A_ROLL; };
if((NeutralAccZ < 512) || (NeutralAccZ > 850)) { VersionInfo.HardwareError[0] |= DEFEKT_A_Z; };
}
 
 
//############################################################################
// Bearbeitet die Messwerte
void Mittelwert(void)
//############################################################################
{
static signed long tmpl,tmpl2,tmpl3,tmpl4;
static signed int oldNick, oldRoll, d2Roll, d2Nick;
signed long winkel_nick, winkel_roll;
unsigned char i;
MesswertGier = (signed int) AdNeutralGier - AdWertGier;
MesswertNick = (signed int) AdWertNickFilter / 8;
MesswertRoll = (signed int) AdWertRollFilter / 8;
RohMesswertNick = MesswertNick;
RohMesswertRoll = MesswertRoll;
 
// Beschleunigungssensor ++++++++++++++++++++++++++++++++++++++++++++++++
Mittelwert_AccNick = (Mittelwert_AccNick * 3 + ((ACC_AMPLIFY * AdWertAccNick))) / 4L;
Mittelwert_AccRoll = (Mittelwert_AccRoll * 3 + ((ACC_AMPLIFY * AdWertAccRoll))) / 4L;
IntegralAccNick += ACC_AMPLIFY * AdWertAccNick;
IntegralAccRoll += ACC_AMPLIFY * AdWertAccRoll;
NaviAccNick += AdWertAccNick;
NaviAccRoll += AdWertAccRoll;
NaviCntAcc++;
IntegralAccZ += Aktuell_az - NeutralAccZ;
 
//++++++++++++++++++++++++++++++++++++++++++++++++
// ADC einschalten
ANALOG_ON;
AdReady = 0;
//++++++++++++++++++++++++++++++++++++++++++++++++
 
if(Mess_IntegralRoll > 93000L) winkel_roll = 93000L;
else if(Mess_IntegralRoll <-93000L) winkel_roll = -93000L;
else winkel_roll = Mess_IntegralRoll;
 
if(Mess_IntegralNick > 93000L) winkel_nick = 93000L;
else if(Mess_IntegralNick <-93000L) winkel_nick = -93000L;
else winkel_nick = Mess_IntegralNick;
 
// Gier ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_Integral_Gier += MesswertGier;
ErsatzKompass += MesswertGier;
// Kopplungsanteil +++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (EE_Parameter.GlobalConfig & CFG_ACHSENKOPPLUNG_AKTIV))
{
tmpl3 = (MesswertRoll * winkel_nick) / 2048L;
tmpl3 *= Parameter_AchsKopplung2; //65
tmpl3 /= 4096L;
tmpl4 = (MesswertNick * winkel_roll) / 2048L;
tmpl4 *= Parameter_AchsKopplung2; //65
tmpl4 /= 4096L;
KopplungsteilNickRoll = tmpl3;
KopplungsteilRollNick = tmpl4;
tmpl4 -= tmpl3;
ErsatzKompass += tmpl4;
if(!Parameter_CouplingYawCorrection) Mess_Integral_Gier -= tmpl4/2; // Gier nachhelfen
 
tmpl = ((MesswertGier + tmpl4) * winkel_nick) / 2048L;
tmpl *= Parameter_AchsKopplung1; // 90
tmpl /= 4096L;
tmpl2 = ((MesswertGier + tmpl4) * winkel_roll) / 2048L;
tmpl2 *= Parameter_AchsKopplung1;
tmpl2 /= 4096L;
if(abs(MesswertGier) > 64) if(labs(tmpl) > 128 || labs(tmpl2) > 128) TrichterFlug = 1;
//MesswertGier += (Parameter_CouplingYawCorrection * tmpl4) / 256;
}
else tmpl = tmpl2 = KopplungsteilNickRoll = KopplungsteilRollNick = 0;
TrimRoll = tmpl - tmpl2 / 100L;
TrimNick = -tmpl2 + tmpl / 100L;
// Kompasswert begrenzen ++++++++++++++++++++++++++++++++++++++++++++++++
if(ErsatzKompass >= (360L * GIER_GRAD_FAKTOR)) ErsatzKompass -= 360L * GIER_GRAD_FAKTOR; // 360° Umschlag
if(ErsatzKompass < 0) ErsatzKompass += 360L * GIER_GRAD_FAKTOR;
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralRoll2 += MesswertRoll + TrimRoll;
Mess_IntegralRoll += MesswertRoll + TrimRoll - LageKorrekturRoll;
if(Mess_IntegralRoll > Umschlag180Roll)
{
Mess_IntegralRoll = -(Umschlag180Roll - 25000L);
Mess_IntegralRoll2 = Mess_IntegralRoll;
}
if(Mess_IntegralRoll <-Umschlag180Roll)
{
Mess_IntegralRoll = (Umschlag180Roll - 25000L);
Mess_IntegralRoll2 = Mess_IntegralRoll;
}
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
Mess_IntegralNick2 += MesswertNick + TrimNick;
Mess_IntegralNick += MesswertNick + TrimNick - LageKorrekturNick;
if(Mess_IntegralNick > Umschlag180Nick)
{
Mess_IntegralNick = -(Umschlag180Nick - 25000L);
Mess_IntegralNick2 = Mess_IntegralNick;
}
if(Mess_IntegralNick <-Umschlag180Nick)
{
Mess_IntegralNick = (Umschlag180Nick - 25000L);
Mess_IntegralNick2 = Mess_IntegralNick;
}
 
Integral_Gier = Mess_Integral_Gier;
IntegralNick = Mess_IntegralNick;
IntegralRoll = Mess_IntegralRoll;
IntegralNick2 = Mess_IntegralNick2;
IntegralRoll2 = Mess_IntegralRoll2;
 
#define D_LIMIT 128
 
MesswertNick = HiResNick / 8;
MesswertRoll = HiResRoll / 8;
 
if(AdWertNick < 15) MesswertNick = -1000; if(AdWertNick < 7) MesswertNick = -2000;
if(PlatinenVersion == 10) { if(AdWertNick > 1010) MesswertNick = +1000; if(AdWertNick > 1017) MesswertNick = +2000; }
else { if(AdWertNick > 2000) MesswertNick = +1000; if(AdWertNick > 2015) MesswertNick = +2000; }
if(AdWertRoll < 15) MesswertRoll = -1000; if(AdWertRoll < 7) MesswertRoll = -2000;
if(PlatinenVersion == 10) { if(AdWertRoll > 1010) MesswertRoll = +1000; if(AdWertRoll > 1017) MesswertRoll = +2000; }
else { if(AdWertRoll > 2000) MesswertRoll = +1000; if(AdWertRoll > 2015) MesswertRoll = +2000; }
 
if(Parameter_Gyro_D)
{
d2Nick = HiResNick - oldNick;
oldNick = (oldNick + HiResNick)/2;
if(d2Nick > D_LIMIT) d2Nick = D_LIMIT;
else if(d2Nick < -D_LIMIT) d2Nick = -D_LIMIT;
MesswertNick += (d2Nick * (signed int) Parameter_Gyro_D) / 16;
d2Roll = HiResRoll - oldRoll;
oldRoll = (oldRoll + HiResRoll)/2;
if(d2Roll > D_LIMIT) d2Roll = D_LIMIT;
else if(d2Roll < -D_LIMIT) d2Roll = -D_LIMIT;
MesswertRoll += (d2Roll * (signed int) Parameter_Gyro_D) / 16;
HiResNick += (d2Nick * (signed int) Parameter_Gyro_D);
HiResRoll += (d2Roll * (signed int) Parameter_Gyro_D);
}
 
if(RohMesswertRoll > 0) TrimRoll += ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
else TrimRoll -= ((long) abs(KopplungsteilNickRoll) * Parameter_CouplingYawCorrection) / 64L;
if(RohMesswertNick > 0) TrimNick += ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
else TrimNick -= ((long) abs(KopplungsteilRollNick) * Parameter_CouplingYawCorrection) / 64L;
 
if(EE_Parameter.GlobalConfig & CFG_DREHRATEN_BEGRENZER && !Looping_Nick && !Looping_Roll)
{
if(RohMesswertNick > 256) MesswertNick += 1 * (RohMesswertNick - 256);
else if(RohMesswertNick < -256) MesswertNick += 1 * (RohMesswertNick + 256);
if(RohMesswertRoll > 256) MesswertRoll += 1 * (RohMesswertRoll - 256);
else if(RohMesswertRoll < -256) MesswertRoll += 1 * (RohMesswertRoll + 256);
}
for(i=0;i<8;i++)
{
int tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_POTI1 + i]] + 110;
if(tmp > 255) tmp = 255; else if(tmp < 0) tmp = 0;
if(tmp != Poti[i])
{
Poti[i] += (tmp - Poti[i]) / 8;
if(Poti[i] > tmp) Poti[i]--;
else Poti[i]++;
}
}
}
 
//############################################################################
// Senden der Motorwerte per I2C-Bus
void SendMotorData(void)
//############################################################################
{
unsigned char i;
if(!MotorenEin)
{
FCFlags &= ~(FCFLAG_MOTOR_RUN | FCFLAG_FLY);
for(i=0;i<MAX_MOTORS;i++)
{
if(!PC_MotortestActive) MotorTest[i] = 0;
Motor[i].SetPoint = MotorTest[i];
Motor[i].SetPointLowerBits = 0;
/*
Motor[i].SetPoint = MotorTest[i] / 4;
Motor[i].SetPointLowerBits = MotorTest[i] % 4;
*/
}
if(PC_MotortestActive) PC_MotortestActive--;
}
else FCFlags |= FCFLAG_MOTOR_RUN;
//Start I2C Interrupt Mode
motor_write = 0;
I2C_Start(TWI_STATE_MOTOR_TX);
}
 
 
 
//############################################################################
// Trägt ggf. das Poti als Parameter ein
void ParameterZuordnung(void)
//############################################################################
{
unsigned char tmp;
#define CHK_POTI(b,a) {if(a < 248) b = a; else b = Poti[255 - a];}
#define CHK_POTI_MM(b,a,min,max) {CHK_POTI(b,a); LIMIT_MIN_MAX(b, min, max);}
 
CHK_POTI_MM(Parameter_Luftdruck_D,EE_Parameter.Luftdruck_D,0,100);
CHK_POTI_MM(Parameter_Hoehe_P,EE_Parameter.Hoehe_P,0,100);
CHK_POTI_MM(Parameter_Gyro_P,EE_Parameter.Gyro_P,10,255);
CHK_POTI_MM(Parameter_J16Timing,EE_Parameter.J16Timing,1,255);
CHK_POTI_MM(Parameter_J17Timing,EE_Parameter.J17Timing,1,255);
CHK_POTI(Parameter_Servo3,EE_Parameter.Servo3);
CHK_POTI(Parameter_Servo4,EE_Parameter.Servo4);
CHK_POTI(Parameter_Servo5,EE_Parameter.Servo5);
CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe);
CHK_POTI(Parameter_MaxHoehe,EE_Parameter.MaxHoehe);
CHK_POTI(Parameter_Hoehe_ACC_Wirkung,EE_Parameter.Hoehe_ACC_Wirkung);
CHK_POTI(Parameter_Hoehe_GPS_Z,EE_Parameter.Hoehe_GPS_Z);
CHK_POTI(Parameter_KompassWirkung,EE_Parameter.KompassWirkung);
CHK_POTI(Parameter_Gyro_I,EE_Parameter.Gyro_I);
CHK_POTI(Parameter_Gyro_D,EE_Parameter.Gyro_D);
CHK_POTI(Parameter_Gyro_Gier_P,EE_Parameter.Gyro_Gier_P);
CHK_POTI(Parameter_Gyro_Gier_I,EE_Parameter.Gyro_Gier_I);
CHK_POTI(Parameter_I_Faktor,EE_Parameter.I_Faktor);
CHK_POTI(Parameter_UserParam1,EE_Parameter.UserParam1);
CHK_POTI(Parameter_UserParam2,EE_Parameter.UserParam2);
CHK_POTI(Parameter_UserParam3,EE_Parameter.UserParam3);
CHK_POTI(Parameter_UserParam4,EE_Parameter.UserParam4);
CHK_POTI(Parameter_UserParam5,EE_Parameter.UserParam5);
CHK_POTI(Parameter_UserParam6,EE_Parameter.UserParam6);
CHK_POTI(Parameter_UserParam7,EE_Parameter.UserParam7);
CHK_POTI(Parameter_UserParam8,EE_Parameter.UserParam8);
CHK_POTI(Parameter_ServoNickControl,EE_Parameter.ServoNickControl);
CHK_POTI(Parameter_ServoRollControl,EE_Parameter.ServoRollControl);
CHK_POTI(Parameter_LoopGasLimit,EE_Parameter.LoopGasLimit);
CHK_POTI(Parameter_AchsKopplung1,EE_Parameter.AchsKopplung1);
CHK_POTI(Parameter_AchsKopplung2,EE_Parameter.AchsKopplung2);
CHK_POTI(Parameter_CouplingYawCorrection,EE_Parameter.CouplingYawCorrection);
// CHK_POTI(Parameter_AchsGegenKopplung1,EE_Parameter.AchsGegenKopplung1,0,255);
CHK_POTI(Parameter_DynamicStability,EE_Parameter.DynamicStability);
CHK_POTI(Parameter_ExternalControl,EE_Parameter.ExternalControl);
Ki = 10300 / (Parameter_I_Faktor + 1);
MAX_GAS = EE_Parameter.Gas_Max;
MIN_GAS = EE_Parameter.Gas_Min;
 
tmp = EE_Parameter.OrientationModeControl;
if(tmp > 50)
{
#ifdef SWITCH_LEARNS_CAREFREE
if(!CareFree) ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
#endif
CareFree = 1;
if(tmp >= 248 && Poti[255 - tmp] < 50) CareFree = 0;
if(FromNaviCtrl.CompassValue < 0 && CareFree) VersionInfo.HardwareError[0] |= DEFEKT_CAREFREE_ERR; else VersionInfo.HardwareError[0] &= ~DEFEKT_CAREFREE_ERR;
}
else CareFree = 0;
 
if(FromNaviCtrl.CompassValue < 0 && MotorenEin && CareFree && BeepMuster == 0xffff) // ungültiger Kompasswert
{
beeptime = 15000;
BeepMuster = 0xA400;
CareFree = 0;
}
 
if(CareFree) {if(Parameter_AchsKopplung1 < 210) Parameter_AchsKopplung1 += 30;}
}
 
//############################################################################
//
void MotorRegler(void)
//############################################################################
{
int pd_ergebnis_nick,pd_ergebnis_roll,tmp_int, tmp_int2;
int GierMischanteil,GasMischanteil;
static long sollGier = 0,tmp_long,tmp_long2;
static long IntegralFehlerNick = 0;
static long IntegralFehlerRoll = 0;
static unsigned int RcLostTimer;
static unsigned char delay_neutral = 0;
static unsigned char delay_einschalten = 0,delay_ausschalten = 0;
static unsigned char calibration_done = 0;
static char NeueKompassRichtungMerken = 0;
static long ausgleichNick, ausgleichRoll;
int IntegralNickMalFaktor,IntegralRollMalFaktor;
unsigned char i;
Mittelwert();
GRN_ON;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gaswert ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GasMischanteil = StickGas;
if(GasMischanteil < MIN_GAS + 10) GasMischanteil = MIN_GAS + 10;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Empfang schlecht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay < 100)
{
if(RcLostTimer) RcLostTimer--;
else
{
MotorenEin = 0;
FCFlags &= ~FCFLAG_NOTLANDUNG;
}
ROT_ON;
if(modell_fliegt > 1000) // wahrscheinlich in der Luft --> langsam absenken
{
GasMischanteil = EE_Parameter.NotGas;
FCFlags |= FCFLAG_NOTLANDUNG;
PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] = 0;
PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] = 0;
}
else MotorenEin = 0;
}
else
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Emfang gut
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(SenderOkay > 140)
{
FCFlags &= ~FCFLAG_NOTLANDUNG;
RcLostTimer = EE_Parameter.NotGasZeit * 50;
if(GasMischanteil > 40 && MotorenEin)
{
if(modell_fliegt < 0xffff) modell_fliegt++;
}
if((modell_fliegt < 256))
{
SummeNick = 0;
SummeRoll = 0;
sollGier = 0;
Mess_Integral_Gier = 0;
if(modell_fliegt == 250)
{
NeueKompassRichtungMerken = 1;
}
} else FCFlags |= FCFLAG_FLY;
 
if((PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] > 80) && MotorenEin == 0)
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// auf Nullwerte kalibrieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75) // Neutralwerte
{
if(++delay_neutral > 200) // nicht sofort
{
GRN_OFF;
MotorenEin = 0;
delay_neutral = 0;
modell_fliegt = 0;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70 || abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) > 70)
{
unsigned char setting=1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 2;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < 70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 3;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > 70) setting = 4;
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] <-70 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < 70) setting = 5;
SetActiveParamSet(setting); // aktiven Datensatz merken
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]) < 30 && PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70)
{
WinkelOut.CalcState = 1;
beeptime = 1000;
}
else
{
ParamSet_ReadFromEEProm(GetActiveParamSet());
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)) // Höhenregelung aktiviert?
{
if((MessLuftdruck > 950) || (MessLuftdruck < 750)) SucheLuftruckOffset();
}
ServoActive = 0;
SetNeutral(0);
calibration_done = 1;
ServoActive = 1;
DDRD |=0x80; // enable J7 -> Servo signal
Piep(GetActiveParamSet(),120);
}
}
}
else
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75) // ACC Neutralwerte speichern
{
if(++delay_neutral > 200) // nicht sofort
{
GRN_OFF;
MotorenEin = 0;
delay_neutral = 0;
modell_fliegt = 0;
SetNeutral(1);
calibration_done = 1;
Piep(GetActiveParamSet(),120);
}
}
else delay_neutral = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gas ist unten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] < 35-120)
{
// Motoren Starten
if(!MotorenEin)
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] < -75)
{
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Einschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(++delay_einschalten > 200)
{
delay_einschalten = 0;
if(!VersionInfo.HardwareError[0] && calibration_done)
{
modell_fliegt = 1;
MotorenEin = 1;
sollGier = 0;
Mess_Integral_Gier = 0;
Mess_Integral_Gier2 = 0;
Mess_IntegralNick = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccNick;
Mess_IntegralRoll = EE_Parameter.GyroAccFaktor * (long)Mittelwert_AccRoll;
Mess_IntegralNick2 = IntegralNick;
Mess_IntegralRoll2 = IntegralRoll;
SummeNick = 0;
SummeRoll = 0;
FCFlags |= FCFLAG_START;
ControlHeading = (((int) EE_Parameter.OrientationAngle * 15 + KompassValue) % 360) / 2;
}
else
{
beeptime = 1500; // indicate missing calibration
}
}
}
else delay_einschalten = 0;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Auschalten
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
else // only if motors are running
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]] > 75)
{
if(++delay_ausschalten > 200) // nicht sofort
{
MotorenEin = 0;
delay_ausschalten = 0;
modell_fliegt = 0;
}
}
else delay_ausschalten = 0;
}
}
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// neue Werte von der Funke
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
if(!NewPpmData-- || (FCFlags & FCFLAG_NOTLANDUNG))
{
static int stick_nick,stick_roll;
ParameterZuordnung();
stick_nick = (stick_nick * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_P) / 4;
stick_nick += PPM_diff[EE_Parameter.Kanalbelegung[K_NICK]] * EE_Parameter.Stick_D;
stick_roll = (stick_roll * 3 + PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_P) / 4;
stick_roll += PPM_diff[EE_Parameter.Kanalbelegung[K_ROLL]] * EE_Parameter.Stick_D;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// CareFree und freie Wahl der vorderen Richtung
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
signed char sintab[31] = { 0, 2, 4, 6, 7, 8, 8, 8, 7, 6, 4, 2, 0, -2, -4, -6, -7, -8, -8, -8, -7, -6, -4, -2, 0, 2, 4, 6, 7, 8, 8};
 
if(CareFree)
{
signed int nick, roll;
nick = stick_nick / 4;
roll = stick_roll / 4;
StickNick = ((FromNC_Rotate_C * nick) + (FromNC_Rotate_S * roll)) / (32 / 4);
StickRoll = ((FromNC_Rotate_C * roll) - (FromNC_Rotate_S * nick)) / (32 / 4);
}
else
{
FromNC_Rotate_C = sintab[EE_Parameter.OrientationAngle + 6];
FromNC_Rotate_S = sintab[EE_Parameter.OrientationAngle];
StickNick = ((FromNC_Rotate_C * stick_nick) + (FromNC_Rotate_S * stick_roll)) / 8;
StickRoll = ((FromNC_Rotate_C * stick_roll) - (FromNC_Rotate_S * stick_nick)) / 8;
}
 
 
StickGier = -PPM_in[EE_Parameter.Kanalbelegung[K_GIER]];
if(StickGier > 2) StickGier -= 2; else
if(StickGier < -2) StickGier += 2; else StickGier = 0;
 
StickNick -= (GPS_Nick + GPS_Nick2);
StickRoll -= (GPS_Roll + GPS_Roll2);
StickGas = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]] + 120;
 
GyroFaktor = (Parameter_Gyro_P + 10.0);
IntegralFaktor = Parameter_Gyro_I;
GyroFaktorGier = (Parameter_Gyro_Gier_P + 10.0);
IntegralFaktorGier = Parameter_Gyro_Gier_I;
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//+ Analoge Steuerung per Seriell
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ExternControl.Config & 0x01 && Parameter_ExternalControl > 128)
{
StickNick += (int) ExternControl.Nick * (int) EE_Parameter.Stick_P;
StickRoll += (int) ExternControl.Roll * (int) EE_Parameter.Stick_P;
StickGier += ExternControl.Gier;
ExternHoehenValue = (int) ExternControl.Hight * (int)EE_Parameter.Hoehe_Verstaerkung;
if(ExternControl.Gas < StickGas) StickGas = ExternControl.Gas;
}
if(StickGas < 0) StickGas = 0;
 
if(EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) IntegralFaktor = 0;
 
if(abs(StickNick/STICK_GAIN) > MaxStickNick)
{
MaxStickNick = abs(StickNick)/STICK_GAIN;
if(MaxStickNick > 100) MaxStickNick = 100;
}
else MaxStickNick--;
if(abs(StickRoll/STICK_GAIN) > MaxStickRoll)
{
MaxStickRoll = abs(StickRoll)/STICK_GAIN;
if(MaxStickRoll > 100) MaxStickRoll = 100;
}
else MaxStickRoll--;
if(FCFlags & FCFLAG_NOTLANDUNG) {MaxStickNick = 0; MaxStickRoll = 0;}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Looping?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_LINKS) Looping_Links = 1;
else
{
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Links = 0;
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_RECHTS) Looping_Rechts = 1;
else
{
if(Looping_Rechts) // Hysterese
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Rechts = 0;
}
}
 
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_OBEN) Looping_Oben = 1;
else
{
if(Looping_Oben) // Hysterese
{
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < (EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese))) Looping_Oben = 0;
}
}
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -EE_Parameter.LoopThreshold) && EE_Parameter.BitConfig & CFG_LOOP_UNTEN) Looping_Unten = 1;
else
{
if(Looping_Unten) // Hysterese
{
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -(EE_Parameter.LoopThreshold - EE_Parameter.LoopHysterese)) Looping_Unten = 0;
}
}
 
if(Looping_Links || Looping_Rechts) Looping_Roll = 1; else Looping_Roll = 0;
if(Looping_Oben || Looping_Unten) { Looping_Nick = 1; Looping_Roll = 0; Looping_Links = 0; Looping_Rechts = 0;} else Looping_Nick = 0;
} // Ende neue Funken-Werte
 
if(Looping_Roll || Looping_Nick)
{
if(GasMischanteil > EE_Parameter.LoopGasLimit) GasMischanteil = EE_Parameter.LoopGasLimit;
TrichterFlug = 1;
}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Bei Empfangsausfall im Flug
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(FCFlags & FCFLAG_NOTLANDUNG)
{
StickGier = 0;
StickNick = 0;
StickRoll = 0;
GyroFaktor = 90;
IntegralFaktor = 120;
GyroFaktorGier = 90;
IntegralFaktorGier = 120;
Looping_Roll = 0;
Looping_Nick = 0;
}
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Integrale auf ACC-Signal abgleichen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#define ABGLEICH_ANZAHL 256L
 
MittelIntegralNick += IntegralNick; // Für die Mittelwertbildung aufsummieren
MittelIntegralRoll += IntegralRoll;
MittelIntegralNick2 += IntegralNick2;
MittelIntegralRoll2 += IntegralRoll2;
 
if(Looping_Nick || Looping_Roll)
{
IntegralAccNick = 0;
IntegralAccRoll = 0;
MittelIntegralNick = 0;
MittelIntegralRoll = 0;
MittelIntegralNick2 = 0;
MittelIntegralRoll2 = 0;
Mess_IntegralNick2 = Mess_IntegralNick;
Mess_IntegralRoll2 = Mess_IntegralRoll;
ZaehlMessungen = 0;
LageKorrekturNick = 0;
LageKorrekturRoll = 0;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!Looping_Nick && !Looping_Roll && (Aktuell_az > 512 || MotorenEin))
{
long tmp_long, tmp_long2;
if(FromNaviCtrl_Value.Kalman_K != -1 /*&& !TrichterFlug*/)
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
tmp_long = (tmp_long * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
tmp_long2 = (tmp_long2 * FromNaviCtrl_Value.Kalman_K) / (32 * 16);
if((MaxStickNick > 64) || (MaxStickRoll > 64))
{
tmp_long /= 2;
tmp_long2 /= 2;
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
{
tmp_long /= 3;
tmp_long2 /= 3;
}
if(tmp_long > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 > (long) FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long) FromNaviCtrl_Value.Kalman_MaxFusion;
if(tmp_long2 < (long)-FromNaviCtrl_Value.Kalman_MaxFusion) tmp_long2 = (long)-FromNaviCtrl_Value.Kalman_MaxFusion;
}
else
{
tmp_long = (long)(IntegralNick / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccNick);
tmp_long2 = (long)(IntegralRoll / EE_Parameter.GyroAccFaktor - (long)Mittelwert_AccRoll);
tmp_long /= 16;
tmp_long2 /= 16;
if((MaxStickNick > 64) || (MaxStickRoll > 64))
{
tmp_long /= 3;
tmp_long2 /= 3;
}
if(abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)
{
tmp_long /= 3;
tmp_long2 /= 3;
}
 
#define AUSGLEICH 32
if(tmp_long > AUSGLEICH) tmp_long = AUSGLEICH;
if(tmp_long < -AUSGLEICH) tmp_long =-AUSGLEICH;
if(tmp_long2 > AUSGLEICH) tmp_long2 = AUSGLEICH;
if(tmp_long2 <-AUSGLEICH) tmp_long2 =-AUSGLEICH;
}
 
Mess_IntegralNick -= tmp_long;
Mess_IntegralRoll -= tmp_long2;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(ZaehlMessungen >= ABGLEICH_ANZAHL)
{
static int cnt = 0;
static char last_n_p,last_n_n,last_r_p,last_r_n;
static long MittelIntegralNick_Alt,MittelIntegralRoll_Alt;
if(!Looping_Nick && !Looping_Roll && !TrichterFlug && EE_Parameter.Driftkomp)
{
MittelIntegralNick /= ABGLEICH_ANZAHL;
MittelIntegralRoll /= ABGLEICH_ANZAHL;
IntegralAccNick = (EE_Parameter.GyroAccFaktor * IntegralAccNick) / ABGLEICH_ANZAHL;
IntegralAccRoll = (EE_Parameter.GyroAccFaktor * IntegralAccRoll) / ABGLEICH_ANZAHL;
IntegralAccZ = IntegralAccZ / ABGLEICH_ANZAHL;
#define MAX_I 0
// Nick ++++++++++++++++++++++++++++++++++++++++++++++++
IntegralFehlerNick = (long)(MittelIntegralNick - (long)IntegralAccNick);
ausgleichNick = IntegralFehlerNick / EE_Parameter.GyroAccAbgleich;
// Roll ++++++++++++++++++++++++++++++++++++++++++++++++
IntegralFehlerRoll = (long)(MittelIntegralRoll - (long)IntegralAccRoll);
ausgleichRoll = IntegralFehlerRoll / EE_Parameter.GyroAccAbgleich;
 
LageKorrekturNick = ausgleichNick / ABGLEICH_ANZAHL;
LageKorrekturRoll = ausgleichRoll / ABGLEICH_ANZAHL;
 
if(((MaxStickNick > 64) || (MaxStickRoll > 64) || (abs(PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]) > 25)) && (FromNaviCtrl_Value.Kalman_K == -1))
{
LageKorrekturNick /= 2;
LageKorrekturRoll /= 2;
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gyro-Drift ermitteln
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick2 /= ABGLEICH_ANZAHL;
MittelIntegralRoll2 /= ABGLEICH_ANZAHL;
tmp_long = IntegralNick2 - IntegralNick;
tmp_long2 = IntegralRoll2 - IntegralRoll;
 
IntegralFehlerNick = tmp_long;
IntegralFehlerRoll = tmp_long2;
Mess_IntegralNick2 -= IntegralFehlerNick;
Mess_IntegralRoll2 -= IntegralFehlerRoll;
 
if(EE_Parameter.Driftkomp)
{
if(GierGyroFehler > ABGLEICH_ANZAHL/2) { AdNeutralGier++; }
if(GierGyroFehler <-ABGLEICH_ANZAHL/2) { AdNeutralGier--; }
}
GierGyroFehler = 0;
 
#define FEHLER_LIMIT (ABGLEICH_ANZAHL / 2)
#define FEHLER_LIMIT1 (ABGLEICH_ANZAHL * 2) //4
#define FEHLER_LIMIT2 (ABGLEICH_ANZAHL * 16) //16
#define BEWEGUNGS_LIMIT 20000
// Nick +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerNick) / 4096;
if(labs(IntegralFehlerNick) > FEHLER_LIMIT1) cnt = 4;
if(labs(MittelIntegralNick_Alt - MittelIntegralNick) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8))
{
if(IntegralFehlerNick > FEHLER_LIMIT2)
{
if(last_n_p)
{
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8);
ausgleichNick = IntegralFehlerNick / 8;
if(ausgleichNick > 5000) ausgleichNick = 5000;
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL;
}
else last_n_p = 1;
} else last_n_p = 0;
if(IntegralFehlerNick < -FEHLER_LIMIT2)
{
if(last_n_n)
{
cnt += labs(IntegralFehlerNick) / (FEHLER_LIMIT2 / 8);
ausgleichNick = IntegralFehlerNick / 8;
if(ausgleichNick < -5000) ausgleichNick = -5000;
LageKorrekturNick += ausgleichNick / ABGLEICH_ANZAHL;
}
else last_n_n = 1;
} else last_n_n = 0;
}
else
{
cnt = 0;
KompassSignalSchlecht = 1000;
}
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift;
if(IntegralFehlerNick > FEHLER_LIMIT) AdNeutralNick += cnt;
if(IntegralFehlerNick < -FEHLER_LIMIT) AdNeutralNick -= cnt;
 
// Roll +++++++++++++++++++++++++++++++++++++++++++++++++
cnt = 1;// + labs(IntegralFehlerRoll) / 4096;
if(labs(IntegralFehlerRoll) > FEHLER_LIMIT1) cnt = 4;
if(labs(MittelIntegralRoll_Alt - MittelIntegralRoll) < BEWEGUNGS_LIMIT || (FromNaviCtrl_Value.Kalman_MaxDrift > 3*8))
{
if(IntegralFehlerRoll > FEHLER_LIMIT2)
{
if(last_r_p)
{
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8);
ausgleichRoll = IntegralFehlerRoll / 8;
if(ausgleichRoll > 5000) ausgleichRoll = 5000;
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL;
}
else last_r_p = 1;
} else last_r_p = 0;
if(IntegralFehlerRoll < -FEHLER_LIMIT2)
{
if(last_r_n)
{
cnt += labs(IntegralFehlerRoll) / (FEHLER_LIMIT2 / 8);
ausgleichRoll = IntegralFehlerRoll / 8;
if(ausgleichRoll < -5000) ausgleichRoll = -5000;
LageKorrekturRoll += ausgleichRoll / ABGLEICH_ANZAHL;
}
else last_r_n = 1;
} else last_r_n = 0;
} else
{
cnt = 0;
KompassSignalSchlecht = 1000;
}
if(cnt > EE_Parameter.Driftkomp) cnt = EE_Parameter.Driftkomp;
if(FromNaviCtrl_Value.Kalman_MaxDrift) if(cnt > FromNaviCtrl_Value.Kalman_MaxDrift) cnt = FromNaviCtrl_Value.Kalman_MaxDrift;
if(IntegralFehlerRoll > FEHLER_LIMIT) AdNeutralRoll += cnt;
if(IntegralFehlerRoll < -FEHLER_LIMIT) AdNeutralRoll -= cnt;
}
else
{
LageKorrekturRoll = 0;
LageKorrekturNick = 0;
TrichterFlug = 0;
}
 
if(!IntegralFaktor) { LageKorrekturRoll = 0; LageKorrekturNick = 0;} // z.B. bei HH
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
MittelIntegralNick_Alt = MittelIntegralNick;
MittelIntegralRoll_Alt = MittelIntegralRoll;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++
IntegralAccNick = 0;
IntegralAccRoll = 0;
IntegralAccZ = 0;
MittelIntegralNick = 0;
MittelIntegralRoll = 0;
MittelIntegralNick2 = 0;
MittelIntegralRoll2 = 0;
ZaehlMessungen = 0;
} // ZaehlMessungen >= ABGLEICH_ANZAHL
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gieren
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(abs(StickGier) > 15) // war 35
{
KompassSignalSchlecht = 1000;
if(!(EE_Parameter.GlobalConfig & CFG_KOMPASS_FIX))
{
NeueKompassRichtungMerken = 1;
};
}
tmp_int = (long) EE_Parameter.Gier_P * ((long)StickGier * abs(StickGier)) / 512L; // expo y = ax + bx²
tmp_int += (EE_Parameter.Gier_P * StickGier) / 4;
sollGier = tmp_int;
Mess_Integral_Gier -= tmp_int;
if(Mess_Integral_Gier > 50000) Mess_Integral_Gier = 50000; // begrenzen
if(Mess_Integral_Gier <-50000) Mess_Integral_Gier =-50000;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Kompass
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(KompassValue && (EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV))
{
int w,v,r,fehler,korrektur;
w = abs(IntegralNick /512); // mit zunehmender Neigung den Einfluss drosseln
v = abs(IntegralRoll /512);
if(v > w) w = v; // grösste Neigung ermitteln
korrektur = w / 8 + 2;
fehler = ((540 + KompassValue - (ErsatzKompass/GIER_GRAD_FAKTOR)) % 360) - 180;
//fehler += MesswertGier / 12;
 
if(!KompassSignalSchlecht && w < 25)
{
GierGyroFehler += fehler;
if(NeueKompassRichtungMerken)
{
ErsatzKompass = KompassValue * GIER_GRAD_FAKTOR;
KompassStartwert = (ErsatzKompass/GIER_GRAD_FAKTOR);
NeueKompassRichtungMerken = 0;
}
}
ErsatzKompass += (fehler * 16) / korrektur;
w = (w * Parameter_KompassWirkung) / 32; // auf die Wirkung normieren
w = Parameter_KompassWirkung - w; // Wirkung ggf drosseln
if(w >= 0)
{
if(!KompassSignalSchlecht)
{
v = 64 + ((MaxStickNick + MaxStickRoll)) / 8;
r = ((540 + (ErsatzKompass/GIER_GRAD_FAKTOR) - KompassStartwert) % 360) - 180;
v = (r * w) / v; // nach Kompass ausrichten
w = 3 * Parameter_KompassWirkung;
if(v > w) v = w; // Begrenzen
else
if(v < -w) v = -w;
Mess_Integral_Gier += v;
}
if(KompassSignalSchlecht) KompassSignalSchlecht--;
}
else KompassSignalSchlecht = 500; // so lange das Signal taub stellen --> ca. 1 sek
}
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Drehgeschwindigkeit und -winkel zu einem Istwert zusammenfassen
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(TrichterFlug) { SummeRoll = 0; SummeNick = 0;};
 
if(!Looping_Nick) IntegralNickMalFaktor = (IntegralNick * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralNickMalFaktor = 0;
if(!Looping_Roll) IntegralRollMalFaktor = (IntegralRoll * IntegralFaktor) / (44000 / STICK_GAIN); else IntegralRollMalFaktor = 0;
 
#define TRIM_MAX 200
if(TrimNick > TRIM_MAX) TrimNick = TRIM_MAX; else if(TrimNick <-TRIM_MAX) TrimNick =-TRIM_MAX;
if(TrimRoll > TRIM_MAX) TrimRoll = TRIM_MAX; else if(TrimRoll <-TRIM_MAX) TrimRoll =-TRIM_MAX;
 
MesswertNick = IntegralNickMalFaktor + (long)((long)MesswertNick * GyroFaktor + (long)TrimNick * 128L) / (256L / STICK_GAIN);
MesswertRoll = IntegralRollMalFaktor + (long)((long)MesswertRoll * GyroFaktor + (long)TrimRoll * 128L) / (256L / STICK_GAIN);
MesswertGier = (long)(MesswertGier * 2 * (long)GyroFaktorGier) / (256L / STICK_GAIN) + (long)(Integral_Gier * IntegralFaktorGier) / (2 * (44000 / STICK_GAIN));
 
// Maximalwerte abfangen
// #define MAX_SENSOR (4096*STICK_GAIN)
#define MAX_SENSOR (4096)
if(MesswertNick > MAX_SENSOR) MesswertNick = MAX_SENSOR;
if(MesswertNick < -MAX_SENSOR) MesswertNick = -MAX_SENSOR;
if(MesswertRoll > MAX_SENSOR) MesswertRoll = MAX_SENSOR;
if(MesswertRoll < -MAX_SENSOR) MesswertRoll = -MAX_SENSOR;
if(MesswertGier > MAX_SENSOR) MesswertGier = MAX_SENSOR;
if(MesswertGier < -MAX_SENSOR) MesswertGier = -MAX_SENSOR;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Höhenregelung
// Die Höhenregelung schwächt lediglich das Gas ab, erhöht es allerdings nicht
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(UBat > BattLowVoltageWarning) GasMischanteil = ((unsigned int)GasMischanteil * BattLowVoltageWarning) / UBat; // Gas auf das aktuelle Spannungvieveau beziehen
GasMischanteil *= STICK_GAIN;
// if height control is activated
if((EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG) && !(Looping_Roll || Looping_Nick)) // Höhenregelung
{
#define HOVER_GAS_AVERAGE 16384L // 16384 * 2ms = 32s averaging
#define HC_GAS_AVERAGE 4 // 4 * 2ms= 8ms averaging
 
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
#define OPA_OFFSET_STEP 15
#else
#define OPA_OFFSET_STEP 10
#endif
int HCGas, HeightDeviation = 0,GasReduction = 0;
static int HeightTrimming = 0; // rate for change of height setpoint
static int FilterHCGas = 0;
static int StickGasHover = 120, HoverGasMin = 0, HoverGasMax = 1023;
static unsigned long HoverGasFilter = 0;
static unsigned char delay = 100, BaroAtUpperLimit = 0, BaroAtLowerLimit = 0;
int CosAttitude; // for projection of hoover gas
 
// get the current hooverpoint
DebugOut.Analog[21] = HoverGas;
 
// Expand the measurement
// measurement of air pressure close to upper limit and no overflow in correction of the new OCR0A value occurs
if(!BaroExpandActive)
{
if(MessLuftdruck > 920)
{ // increase offset
if(OCR0A < (255 - OPA_OFFSET_STEP))
{
ExpandBaro -= 1;
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // increase offset to shift ADC down
beeptime = 300;
BaroExpandActive = 350;
}
else
{
BaroAtLowerLimit = 1;
}
}
// measurement of air pressure close to lower limit and
else
if(MessLuftdruck < 100)
{ // decrease offset
if(OCR0A > OPA_OFFSET_STEP)
{
ExpandBaro += 1;
OCR0A = DruckOffsetSetting - OPA_OFFSET_STEP * ExpandBaro; // decrease offset to shift ADC up
beeptime = 300;
BaroExpandActive = 350;
}
else
{
BaroAtUpperLimit = 1;
}
}
else
{
BaroAtUpperLimit = 0;
BaroAtLowerLimit = 0;
}
}
else // delay, because of expanding the Baro-Range
{
// now clear the D-values
SummenHoehe = HoehenWert * SM_FILTER;
VarioMeter = 0;
BaroExpandActive--;
}
 
// if height control is activated by an rc channel
if(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER) // Regler wird über Schalter gesteuert
{ // check if parameter is less than activation threshold
if(Parameter_MaxHoehe < 50) // for 3 or 2-state switch height control is disabled in lowest position
{ //height control not active
if(!delay--)
{
HoehenReglerAktiv = 0; // disable height control
SollHoehe = HoehenWert; // update SetPoint with current reading
delay = 1;
}
}
else
{ //height control is activated
HoehenReglerAktiv = 1; // enable height control
delay = 200;
}
}
else // no switchable height control
{
SollHoehe = ((int16_t) ExternHoehenValue + (int16_t) Parameter_MaxHoehe) * (int)EE_Parameter.Hoehe_Verstaerkung;
HoehenReglerAktiv = 1;
}
 
// calculate cos of nick and roll angle used for projection of the vertical hoover gas
tmp_int = (int)(IntegralNick/GIER_GRAD_FAKTOR); // nick angle in deg
tmp_int2 = (int)(IntegralRoll/GIER_GRAD_FAKTOR); // roll angle in deg
CosAttitude = (int16_t)ihypot(tmp_int, tmp_int2); // phytagoras gives effective attitude angle in deg
LIMIT_MAX(CosAttitude, 60); // limit effective attitude angle
CosAttitude = c_cos_8192(CosAttitude); // cos of actual attitude
VarioCharacter = ' ';
if(HoehenReglerAktiv && !(FCFlags & FCFLAG_NOTLANDUNG))
{
#define HEIGHT_TRIM_UP 0x01
#define HEIGHT_TRIM_DOWN 0x02
static unsigned char HeightTrimmingFlag = 0x00;
 
#define HEIGHT_CONTROL_STICKTHRESHOLD 15
// Holger original version
// start of height control algorithm
// the height control is only an attenuation of the actual gas stick.
// I.e. it will work only if the gas stick is higher than the hover gas
// and the hover height will be allways larger than height setpoint.
if((EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT) || !(EE_Parameter.GlobalConfig & CFG_HOEHEN_SCHALTER)) // Regler wird über Schalter gesteuert)
{ // old version
HCGas = GasMischanteil; // take current stick gas as neutral point for the height control
HeightTrimming = 0;
}
else
{
// alternative height control
// PD-Control with respect to hoover point
// the thrust loss out of horizontal attitude is compensated
// the setpoint will be fine adjusted with the gas stick position
if(FCFlags & FCFLAG_FLY) // trim setpoint only when flying
{ // gas stick is above hoover point
if(StickGas > (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtUpperLimit)
{
if(HeightTrimmingFlag & HEIGHT_TRIM_DOWN)
{
HeightTrimmingFlag &= ~HEIGHT_TRIM_DOWN;
SollHoehe = HoehenWert; // update setpoint to current heigth
}
HeightTrimmingFlag |= HEIGHT_TRIM_UP;
HeightTrimming += abs(StickGas - (StickGasHover + HEIGHT_CONTROL_STICKTHRESHOLD));
VarioCharacter = '+';
} // gas stick is below hoover point
else if(StickGas < (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD) && !BaroAtLowerLimit )
{
if(HeightTrimmingFlag & HEIGHT_TRIM_UP)
{
HeightTrimmingFlag &= ~HEIGHT_TRIM_UP;
SollHoehe = HoehenWert; // update setpoint to current heigth
}
HeightTrimmingFlag |= HEIGHT_TRIM_DOWN;
HeightTrimming -= abs(StickGas - (StickGasHover - HEIGHT_CONTROL_STICKTHRESHOLD));
VarioCharacter = '-';
}
else // Gas Stick in Hover Range
{
if(HeightTrimmingFlag & (HEIGHT_TRIM_UP | HEIGHT_TRIM_DOWN))
{
HeightTrimmingFlag &= ~(HEIGHT_TRIM_UP | HEIGHT_TRIM_DOWN);
HeightTrimming = 0;
SollHoehe = HoehenWert; // update setpoint to current height
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 500;
if(!StartTrigger && HoehenWert > 50)
{
StartTrigger = 1;
}
}
VarioCharacter = '=';
}
// Trim height set point
if(abs(HeightTrimming) > 512)
{
SollHoehe += (HeightTrimming * EE_Parameter.Hoehe_Verstaerkung)/(5 * 512 / 2); // move setpoint
HeightTrimming = 0;
LIMIT_MIN_MAX(SollHoehe, (HoehenWert-1024), (HoehenWert+1024)); // max. 10m Unterschied
if(EE_Parameter.ExtraConfig & CFG2_VARIO_BEEP) beeptime = 75;
//update hoover gas stick value when setpoint is shifted
if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; //rescale back to stick value
StickGasHover = (StickGasHover * UBat) / BattLowVoltageWarning;
if(StickGasHover < 70) StickGasHover = 70;
else if(StickGasHover > 150) StickGasHover = 150;
}
}
if(BaroExpandActive) SollHoehe = HoehenWert; // update setpoint to current altitude if Expanding is active
} //if FCFlags & MKFCFLAG_FLY
else
{
SollHoehe = HoehenWert - 400;
if(EE_Parameter.Hoehe_StickNeutralPoint) StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
else StickGasHover = 120;
HoverGas = GasMischanteil;
}
HCGas = HoverGas; // take hover gas (neutral point)
}
if(HoehenWert > SollHoehe || !(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT))
{
// from this point the Heigth Control Algorithm is identical for both versions
if(BaroExpandActive) // baro range expanding active
{
HCGas = HoverGas; // hover while expanding baro adc range
HeightDeviation = 0;
} // EOF // baro range expanding active
else // valid data from air pressure sensor
{
// ------------------------- P-Part ----------------------------
tmp_long = (HoehenWert - SollHoehe); // positive when too high
LIMIT_MIN_MAX(tmp_long, -32767L, 32767L); // avoid overflov when casting to int16_t
HeightDeviation = (int)(tmp_long); // positive when too high
tmp_long = (tmp_long * (long)Parameter_Hoehe_P) / 32L; // p-part
LIMIT_MIN_MAX(tmp_long, -127 * STICK_GAIN, 256 * STICK_GAIN); // more than the full range makes no sense
GasReduction = tmp_long;
// ------------------------- D-Part 1: Vario Meter ----------------------------
tmp_int = VarioMeter / 8;
LIMIT_MIN_MAX(tmp_int, -127, 128);
tmp_int = (tmp_int * (long)Parameter_Luftdruck_D) / 4L; // scale to d-gain parameter
LIMIT_MIN_MAX(tmp_int,-64 * STICK_GAIN, 64 * STICK_GAIN);
if(HeightTrimmingFlag) tmp_int /= 4; // reduce d-part while trimming setpoint
GasReduction += tmp_int;
} // EOF no baro range expanding
// ------------------------ D-Part 2: ACC-Z Integral ------------------------
if(Parameter_Hoehe_ACC_Wirkung)
{
tmp_long = ((Mess_Integral_Hoch / 128L) * (int32_t) Parameter_Hoehe_ACC_Wirkung) / (128L / STICK_GAIN);
LIMIT_MIN_MAX(tmp_long, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_long;
}
// ------------------------ D-Part 3: GpsZ ----------------------------------
tmp_int = (Parameter_Hoehe_GPS_Z * (int)FromNaviCtrl_Value.GpsZ)/128L;
LIMIT_MIN_MAX(tmp_int, -32 * STICK_GAIN, 64 * STICK_GAIN);
GasReduction += tmp_int;
GasReduction = (long)((long)GasReduction * HoverGas) / 512; // scale to the gas value
 
// ------------------------ ----------------------------------
HCGas -= GasReduction;
// limit deviation from hoover point within the target region
if(!HeightTrimming && HoverGas > 0) // height setpoint is not changed and hoover gas not zero
{
unsigned int tmp;
tmp = abs(HeightDeviation);
if(tmp <= 60)
{
LIMIT_MIN_MAX(HCGas, HoverGasMin, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (tmp - 60) / 32;
if(tmp > 15) tmp = 15;
if(HeightDeviation > 0)
{
tmp = (HoverGasMin * (16 - tmp)) / 16;
LIMIT_MIN_MAX(HCGas, tmp, HoverGasMax); // limit gas around the hoover point
}
else
{
tmp = (HoverGasMax * (tmp + 16)) / 16;
LIMIT_MIN_MAX(HCGas, HoverGasMin, tmp); // limit gas around the hoover point
}
}
}
// strech control output by inverse attitude projection 1/cos
// + 1/cos(angle) ++++++++++++++++++++++++++
tmp_long2 = (int32_t)HCGas;
tmp_long2 *= 8192L;
tmp_long2 /= CosAttitude;
HCGas = (int16_t)tmp_long2;
// update height control gas averaging
FilterHCGas = (FilterHCGas * (HC_GAS_AVERAGE - 1) + HCGas) / HC_GAS_AVERAGE;
// limit height control gas pd-control output
LIMIT_MIN_MAX(FilterHCGas, EE_Parameter.Hoehe_MinGas * STICK_GAIN, (MAX_GAS - 20) * STICK_GAIN);
// set GasMischanteil to HeightControlGasFilter
if(EE_Parameter.ExtraConfig & CFG2_HEIGHT_LIMIT)
{ // old version
LIMIT_MAX(FilterHCGas, GasMischanteil); // nicht mehr als Gas
}
GasMischanteil = FilterHCGas + (GasMischanteil - HoverGas) / 4;
}
}// EOF height control active
else // HC not active
{
//update hoover gas stick value when HC is not active
if(!EE_Parameter.Hoehe_StickNeutralPoint)
{
StickGasHover = HoverGas/STICK_GAIN; // rescale back to stick value
StickGasHover = (StickGasHover * UBat) / BattLowVoltageWarning;
}
else StickGasHover = EE_Parameter.Hoehe_StickNeutralPoint;
LIMIT_MIN_MAX(StickGasHover, 70, 150); // reserve some range for trim up and down
FilterHCGas = GasMischanteil;
}
 
// Hover gas estimation by averaging gas control output on small z-velocities
// this is done only if height contol option is selected in global config and aircraft is flying
if((FCFlags & FCFLAG_FLY))// && !(FCFlags & FCFLAG_NOTLANDUNG))
{
if(HoverGasFilter == 0 || StartTrigger == 1) HoverGasFilter = HOVER_GAS_AVERAGE * (unsigned long)(GasMischanteil); // init estimation
if(StartTrigger == 1) StartTrigger = 2;
tmp_long2 = (int32_t)GasMischanteil; // take current thrust
tmp_long2 *= CosAttitude; // apply attitude projection
tmp_long2 /= 8192;
// average vertical projected thrust
if(modell_fliegt < 4000) // the first 8 seconds
{ // reduce the time constant of averaging by factor of 4 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/16L);
HoverGasFilter += 16L * tmp_long2;
}
if(modell_fliegt < 8000) // the first 16 seconds
{ // reduce the time constant of averaging by factor of 2 to get much faster a stable value
HoverGasFilter -= HoverGasFilter/(HOVER_GAS_AVERAGE/4L);
HoverGasFilter += 4L * tmp_long2;
}
else //later
if(abs(VarioMeter) < 100) // only on small vertical speed
{
HoverGasFilter -= HoverGasFilter/HOVER_GAS_AVERAGE;
HoverGasFilter += tmp_long2;
}
HoverGas = (int16_t)(HoverGasFilter/HOVER_GAS_AVERAGE);
if(EE_Parameter.Hoehe_HoverBand)
{
int16_t band;
band = HoverGas / EE_Parameter.Hoehe_HoverBand; // the higher the parameter the smaller the range
HoverGasMin = HoverGas - band;
HoverGasMax = HoverGas + band;
}
else
{ // no limit
HoverGasMin = 0;
HoverGasMax = 1023;
}
}
else
{
StartTrigger = 0;
HoverGasFilter = 0;
HoverGas = 0;
}
}// EOF ParamSet.GlobalConfig & CFG_HEIGHT_CONTROL
// limit gas to parameter setting
LIMIT_MIN(GasMischanteil, (MIN_GAS + 10) * STICK_GAIN);
if(GasMischanteil > (MAX_GAS - 20) * STICK_GAIN) GasMischanteil = (MAX_GAS - 20) * STICK_GAIN;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// all BL-Ctrl connected?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(MissingMotor || Capacity.MinOfMaxPWM != 255)
if(modell_fliegt > 1 && modell_fliegt < 50 && GasMischanteil > 0)
{
modell_fliegt = 1;
GasMischanteil = (MIN_GAS + 10) * STICK_GAIN;
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Mischer und PI-Regler
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DebugOut.Analog[7] = GasMischanteil;
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Gier-Anteil
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GierMischanteil = MesswertGier - sollGier * STICK_GAIN; // Regler für Gier
#define MIN_GIERGAS (40*STICK_GAIN) // unter diesem Gaswert trotzdem Gieren
if(GasMischanteil > MIN_GIERGAS)
{
if(GierMischanteil > (GasMischanteil / 2)) GierMischanteil = GasMischanteil / 2;
if(GierMischanteil < -(GasMischanteil / 2)) GierMischanteil = -(GasMischanteil / 2);
}
else
{
if(GierMischanteil > (MIN_GIERGAS / 2)) GierMischanteil = MIN_GIERGAS / 2;
if(GierMischanteil < -(MIN_GIERGAS / 2)) GierMischanteil = -(MIN_GIERGAS / 2);
}
tmp_int = MAX_GAS*STICK_GAIN;
if(GierMischanteil > ((tmp_int - GasMischanteil))) GierMischanteil = ((tmp_int - GasMischanteil));
if(GierMischanteil < -((tmp_int - GasMischanteil))) GierMischanteil = -((tmp_int - GasMischanteil));
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Nick-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffNick = MesswertNick - StickNick; // Differenz bestimmen
if(IntegralFaktor) SummeNick += IntegralNickMalFaktor - StickNick; // I-Anteil bei Winkelregelung
else SummeNick += DiffNick; // I-Anteil bei HH
if(SummeNick > (STICK_GAIN * 16000L)) SummeNick = (STICK_GAIN * 16000L);
if(SummeNick < -(16000L * STICK_GAIN)) SummeNick = -(16000L * STICK_GAIN);
pd_ergebnis_nick = (EE_Parameter.Gyro_Stability * DiffNick) / 8 + SummeNick / Ki; // PI-Regler für Nick
// Motor Vorn
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
if(pd_ergebnis_nick > tmp_int) pd_ergebnis_nick = tmp_int;
if(pd_ergebnis_nick < -tmp_int) pd_ergebnis_nick = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Roll-Achse
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
DiffRoll = MesswertRoll - StickRoll; // Differenz bestimmen
if(IntegralFaktor) SummeRoll += IntegralRollMalFaktor - StickRoll;// I-Anteil bei Winkelregelung
else SummeRoll += DiffRoll; // I-Anteil bei HH
if(SummeRoll > (STICK_GAIN * 16000L)) SummeRoll = (STICK_GAIN * 16000L);
if(SummeRoll < -(16000L * STICK_GAIN)) SummeRoll = -(16000L * STICK_GAIN);
pd_ergebnis_roll = (EE_Parameter.Gyro_Stability * DiffRoll) / 8 + SummeRoll / Ki; // PI-Regler für Roll
tmp_int = (long)((long)Parameter_DynamicStability * (long)(GasMischanteil + abs(GierMischanteil)/2)) / 64;
if(pd_ergebnis_roll > tmp_int) pd_ergebnis_roll = tmp_int;
if(pd_ergebnis_roll < -tmp_int) pd_ergebnis_roll = -tmp_int;
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Universal Mixer
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
for(i=0; i<MAX_MOTORS; i++)
{
signed int tmp_int;
if(Mixer.Motor[i][0] > 0)
{
// Gas
if(Mixer.Motor[i][0] == 64) tmp_int = GasMischanteil; else tmp_int = ((long)GasMischanteil * Mixer.Motor[i][0]) / 64L;
// Nick
if(Mixer.Motor[i][1] == 64) tmp_int += pd_ergebnis_nick;
else if(Mixer.Motor[i][1] == -64) tmp_int -= pd_ergebnis_nick;
else tmp_int += ((long)pd_ergebnis_nick * Mixer.Motor[i][1]) / 64L;
// Roll
if(Mixer.Motor[i][2] == 64) tmp_int += pd_ergebnis_roll;
else if(Mixer.Motor[i][2] == -64) tmp_int -= pd_ergebnis_roll;
else tmp_int += ((long)pd_ergebnis_roll * Mixer.Motor[i][2]) / 64L;
// Gier
if(Mixer.Motor[i][3] == 64) tmp_int += GierMischanteil;
else if(Mixer.Motor[i][3] == -64) tmp_int -= GierMischanteil;
else tmp_int += ((long)GierMischanteil * Mixer.Motor[i][3]) / 64L;
 
if(tmp_int > tmp_motorwert[i]) tmp_int = (tmp_motorwert[i] + tmp_int) / 2; // MotorSmoothing
// else tmp_int = 2 * tmp_int - tmp_motorwert[i]; // MotorSmoothing
// Arthur P: the original code allowed the motor value to drop to 0 or negative values
// straight off, i.e. could amplify an intended decrease excessively while upregulation
// is dampened. The modification would still allow immediate drop below intended value
// but would dampen this. This would still allow for airbraking of the prop to have effect
// but it might lead to less sudden excessive drops in rpm with only gradual recovery.
// 090807 Arthur P: Due to problems with uart.c which still refers to user parameter 1 and 2 and
// possible timing issues with the shutter interval load, removed the shutter interval functions
// and switched to use of userparam6 for the motor smoothing.
// 091114 Inserted modification into 0.76g source code.
// 20100804 Modified v.0.80d code where motorsmoothing is no longer a separate function.
// Downsmoothing either uses default v.0.7x+ 150% downstep (user para 7 == 0),
// 50% downstep (user para 7 == 1 or 2), or downsteps of x% (userpara7 ==):
// 66.6% (3), 75% (4), 80% (5), 90% (10), 95% (20), 97.5% (40), 98% (50), 99% (100).
else
{
if(Parameter_UserParam7 < 2)
{ // Original function
tmp_int = 2 * tmp_int - tmp_motorwert[i];
}
else
{
// If userpara7 >= 2 then allow >= 50% of the intended step down to rapidly reach the intended value.
tmp_int = tmp_int + ((tmp_motorwert[i] - tmp_int)/Parameter_UserParam7);
}
}
 
LIMIT_MIN_MAX(tmp_int,MIN_GAS * 4,MAX_GAS * 4);
Motor[i].SetPoint = tmp_int / 4;
Motor[i].SetPointLowerBits = (tmp_int % 4)<<1; // (3 bits total)
tmp_motorwert[i] = tmp_int;
}
else
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
}
/branches/V0.80d-Arthur-P/fc.d
0,0 → 1,3
fc.o fc.d : fc.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h mymath.h isqrt.h
/branches/V0.80d-Arthur-P/fc.h
0,0 → 1,120
/*#######################################################################################
Flight Control
#######################################################################################*/
 
#ifndef _FC_H
#define _FC_H
//#define GIER_GRAD_FAKTOR 1291L // Abhängigkeit zwischen GyroIntegral und Winkel
//#define GIER_GRAD_FAKTOR 1160L
extern long GIER_GRAD_FAKTOR; // Abhängigkeit zwischen GyroIntegral und Winkel
#define STICK_GAIN 4
#define ACC_AMPLIFY 6
 
#define FCFLAG_MOTOR_RUN 0x01
#define FCFLAG_FLY 0x02
#define FCFLAG_CALIBRATE 0x04
#define FCFLAG_START 0x08
#define FCFLAG_NOTLANDUNG 0x10
#define FCFLAG_LOWBAT 0x20
#define FCFLAG_SPI_RX_ERR 0x40
#define FCFLAG_I2CERR 0x80
 
#define DEFEKT_G_NICK 0x01
#define DEFEKT_G_ROLL 0x02
#define DEFEKT_G_GIER 0x04
#define DEFEKT_A_NICK 0x08
#define DEFEKT_A_ROLL 0x10
#define DEFEKT_A_Z 0x20
#define DEFEKT_PRESSURE 0x40
#define DEFEKT_CAREFREE_ERR 0x80
 
#define DEFEKT_I2C 0x01
#define DEFEKT_BL_MISSING 0x02
#define DEFEKT_SPI_RX_ERR 0x04
#define DEFEKT_PPM_ERR 0x08
#define DEFEKT_MIXER_ERR 0x10
 
#define Poti1 Poti[0]
#define Poti2 Poti[1]
#define Poti3 Poti[2]
#define Poti4 Poti[3]
#define Poti5 Poti[4]
#define Poti6 Poti[5]
#define Poti7 Poti[6]
#define Poti8 Poti[7]
 
extern volatile unsigned char FCFlags;
extern unsigned char Sekunde,Minute;
extern unsigned int BaroExpandActive;
extern long IntegralNick,IntegralNick2;
extern long IntegralRoll,IntegralRoll2;
//extern int IntegralNick,IntegralNick2;
//extern int IntegralRoll,IntegralRoll2;
extern unsigned char Poti[9];
 
extern long Mess_IntegralNick,Mess_IntegralNick2;
extern long Mess_IntegralRoll,Mess_IntegralRoll2;
extern long IntegralAccNick,IntegralAccRoll;
extern long SummeNick,SummeRoll;
extern volatile long Mess_Integral_Hoch;
extern long Integral_Gier,Mess_Integral_Gier,Mess_Integral_Gier2;
extern int KompassValue;
extern int KompassStartwert;
extern int KompassRichtung;
extern unsigned char ControlHeading;
extern int TrimNick, TrimRoll;
extern long ErsatzKompass;
extern int ErsatzKompassInGrad; // Kompasswert in Grad
extern long HoehenWert;
extern long SollHoehe;
extern unsigned char CareFree;
extern int MesswertNick,MesswertRoll,MesswertGier;
extern int AdNeutralNick,AdNeutralRoll,AdNeutralGier, Mittelwert_AccNick, Mittelwert_AccRoll;
extern unsigned int NeutralAccX, NeutralAccY;
extern unsigned char HoehenReglerAktiv;
extern int NeutralAccZ;
extern long Umschlag180Nick, Umschlag180Roll;
extern signed int ExternStickNick,ExternStickRoll,ExternStickGier;
extern unsigned char Parameter_UserParam1,Parameter_UserParam2,Parameter_UserParam3,Parameter_UserParam4,Parameter_UserParam5,Parameter_UserParam6,Parameter_UserParam7,Parameter_UserParam8;
extern int NaviAccNick,NaviAccRoll,NaviCntAcc;
extern unsigned int modell_fliegt;
extern void MotorRegler(void);
extern void SendMotorData(void);
//void CalibrierMittelwert(void);
//void Mittelwert(void);
extern void SetNeutral(unsigned char AccAdjustment);
extern void Piep(unsigned char Anzahl, unsigned int dauer);
extern void CopyDebugValues(void);
 
extern unsigned char h,m,s;
extern volatile unsigned char Timeout ;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern int DiffNick,DiffRoll;
//extern int Poti1, Poti2, Poti3, Poti4;
extern volatile unsigned char SenderOkay;
extern int StickNick,StickRoll,StickGier;
extern char MotorenEin;
extern unsigned char Parameter_Servo3,Parameter_Servo4,Parameter_Servo5;
extern char VarioCharacter;
extern int HoverGas;
 
extern unsigned char Parameter_Luftdruck_D;
extern unsigned char Parameter_MaxHoehe;
extern unsigned char Parameter_Hoehe_P;
extern unsigned char Parameter_Hoehe_ACC_Wirkung;
extern unsigned char Parameter_KompassWirkung;
extern unsigned char Parameter_Gyro_P;
extern unsigned char Parameter_Gyro_I;
extern unsigned char Parameter_Gier_P;
extern unsigned char Parameter_ServoNickControl;
extern unsigned char Parameter_ServoRollControl;
extern unsigned char Parameter_AchsKopplung1;
extern unsigned char Parameter_AchsKopplung2;
//extern unsigned char Parameter_AchsGegenKopplung1;
extern unsigned char Parameter_J16Bitmask; // for the J16 Output
extern unsigned char Parameter_J16Timing; // for the J16 Output
extern unsigned char Parameter_J17Bitmask; // for the J17 Output
extern unsigned char Parameter_J17Timing; // for the J17 Output
extern signed char MixerTable[MAX_MOTORS][4];
#endif //_FC_H
 
/branches/V0.80d-Arthur-P/fc.lst
0,0 → 1,10192
1 .file "fc.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global VarioCharacter
11 .data
14 VarioCharacter:
15 0000 20 .byte 32
16 .global GIER_GRAD_FAKTOR
19 GIER_GRAD_FAKTOR:
20 0001 0B05 0000 .long 1291
21 .global FCFlags
22 .global FCFlags
23 .section .bss
26 FCFlags:
27 0000 00 .skip 1,0
28 .global modell_fliegt
29 .global modell_fliegt
32 modell_fliegt:
33 0001 0000 .skip 2,0
34 .global MaxStickRoll
35 .global MaxStickRoll
38 MaxStickRoll:
39 0003 0000 .skip 2,0
40 .global MaxStickNick
41 .global MaxStickNick
44 MaxStickNick:
45 0005 0000 .skip 2,0
46 .global ExternHoehenValue
47 .data
50 ExternHoehenValue:
51 0005 ECFF .word -20
52 .global ExternStickGier
53 .global ExternStickGier
54 .section .bss
57 ExternStickGier:
58 0007 0000 .skip 2,0
59 .global ExternStickRoll
60 .global ExternStickRoll
63 ExternStickRoll:
64 0009 0000 .skip 2,0
65 .global ExternStickNick
66 .global ExternStickNick
69 ExternStickNick:
70 000b 0000 .skip 2,0
71 .global CareFree
72 .global CareFree
75 CareFree:
76 000d 00 .skip 1,0
77 .global Parameter_DynamicStability
78 .data
81 Parameter_DynamicStability:
82 0007 64 .byte 100
83 .global Parameter_CouplingYawCorrection
86 Parameter_CouplingYawCorrection:
87 0008 40 .byte 64
88 .global Parameter_AchsKopplung2
91 Parameter_AchsKopplung2:
92 0009 41 .byte 65
93 .global Parameter_AchsKopplung1
96 Parameter_AchsKopplung1:
97 000a 5A .byte 90
98 .global Parameter_LoopGasLimit
101 Parameter_LoopGasLimit:
102 000b 46 .byte 70
103 .global Parameter_ServoRollControl
106 Parameter_ServoRollControl:
107 000c 64 .byte 100
108 .global Parameter_ServoNickControl
111 Parameter_ServoNickControl:
112 000d 64 .byte 100
113 .global Parameter_UserParam8
114 .global Parameter_UserParam8
115 .section .bss
118 Parameter_UserParam8:
119 000e 00 .skip 1,0
120 .global Parameter_UserParam7
121 .global Parameter_UserParam7
124 Parameter_UserParam7:
125 000f 00 .skip 1,0
126 .global Parameter_UserParam6
127 .global Parameter_UserParam6
130 Parameter_UserParam6:
131 0010 00 .skip 1,0
132 .global Parameter_UserParam5
133 .global Parameter_UserParam5
136 Parameter_UserParam5:
137 0011 00 .skip 1,0
138 .global Parameter_UserParam4
139 .global Parameter_UserParam4
142 Parameter_UserParam4:
143 0012 00 .skip 1,0
144 .global Parameter_UserParam3
145 .global Parameter_UserParam3
148 Parameter_UserParam3:
149 0013 00 .skip 1,0
150 .global Parameter_UserParam2
151 .global Parameter_UserParam2
154 Parameter_UserParam2:
155 0014 00 .skip 1,0
156 .global Parameter_UserParam1
157 .global Parameter_UserParam1
160 Parameter_UserParam1:
161 0015 00 .skip 1,0
162 .global Parameter_I_Faktor
163 .data
166 Parameter_I_Faktor:
167 000e 0A .byte 10
168 .global Parameter_Gier_P
171 Parameter_Gier_P:
172 000f 02 .byte 2
173 .global Parameter_Gyro_Gier_I
176 Parameter_Gyro_Gier_I:
177 0010 96 .byte -106
178 .global Parameter_Gyro_Gier_P
181 Parameter_Gyro_Gier_P:
182 0011 96 .byte -106
183 .global Parameter_Gyro_I
186 Parameter_Gyro_I:
187 0012 96 .byte -106
188 .global Parameter_Gyro_P
191 Parameter_Gyro_P:
192 0013 96 .byte -106
193 .global Parameter_Gyro_D
196 Parameter_Gyro_D:
197 0014 08 .byte 8
198 .global Parameter_Hoehe_GPS_Z
201 Parameter_Hoehe_GPS_Z:
202 0015 40 .byte 64
203 .global Parameter_KompassWirkung
206 Parameter_KompassWirkung:
207 0016 40 .byte 64
208 .global Parameter_Hoehe_ACC_Wirkung
211 Parameter_Hoehe_ACC_Wirkung:
212 0017 3A .byte 58
213 .global Parameter_Hoehe_P
216 Parameter_Hoehe_P:
217 0018 10 .byte 16
218 .global Parameter_MaxHoehe
221 Parameter_MaxHoehe:
222 0019 FB .byte -5
223 .global Parameter_Luftdruck_D
226 Parameter_Luftdruck_D:
227 001a 30 .byte 48
228 .global Looping_Oben
229 .global Looping_Oben
230 .section .bss
233 Looping_Oben:
234 0016 00 .skip 1,0
235 .global Looping_Unten
236 .global Looping_Unten
239 Looping_Unten:
240 0017 00 .skip 1,0
241 .global Looping_Rechts
242 .global Looping_Rechts
245 Looping_Rechts:
246 0018 00 .skip 1,0
247 .global Looping_Links
248 .global Looping_Links
251 Looping_Links:
252 0019 00 .skip 1,0
253 .global Looping_Roll
254 .global Looping_Roll
257 Looping_Roll:
258 001a 00 .skip 1,0
259 .global Looping_Nick
260 .global Looping_Nick
263 Looping_Nick:
264 001b 00 .skip 1,0
265 .global Ki
266 .data
269 Ki:
270 001b 3801 .word 312
271 .global HoverGas
272 .global HoverGas
273 .section .bss
276 HoverGas:
277 001c 0000 .skip 2,0
278 .global LageKorrekturNick
279 .global LageKorrekturNick
282 LageKorrekturNick:
283 001e 0000 .skip 2,0
284 .global LageKorrekturRoll
285 .global LageKorrekturRoll
288 LageKorrekturRoll:
289 0020 0000 .skip 2,0
290 .global SollHoehe
291 .global SollHoehe
294 SollHoehe:
295 0022 0000 0000 .skip 4,0
296 .global HoehenWert
297 .global HoehenWert
300 HoehenWert:
301 0026 0000 0000 .skip 4,0
302 .global StartTrigger
303 .global StartTrigger
306 StartTrigger:
307 002a 00 .skip 1,0
308 .global MotorenEin
309 .global MotorenEin
312 MotorenEin:
313 002b 00 .skip 1,0
314 .global StickGas
315 .global StickGas
318 StickGas:
319 002c 0000 .skip 2,0
320 .global StickGier
321 .global StickGier
324 StickGier:
325 002e 0000 .skip 2,0
326 .global StickRoll
327 .global StickRoll
330 StickRoll:
331 0030 0000 .skip 2,0
332 .global StickNick
333 .global StickNick
336 StickNick:
337 0032 0000 .skip 2,0
338 .global SenderOkay
339 .global SenderOkay
342 SenderOkay:
343 0034 00 .skip 1,0
344 .global Poti
345 .global Poti
348 Poti:
349 0035 0000 0000 .skip 9,0
349 0000 0000
349 00
350 .global GierGyroFehler
351 .global GierGyroFehler
354 GierGyroFehler:
355 003e 0000 .skip 2,0
356 .global Umschlag180Roll
357 .data
360 Umschlag180Roll:
361 001d 90D0 0300 .long 250000
362 .global Umschlag180Nick
365 Umschlag180Nick:
366 0021 90D0 0300 .long 250000
367 .global TrichterFlug
368 .global TrichterFlug
369 .section .bss
372 TrichterFlug:
373 0040 00 .skip 1,0
374 .global HoehenReglerAktiv
375 .global HoehenReglerAktiv
378 HoehenReglerAktiv:
379 0041 00 .skip 1,0
380 .global KompassSignalSchlecht
381 .data
384 KompassSignalSchlecht:
385 0025 F401 .word 500
386 .global KompassRichtung
387 .global KompassRichtung
388 .section .bss
391 KompassRichtung:
392 0042 0000 .skip 2,0
393 .global KompassStartwert
394 .global KompassStartwert
397 KompassStartwert:
398 0044 0000 .skip 2,0
399 .global KompassValue
400 .global KompassValue
403 KompassValue:
404 0046 0000 .skip 2,0
405 .global Mess_Integral_Hoch
406 .global Mess_Integral_Hoch
409 Mess_Integral_Hoch:
410 0048 0000 0000 .skip 4,0
411 .global SummeRoll
412 .global SummeRoll
415 SummeRoll:
416 004c 0000 0000 .skip 4,0
417 .global SummeNick
418 .global SummeNick
421 SummeNick:
422 0050 0000 0000 .skip 4,0
423 .global Mess_Integral_Gier2
424 .global Mess_Integral_Gier2
427 Mess_Integral_Gier2:
428 0054 0000 0000 .skip 4,0
429 .global Mess_Integral_Gier
430 .global Mess_Integral_Gier
433 Mess_Integral_Gier:
434 0058 0000 0000 .skip 4,0
435 .global Mess_IntegralRoll2
436 .global Mess_IntegralRoll2
439 Mess_IntegralRoll2:
440 005c 0000 0000 .skip 4,0
441 .global Mess_IntegralRoll
442 .global Mess_IntegralRoll
445 Mess_IntegralRoll:
446 0060 0000 0000 .skip 4,0
447 .global Mess_IntegralNick2
448 .global Mess_IntegralNick2
451 Mess_IntegralNick2:
452 0064 0000 0000 .skip 4,0
453 .global Mess_IntegralNick
454 .global Mess_IntegralNick
457 Mess_IntegralNick:
458 0068 0000 0000 .skip 4,0
459 .global Integral_Gier
460 .global Integral_Gier
463 Integral_Gier:
464 006c 0000 0000 .skip 4,0
465 .global IntegralAccZ
466 .global IntegralAccZ
469 IntegralAccZ:
470 0070 0000 0000 .skip 4,0
471 .global IntegralAccRoll
472 .global IntegralAccRoll
475 IntegralAccRoll:
476 0074 0000 0000 .skip 4,0
477 .global IntegralAccNick
478 .global IntegralAccNick
481 IntegralAccNick:
482 0078 0000 0000 .skip 4,0
483 .global IntegralRoll2
484 .global IntegralRoll2
487 IntegralRoll2:
488 007c 0000 0000 .skip 4,0
489 .global IntegralRoll
490 .global IntegralRoll
493 IntegralRoll:
494 0080 0000 0000 .skip 4,0
495 .global IntegralNick2
496 .global IntegralNick2
499 IntegralNick2:
500 0084 0000 0000 .skip 4,0
501 .global IntegralNick
502 .global IntegralNick
505 IntegralNick:
506 0088 0000 0000 .skip 4,0
507 .global ControlHeading
508 .global ControlHeading
511 ControlHeading:
512 008c 00 .skip 1,0
513 .global NeutralAccZ
514 .global NeutralAccZ
517 NeutralAccZ:
518 008d 0000 .skip 2,0
519 .global NaviCntAcc
520 .global NaviCntAcc
523 NaviCntAcc:
524 008f 0000 .skip 2,0
525 .global NeutralAccY
526 .global NeutralAccY
529 NeutralAccY:
530 0091 0000 .skip 2,0
531 .global NeutralAccX
532 .global NeutralAccX
535 NeutralAccX:
536 0093 0000 .skip 2,0
537 .global StartNeutralNick
538 .global StartNeutralNick
541 StartNeutralNick:
542 0095 0000 .skip 2,0
543 .global StartNeutralRoll
544 .global StartNeutralRoll
547 StartNeutralRoll:
548 0097 0000 .skip 2,0
549 .global AdNeutralGier
550 .global AdNeutralGier
553 AdNeutralGier:
554 0099 0000 .skip 2,0
555 .global AdNeutralRoll
556 .global AdNeutralRoll
559 AdNeutralRoll:
560 009b 0000 .skip 2,0
561 .global AdNeutralNick
562 .global AdNeutralNick
565 AdNeutralNick:
566 009d 0000 .skip 2,0
567 .global BaroExpandActive
568 .global BaroExpandActive
571 BaroExpandActive:
572 009f 0000 .skip 2,0
573 .text
574 .global CopyDebugValues
576 CopyDebugValues:
577 /* prologue: frame size=0 */
578 0000 EF92 push r14
579 0002 FF92 push r15
580 0004 0F93 push r16
581 0006 1F93 push r17
582 /* prologue end (size=4) */
583 0008 8091 0000 lds r24,EE_Parameter+28
584 000c 9927 clr r25
585 000e 880F lsl r24
586 0010 991F rol r25
587 0012 880F lsl r24
588 0014 991F rol r25
589 0016 7C01 movw r14,r24
590 0018 0027 clr r16
591 001a F7FC sbrc r15,7
592 001c 0095 com r16
593 001e 102F mov r17,r16
594 0020 8091 0000 lds r24,IntegralNick
595 0024 9091 0000 lds r25,(IntegralNick)+1
596 0028 A091 0000 lds r26,(IntegralNick)+2
597 002c B091 0000 lds r27,(IntegralNick)+3
598 0030 BC01 movw r22,r24
599 0032 CD01 movw r24,r26
600 0034 A801 movw r20,r16
601 0036 9701 movw r18,r14
602 0038 0E94 0000 call __divmodsi4
603 003c 3093 0000 sts (DebugOut+2)+1,r19
604 0040 2093 0000 sts DebugOut+2,r18
605 0044 8091 0000 lds r24,IntegralRoll
606 0048 9091 0000 lds r25,(IntegralRoll)+1
607 004c A091 0000 lds r26,(IntegralRoll)+2
608 0050 B091 0000 lds r27,(IntegralRoll)+3
609 0054 BC01 movw r22,r24
610 0056 CD01 movw r24,r26
611 0058 A801 movw r20,r16
612 005a 9701 movw r18,r14
613 005c 0E94 0000 call __divmodsi4
614 0060 3093 0000 sts (DebugOut+4)+1,r19
615 0064 2093 0000 sts DebugOut+4,r18
616 0068 8091 0000 lds r24,Mittelwert_AccNick
617 006c 9091 0000 lds r25,(Mittelwert_AccNick)+1
618 0070 97FD sbrc r25,7
619 0072 0396 adiw r24,3
620 .L2:
621 0074 9595 asr r25
622 0076 8795 ror r24
623 0078 9595 asr r25
624 007a 8795 ror r24
625 007c 9093 0000 sts (DebugOut+6)+1,r25
626 0080 8093 0000 sts DebugOut+6,r24
627 0084 8091 0000 lds r24,Mittelwert_AccRoll
628 0088 9091 0000 lds r25,(Mittelwert_AccRoll)+1
629 008c 97FD sbrc r25,7
630 008e 0396 adiw r24,3
631 .L3:
632 0090 9595 asr r25
633 0092 8795 ror r24
634 0094 9595 asr r25
635 0096 8795 ror r24
636 0098 9093 0000 sts (DebugOut+8)+1,r25
637 009c 8093 0000 sts DebugOut+8,r24
638 00a0 8091 0000 lds r24,AdNeutralGier
639 00a4 9091 0000 lds r25,(AdNeutralGier)+1
640 00a8 2091 0000 lds r18,AdWertGier
641 00ac 3091 0000 lds r19,(AdWertGier)+1
642 00b0 821B sub r24,r18
643 00b2 930B sbc r25,r19
644 00b4 9093 0000 sts (DebugOut+10)+1,r25
645 00b8 8093 0000 sts DebugOut+10,r24
646 00bc 8091 0000 lds r24,HoehenWert
647 00c0 9091 0000 lds r25,(HoehenWert)+1
648 00c4 A091 0000 lds r26,(HoehenWert)+2
649 00c8 B091 0000 lds r27,(HoehenWert)+3
650 00cc BC01 movw r22,r24
651 00ce CD01 movw r24,r26
652 00d0 25E0 ldi r18,lo8(5)
653 00d2 30E0 ldi r19,hi8(5)
654 00d4 40E0 ldi r20,hlo8(5)
655 00d6 50E0 ldi r21,hhi8(5)
656 00d8 0E94 0000 call __divmodsi4
657 00dc 3093 0000 sts (DebugOut+12)+1,r19
658 00e0 2093 0000 sts DebugOut+12,r18
659 00e4 8091 0000 lds r24,AdWertAccHoch
660 00e8 9091 0000 lds r25,(AdWertAccHoch)+1
661 00ec 9093 0000 sts (DebugOut+14)+1,r25
662 00f0 8093 0000 sts DebugOut+14,r24
663 00f4 8091 0000 lds r24,KompassValue
664 00f8 9091 0000 lds r25,(KompassValue)+1
665 00fc 9093 0000 sts (DebugOut+18)+1,r25
666 0100 8093 0000 sts DebugOut+18,r24
667 0104 8091 0000 lds r24,UBat
668 0108 9091 0000 lds r25,(UBat)+1
669 010c 9093 0000 sts (DebugOut+20)+1,r25
670 0110 8093 0000 sts DebugOut+20,r24
671 0114 8091 0000 lds r24,SenderOkay
672 0118 9927 clr r25
673 011a 9093 0000 sts (DebugOut+22)+1,r25
674 011e 8093 0000 sts DebugOut+22,r24
675 0122 8091 0000 lds r24,ErsatzKompass
676 0126 9091 0000 lds r25,(ErsatzKompass)+1
677 012a A091 0000 lds r26,(ErsatzKompass)+2
678 012e B091 0000 lds r27,(ErsatzKompass)+3
679 0132 2091 0000 lds r18,GIER_GRAD_FAKTOR
680 0136 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
681 013a 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
682 013e 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
683 0142 BC01 movw r22,r24
684 0144 CD01 movw r24,r26
685 0146 0E94 0000 call __divmodsi4
686 014a 3093 0000 sts (DebugOut+24)+1,r19
687 014e 2093 0000 sts DebugOut+24,r18
688 0152 8091 0000 lds r24,Motor+1
689 0156 9927 clr r25
690 0158 9093 0000 sts (DebugOut+26)+1,r25
691 015c 8093 0000 sts DebugOut+26,r24
692 0160 8091 0000 lds r24,Motor+9
693 0164 9927 clr r25
694 0166 9093 0000 sts (DebugOut+28)+1,r25
695 016a 8093 0000 sts DebugOut+28,r24
696 016e 8091 0000 lds r24,Motor+17
697 0172 9927 clr r25
698 0174 9093 0000 sts (DebugOut+30)+1,r25
699 0178 8093 0000 sts DebugOut+30,r24
700 017c 8091 0000 lds r24,Motor+25
701 0180 9927 clr r25
702 0182 9093 0000 sts (DebugOut+32)+1,r25
703 0186 8093 0000 sts DebugOut+32,r24
704 018a 8091 0000 lds r24,ServoNickValue
705 018e 9091 0000 lds r25,(ServoNickValue)+1
706 0192 9093 0000 sts (DebugOut+42)+1,r25
707 0196 8093 0000 sts DebugOut+42,r24
708 019a 8091 0000 lds r24,Capacity
709 019e 9091 0000 lds r25,(Capacity)+1
710 01a2 9093 0000 sts (DebugOut+46)+1,r25
711 01a6 8093 0000 sts DebugOut+46,r24
712 01aa 8091 0000 lds r24,Capacity+4
713 01ae 9091 0000 lds r25,(Capacity+4)+1
714 01b2 9093 0000 sts (DebugOut+48)+1,r25
715 01b6 8093 0000 sts DebugOut+48,r24
716 01ba 8091 0000 lds r24,Capacity+6
717 01be 9927 clr r25
718 01c0 9093 0000 sts (DebugOut+60)+1,r25
719 01c4 8093 0000 sts DebugOut+60,r24
720 01c8 8091 0000 lds r24,GPS_Nick
721 01cc 9091 0000 lds r25,(GPS_Nick)+1
722 01d0 9093 0000 sts (DebugOut+62)+1,r25
723 01d4 8093 0000 sts DebugOut+62,r24
724 01d8 8091 0000 lds r24,GPS_Roll
725 01dc 9091 0000 lds r25,(GPS_Roll)+1
726 01e0 9093 0000 sts (DebugOut+64)+1,r25
727 01e4 8093 0000 sts DebugOut+64,r24
728 01e8 8091 0000 lds r24,VersionInfo+5
729 01ec 8823 tst r24
730 01ee 21F4 brne .L5
731 01f0 8091 0000 lds r24,VersionInfo+6
732 01f4 8823 tst r24
733 01f6 21F0 breq .L4
734 .L5:
735 01f8 8091 0000 lds r24,DebugOut+1
736 01fc 8160 ori r24,lo8(1)
737 01fe 03C0 rjmp .L7
738 .L4:
739 0200 8091 0000 lds r24,DebugOut+1
740 0204 8E7F andi r24,lo8(-2)
741 .L7:
742 0206 8093 0000 sts DebugOut+1,r24
743 /* epilogue: frame size=0 */
744 020a 1F91 pop r17
745 020c 0F91 pop r16
746 020e FF90 pop r15
747 0210 EF90 pop r14
748 0212 0895 ret
749 /* epilogue end (size=5) */
750 /* function CopyDebugValues size 268 (259) */
752 .global Piep
754 Piep:
755 /* prologue: frame size=0 */
756 0214 1F93 push r17
757 0216 CF93 push r28
758 0218 DF93 push r29
759 /* prologue end (size=3) */
760 021a 182F mov r17,r24
761 021c EB01 movw r28,r22
762 021e 8091 0000 lds r24,MotorenEin
763 0222 8823 tst r24
764 0224 A1F4 brne .L8
765 0226 1150 subi r17,lo8(-(-1))
766 0228 1F3F cpi r17,lo8(-1)
767 022a 89F0 breq .L8
768 .L15:
769 022c D093 0000 sts (beeptime)+1,r29
770 0230 C093 0000 sts beeptime,r28
771 .L12:
772 0234 8091 0000 lds r24,beeptime
773 0238 9091 0000 lds r25,(beeptime)+1
774 023c 892B or r24,r25
775 023e D1F7 brne .L12
776 0240 CE01 movw r24,r28
777 0242 8C0F add r24,r28
778 0244 9D1F adc r25,r29
779 0246 0E94 0000 call Delay_ms
780 024a 1150 subi r17,1
781 024c 78F7 brcc .L15
782 .L8:
783 /* epilogue: frame size=0 */
784 024e DF91 pop r29
785 0250 CF91 pop r28
786 0252 1F91 pop r17
787 0254 0895 ret
788 /* epilogue end (size=4) */
789 /* function Piep size 34 (27) */
791 .global CalibrierMittelwert
793 CalibrierMittelwert:
794 /* prologue: frame size=0 */
795 0256 CF93 push r28
796 0258 DF93 push r29
797 /* prologue end (size=2) */
798 025a 8091 0000 lds r24,PlatinenVersion
799 025e 8D30 cpi r24,lo8(13)
800 0260 11F4 brne .L18
801 0262 0E94 0000 call SucheGyroOffset
802 .L18:
803 0266 1092 7A00 sts 122,__zero_reg__
804 026a 8091 0000 lds r24,AdWertNick
805 026e 9091 0000 lds r25,(AdWertNick)+1
806 0272 9093 0000 sts (MesswertNick)+1,r25
807 0276 8093 0000 sts MesswertNick,r24
808 027a 8091 0000 lds r24,AdWertRoll
809 027e 9091 0000 lds r25,(AdWertRoll)+1
810 0282 9093 0000 sts (MesswertRoll)+1,r25
811 0286 8093 0000 sts MesswertRoll,r24
812 028a 8091 0000 lds r24,AdWertGier
813 028e 9091 0000 lds r25,(AdWertGier)+1
814 0292 9093 0000 sts (MesswertGier)+1,r25
815 0296 8093 0000 sts MesswertGier,r24
816 029a 2091 0000 lds r18,AdWertAccNick
817 029e 3091 0000 lds r19,(AdWertAccNick)+1
818 02a2 C901 movw r24,r18
819 02a4 880F lsl r24
820 02a6 991F rol r25
821 02a8 880F lsl r24
822 02aa 991F rol r25
823 02ac 820F add r24,r18
824 02ae 931F adc r25,r19
825 02b0 820F add r24,r18
826 02b2 931F adc r25,r19
827 02b4 9093 0000 sts (Mittelwert_AccNick)+1,r25
828 02b8 8093 0000 sts Mittelwert_AccNick,r24
829 02bc 2091 0000 lds r18,AdWertAccRoll
830 02c0 3091 0000 lds r19,(AdWertAccRoll)+1
831 02c4 C901 movw r24,r18
832 02c6 880F lsl r24
833 02c8 991F rol r25
834 02ca 880F lsl r24
835 02cc 991F rol r25
836 02ce 820F add r24,r18
837 02d0 931F adc r25,r19
838 02d2 820F add r24,r18
839 02d4 931F adc r25,r19
840 02d6 9093 0000 sts (Mittelwert_AccRoll)+1,r25
841 02da 8093 0000 sts Mittelwert_AccRoll,r24
842 02de 8FEC ldi r24,lo8(-49)
843 02e0 8093 7A00 sts 122,r24
844 02e4 A0E0 ldi r26,lo8(Poti)
845 02e6 B0E0 ldi r27,hi8(Poti)
846 02e8 C0E0 ldi r28,lo8(EE_Parameter+5)
847 02ea D0E0 ldi r29,hi8(EE_Parameter+5)
848 02ec 97E0 ldi r25,lo8(7)
849 .L28:
850 02ee 8991 ld r24,Y+
851 02f0 E82F mov r30,r24
852 02f2 FF27 clr r31
853 02f4 EE0F add r30,r30
854 02f6 FF1F adc r31,r31
855 02f8 E050 subi r30,lo8(-(PPM_in))
856 02fa F040 sbci r31,hi8(-(PPM_in))
857 02fc 0190 ld __tmp_reg__,Z+
858 02fe F081 ld r31,Z
859 0300 E02D mov r30,__tmp_reg__
860 0302 E259 subi r30,lo8(-(110))
861 0304 FF4F sbci r31,hi8(-(110))
862 0306 1E16 cp __zero_reg__,r30
863 0308 1F06 cpc __zero_reg__,r31
864 030a 1CF0 brlt .L22
865 030c E0E0 ldi r30,lo8(0)
866 030e F0E0 ldi r31,hi8(0)
867 0310 05C0 rjmp .L23
868 .L22:
869 0312 EF3F cpi r30,255
870 0314 F105 cpc r31,__zero_reg__
871 0316 14F0 brlt .L23
872 0318 EFEF ldi r30,lo8(255)
873 031a F0E0 ldi r31,hi8(255)
874 .L23:
875 031c 8C91 ld r24,X
876 031e 282F mov r18,r24
877 0320 3327 clr r19
878 0322 E217 cp r30,r18
879 0324 F307 cpc r31,r19
880 0326 14F4 brge .L25
881 0328 8150 subi r24,lo8(-(-1))
882 032a 04C0 rjmp .L31
883 .L25:
884 032c 2E17 cp r18,r30
885 032e 3F07 cpc r19,r31
886 0330 14F4 brge .L21
887 0332 8F5F subi r24,lo8(-(1))
888 .L31:
889 0334 8C93 st X,r24
890 .L21:
891 0336 9150 subi r25,lo8(-(-1))
892 0338 1196 adiw r26,1
893 033a 97FF sbrs r25,7
894 033c D8CF rjmp .L28
895 033e 8091 0000 lds r24,EE_Parameter+63
896 0342 9927 clr r25
897 0344 AA27 clr r26
898 0346 BB27 clr r27
899 0348 BC01 movw r22,r24
900 034a CD01 movw r24,r26
901 034c 24EC ldi r18,lo8(2500)
902 034e 39E0 ldi r19,hi8(2500)
903 0350 40E0 ldi r20,hlo8(2500)
904 0352 50E0 ldi r21,hhi8(2500)
905 0354 0E94 0000 call __mulsi3
906 0358 DC01 movw r26,r24
907 035a CB01 movw r24,r22
908 035c 8093 0000 sts Umschlag180Nick,r24
909 0360 9093 0000 sts (Umschlag180Nick)+1,r25
910 0364 A093 0000 sts (Umschlag180Nick)+2,r26
911 0368 B093 0000 sts (Umschlag180Nick)+3,r27
912 036c 8091 0000 lds r24,EE_Parameter+64
913 0370 9927 clr r25
914 0372 AA27 clr r26
915 0374 BB27 clr r27
916 0376 BC01 movw r22,r24
917 0378 CD01 movw r24,r26
918 037a 0E94 0000 call __mulsi3
919 037e DC01 movw r26,r24
920 0380 CB01 movw r24,r22
921 0382 8093 0000 sts Umschlag180Roll,r24
922 0386 9093 0000 sts (Umschlag180Roll)+1,r25
923 038a A093 0000 sts (Umschlag180Roll)+2,r26
924 038e B093 0000 sts (Umschlag180Roll)+3,r27
925 /* epilogue: frame size=0 */
926 0392 DF91 pop r29
927 0394 CF91 pop r28
928 0396 0895 ret
929 /* epilogue end (size=3) */
930 /* function CalibrierMittelwert size 161 (156) */
932 .section .progmem.data,"a",@progbits
935 __c.40:
936 0000 0A0D 4143 .string "\n\rACC not calibrated!\r\n"
936 4320 6E6F
936 7420 6361
936 6C69 6272
936 6174 6564
937 .text
938 .global SetNeutral
940 SetNeutral:
941 /* prologue: frame size=0 */
942 0398 A0E0 ldi r26,lo8(0)
943 039a B0E0 ldi r27,hi8(0)
944 039c E0E0 ldi r30,pm_lo8(1f)
945 039e F0E0 ldi r31,pm_hi8(1f)
946 03a0 0C94 0000 jmp __prologue_saves__+12
947 1:
948 /* prologue end (size=6) */
949 03a4 882E mov r8,r24
950 03a6 C0E0 ldi r28,lo8(0)
951 03a8 D0E0 ldi r29,hi8(0)
952 03aa 7E01 movw r14,r28
953 03ac 6E01 movw r12,r28
954 03ae 1092 0000 sts VersionInfo+5,__zero_reg__
955 03b2 469A sbi 40-0x20,6
956 03b4 D093 0000 sts (NeutralAccX)+1,r29
957 03b8 C093 0000 sts NeutralAccX,r28
958 03bc D093 0000 sts (NeutralAccY)+1,r29
959 03c0 C093 0000 sts NeutralAccY,r28
960 03c4 D093 0000 sts (NeutralAccZ)+1,r29
961 03c8 C093 0000 sts NeutralAccZ,r28
962 03cc D093 0000 sts (AdNeutralNick)+1,r29
963 03d0 C093 0000 sts AdNeutralNick,r28
964 03d4 D093 0000 sts (AdNeutralRoll)+1,r29
965 03d8 C093 0000 sts AdNeutralRoll,r28
966 03dc D093 0000 sts (AdNeutralGier)+1,r29
967 03e0 C093 0000 sts AdNeutralGier,r28
968 03e4 1092 0000 sts Parameter_AchsKopplung1,__zero_reg__
969 03e8 1092 0000 sts Parameter_AchsKopplung2,__zero_reg__
970 03ec 1092 0000 sts ExpandBaro,__zero_reg__
971 03f0 0E94 0000 call CalibrierMittelwert
972 03f4 84E6 ldi r24,lo8(100)
973 03f6 90E0 ldi r25,hi8(100)
974 03f8 0E94 0000 call Delay_ms_Mess
975 03fc 0E94 0000 call CalibrierMittelwert
976 0400 8091 0000 lds r24,EE_Parameter+13
977 0404 80FF sbrs r24,0
978 0406 10C0 rjmp .L33
979 0408 8091 0000 lds r24,MessLuftdruck
980 040c 9091 0000 lds r25,(MessLuftdruck)+1
981 0410 875B subi r24,lo8(951)
982 0412 9340 sbci r25,hi8(951)
983 0414 38F4 brsh .L35
984 0416 8091 0000 lds r24,MessLuftdruck
985 041a 9091 0000 lds r25,(MessLuftdruck)+1
986 041e 8E5E subi r24,lo8(750)
987 0420 9240 sbci r25,hi8(750)
988 0422 10F4 brsh .L33
989 .L35:
990 0424 0E94 0000 call SucheLuftruckOffset
991 .L33:
992 0428 0FE1 ldi r16,lo8(31)
993 .L39:
994 042a 8AE0 ldi r24,lo8(10)
995 042c 90E0 ldi r25,hi8(10)
996 042e 0E94 0000 call Delay_ms_Mess
997 0432 8091 0000 lds r24,AdWertGier
998 0436 9091 0000 lds r25,(AdWertGier)+1
999 043a C80F add r28,r24
1000 043c D91F adc r29,r25
1001 043e 8091 0000 lds r24,AdWertNick
1002 0442 9091 0000 lds r25,(AdWertNick)+1
1003 0446 E80E add r14,r24
1004 0448 F91E adc r15,r25
1005 044a 8091 0000 lds r24,AdWertRoll
1006 044e 9091 0000 lds r25,(AdWertRoll)+1
1007 0452 C80E add r12,r24
1008 0454 D91E adc r13,r25
1009 0456 0150 subi r16,lo8(-(-1))
1010 0458 07FF sbrs r16,7
1011 045a E7CF rjmp .L39
1012 045c 9701 movw r18,r14
1013 045e 205F subi r18,lo8(-(16))
1014 0460 3F4F sbci r19,hi8(-(16))
1015 0462 3695 lsr r19
1016 0464 2795 ror r18
1017 0466 3695 lsr r19
1018 0468 2795 ror r18
1019 046a 3093 0000 sts (AdNeutralNick)+1,r19
1020 046e 2093 0000 sts AdNeutralNick,r18
1021 0472 C601 movw r24,r12
1022 0474 4096 adiw r24,16
1023 0476 9695 lsr r25
1024 0478 8795 ror r24
1025 047a 9695 lsr r25
1026 047c 8795 ror r24
1027 047e 9093 0000 sts (AdNeutralRoll)+1,r25
1028 0482 8093 0000 sts AdNeutralRoll,r24
1029 0486 6096 adiw r28,16
1030 0488 F5E0 ldi r31,5
1031 048a D695 1: lsr r29
1032 048c C795 ror r28
1033 048e FA95 dec r31
1034 0490 E1F7 brne 1b
1035 0492 D093 0000 sts (AdNeutralGier)+1,r29
1036 0496 C093 0000 sts AdNeutralGier,r28
1037 049a 9093 0000 sts (StartNeutralRoll)+1,r25
1038 049e 8093 0000 sts StartNeutralRoll,r24
1039 04a2 3093 0000 sts (StartNeutralNick)+1,r19
1040 04a6 2093 0000 sts StartNeutralNick,r18
1041 04aa 8820 tst r8
1042 04ac 09F4 brne .+2
1043 04ae 41C0 rjmp .L40
1044 04b0 8091 0000 lds r24,Mittelwert_AccNick
1045 04b4 9091 0000 lds r25,(Mittelwert_AccNick)+1
1046 04b8 97FF sbrs r25,7
1047 04ba 03C0 rjmp .L41
1048 04bc 9095 com r25
1049 04be 8195 neg r24
1050 04c0 9F4F sbci r25,lo8(-1)
1051 .L41:
1052 04c2 6CE0 ldi r22,lo8(12)
1053 04c4 70E0 ldi r23,hi8(12)
1054 04c6 0E94 0000 call __divmodhi4
1055 04ca 9B01 movw r18,r22
1056 04cc 7093 0000 sts (NeutralAccX)+1,r23
1057 04d0 6093 0000 sts NeutralAccX,r22
1058 04d4 8091 0000 lds r24,Mittelwert_AccRoll
1059 04d8 9091 0000 lds r25,(Mittelwert_AccRoll)+1
1060 04dc 97FF sbrs r25,7
1061 04de 03C0 rjmp .L42
1062 04e0 9095 com r25
1063 04e2 8195 neg r24
1064 04e4 9F4F sbci r25,lo8(-1)
1065 .L42:
1066 04e6 6CE0 ldi r22,lo8(12)
1067 04e8 70E0 ldi r23,hi8(12)
1068 04ea 0E94 0000 call __divmodhi4
1069 04ee 7093 0000 sts (NeutralAccY)+1,r23
1070 04f2 6093 0000 sts NeutralAccY,r22
1071 04f6 8091 0000 lds r24,Aktuell_az
1072 04fa 9091 0000 lds r25,(Aktuell_az)+1
1073 04fe 9093 0000 sts (NeutralAccZ)+1,r25
1074 0502 8093 0000 sts NeutralAccZ,r24
1075 0506 B901 movw r22,r18
1076 0508 84E0 ldi r24,lo8(4)
1077 050a 90E0 ldi r25,hi8(4)
1078 050c 0E94 0000 call SetParamWord
1079 0510 6091 0000 lds r22,NeutralAccY
1080 0514 7091 0000 lds r23,(NeutralAccY)+1
1081 0518 86E0 ldi r24,lo8(6)
1082 051a 90E0 ldi r25,hi8(6)
1083 051c 0E94 0000 call SetParamWord
1084 0520 6091 0000 lds r22,NeutralAccZ
1085 0524 7091 0000 lds r23,(NeutralAccZ)+1
1086 0528 88E0 ldi r24,lo8(8)
1087 052a 90E0 ldi r25,hi8(8)
1088 052c 0E94 0000 call SetParamWord
1089 0530 65C0 rjmp .L43
1090 .L40:
1091 0532 84E0 ldi r24,lo8(4)
1092 0534 90E0 ldi r25,hi8(4)
1093 0536 0E94 0000 call GetParamWord
1094 053a 9093 0000 sts (NeutralAccX)+1,r25
1095 053e 8093 0000 sts NeutralAccX,r24
1096 0542 86E0 ldi r24,lo8(6)
1097 0544 90E0 ldi r25,hi8(6)
1098 0546 0E94 0000 call GetParamWord
1099 054a 9093 0000 sts (NeutralAccY)+1,r25
1100 054e 8093 0000 sts NeutralAccY,r24
1101 0552 88E0 ldi r24,lo8(8)
1102 0554 90E0 ldi r25,hi8(8)
1103 0556 0E94 0000 call GetParamWord
1104 055a 9C01 movw r18,r24
1105 055c 9093 0000 sts (NeutralAccZ)+1,r25
1106 0560 8093 0000 sts NeutralAccZ,r24
1107 0564 8091 0000 lds r24,NeutralAccX
1108 0568 9091 0000 lds r25,(NeutralAccX)+1
1109 056c 8150 subi r24,lo8(2049)
1110 056e 9840 sbci r25,hi8(2049)
1111 0570 50F4 brsh .L45
1112 0572 8091 0000 lds r24,NeutralAccY
1113 0576 9091 0000 lds r25,(NeutralAccY)+1
1114 057a 8150 subi r24,lo8(2049)
1115 057c 9840 sbci r25,hi8(2049)
1116 057e 18F4 brsh .L45
1117 0580 2150 subi r18,lo8(1025)
1118 0582 3440 sbci r19,hi8(1025)
1119 0584 D8F1 brlo .L43
1120 .L45:
1121 0586 80E0 ldi r24,lo8(__c.40)
1122 0588 90E0 ldi r25,hi8(__c.40)
1123 058a 9F93 push r25
1124 058c 8F93 push r24
1125 058e 80E0 ldi r24,lo8(pm(uart_putchar))
1126 0590 90E0 ldi r25,hi8(pm(uart_putchar))
1127 0592 9F93 push r25
1128 0594 8F93 push r24
1129 0596 E091 0000 lds r30,_printf_P
1130 059a F091 0000 lds r31,(_printf_P)+1
1131 059e 0995 icall
1132 05a0 8091 0000 lds r24,Mittelwert_AccNick
1133 05a4 9091 0000 lds r25,(Mittelwert_AccNick)+1
1134 05a8 97FF sbrs r25,7
1135 05aa 03C0 rjmp .L46
1136 05ac 9095 com r25
1137 05ae 8195 neg r24
1138 05b0 9F4F sbci r25,lo8(-1)
1139 .L46:
1140 05b2 6CE0 ldi r22,lo8(12)
1141 05b4 70E0 ldi r23,hi8(12)
1142 05b6 0E94 0000 call __divmodhi4
1143 05ba 7093 0000 sts (NeutralAccX)+1,r23
1144 05be 6093 0000 sts NeutralAccX,r22
1145 05c2 8091 0000 lds r24,Mittelwert_AccRoll
1146 05c6 9091 0000 lds r25,(Mittelwert_AccRoll)+1
1147 05ca 97FF sbrs r25,7
1148 05cc 03C0 rjmp .L47
1149 05ce 9095 com r25
1150 05d0 8195 neg r24
1151 05d2 9F4F sbci r25,lo8(-1)
1152 .L47:
1153 05d4 6CE0 ldi r22,lo8(12)
1154 05d6 70E0 ldi r23,hi8(12)
1155 05d8 0E94 0000 call __divmodhi4
1156 05dc 7093 0000 sts (NeutralAccY)+1,r23
1157 05e0 6093 0000 sts NeutralAccY,r22
1158 05e4 8091 0000 lds r24,Aktuell_az
1159 05e8 9091 0000 lds r25,(Aktuell_az)+1
1160 05ec 9093 0000 sts (NeutralAccZ)+1,r25
1161 05f0 8093 0000 sts NeutralAccZ,r24
1162 05f4 0F90 pop __tmp_reg__
1163 05f6 0F90 pop __tmp_reg__
1164 05f8 0F90 pop __tmp_reg__
1165 05fa 0F90 pop __tmp_reg__
1166 .L43:
1167 05fc 1092 0000 sts (MesswertNick)+1,__zero_reg__
1168 0600 1092 0000 sts MesswertNick,__zero_reg__
1169 0604 1092 0000 sts (MesswertRoll)+1,__zero_reg__
1170 0608 1092 0000 sts MesswertRoll,__zero_reg__
1171 060c 1092 0000 sts (MesswertGier)+1,__zero_reg__
1172 0610 1092 0000 sts MesswertGier,__zero_reg__
1173 0614 84E6 ldi r24,lo8(100)
1174 0616 90E0 ldi r25,hi8(100)
1175 0618 0E94 0000 call Delay_ms_Mess
1176 061c 8091 0000 lds r24,AdWertAccNick
1177 0620 9091 0000 lds r25,(AdWertAccNick)+1
1178 0624 9C01 movw r18,r24
1179 0626 220F lsl r18
1180 0628 331F rol r19
1181 062a 220F lsl r18
1182 062c 331F rol r19
1183 062e 280F add r18,r24
1184 0630 391F adc r19,r25
1185 0632 280F add r18,r24
1186 0634 391F adc r19,r25
1187 0636 3093 0000 sts (Mittelwert_AccNick)+1,r19
1188 063a 2093 0000 sts Mittelwert_AccNick,r18
1189 063e 8091 0000 lds r24,AdWertAccRoll
1190 0642 9091 0000 lds r25,(AdWertAccRoll)+1
1191 0646 8C01 movw r16,r24
1192 0648 000F lsl r16
1193 064a 111F rol r17
1194 064c 000F lsl r16
1195 064e 111F rol r17
1196 0650 080F add r16,r24
1197 0652 191F adc r17,r25
1198 0654 080F add r16,r24
1199 0656 191F adc r17,r25
1200 0658 1093 0000 sts (Mittelwert_AccRoll)+1,r17
1201 065c 0093 0000 sts Mittelwert_AccRoll,r16
1202 0660 8091 0000 lds r24,EE_Parameter+28
1203 0664 C82E mov r12,r24
1204 0666 DD24 clr r13
1205 0668 EE24 clr r14
1206 066a FF24 clr r15
1207 066c 4427 clr r20
1208 066e 37FD sbrc r19,7
1209 0670 4095 com r20
1210 0672 542F mov r21,r20
1211 0674 C701 movw r24,r14
1212 0676 B601 movw r22,r12
1213 0678 0E94 0000 call __mulsi3
1214 067c 4B01 movw r8,r22
1215 067e 5C01 movw r10,r24
1216 0680 6093 0000 sts IntegralNick,r22
1217 0684 7093 0000 sts (IntegralNick)+1,r23
1218 0688 8093 0000 sts (IntegralNick)+2,r24
1219 068c 9093 0000 sts (IntegralNick)+3,r25
1220 0690 9801 movw r18,r16
1221 0692 4427 clr r20
1222 0694 37FD sbrc r19,7
1223 0696 4095 com r20
1224 0698 542F mov r21,r20
1225 069a C701 movw r24,r14
1226 069c B601 movw r22,r12
1227 069e 0E94 0000 call __mulsi3
1228 06a2 DC01 movw r26,r24
1229 06a4 CB01 movw r24,r22
1230 06a6 8093 0000 sts IntegralRoll,r24
1231 06aa 9093 0000 sts (IntegralRoll)+1,r25
1232 06ae A093 0000 sts (IntegralRoll)+2,r26
1233 06b2 B093 0000 sts (IntegralRoll)+3,r27
1234 06b6 8092 0000 sts Mess_IntegralNick2,r8
1235 06ba 9092 0000 sts (Mess_IntegralNick2)+1,r9
1236 06be A092 0000 sts (Mess_IntegralNick2)+2,r10
1237 06c2 B092 0000 sts (Mess_IntegralNick2)+3,r11
1238 06c6 8093 0000 sts Mess_IntegralRoll2,r24
1239 06ca 9093 0000 sts (Mess_IntegralRoll2)+1,r25
1240 06ce A093 0000 sts (Mess_IntegralRoll2)+2,r26
1241 06d2 B093 0000 sts (Mess_IntegralRoll2)+3,r27
1242 06d6 1092 0000 sts Mess_Integral_Gier,__zero_reg__
1243 06da 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__
1244 06de 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__
1245 06e2 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__
1246 06e6 8091 0000 lds r24,Luftdruck
1247 06ea 9091 0000 lds r25,(Luftdruck)+1
1248 06ee A091 0000 lds r26,(Luftdruck)+2
1249 06f2 B091 0000 lds r27,(Luftdruck)+3
1250 06f6 9093 0000 sts (StartLuftdruck)+1,r25
1251 06fa 8093 0000 sts StartLuftdruck,r24
1252 06fe 1092 0000 sts (VarioMeter)+1,__zero_reg__
1253 0702 1092 0000 sts VarioMeter,__zero_reg__
1254 0706 1092 0000 sts Mess_Integral_Hoch,__zero_reg__
1255 070a 1092 0000 sts (Mess_Integral_Hoch)+1,__zero_reg__
1256 070e 1092 0000 sts (Mess_Integral_Hoch)+2,__zero_reg__
1257 0712 1092 0000 sts (Mess_Integral_Hoch)+3,__zero_reg__
1258 0716 8091 0000 lds r24,KompassValue
1259 071a 9091 0000 lds r25,(KompassValue)+1
1260 071e 9093 0000 sts (KompassStartwert)+1,r25
1261 0722 8093 0000 sts KompassStartwert,r24
1262 0726 0E94 0000 call GPS_Neutral
1263 072a 82E3 ldi r24,lo8(50)
1264 072c 90E0 ldi r25,hi8(50)
1265 072e 9093 0000 sts (beeptime)+1,r25
1266 0732 8093 0000 sts beeptime,r24
1267 0736 8091 0000 lds r24,EE_Parameter+63
1268 073a 9927 clr r25
1269 073c AA27 clr r26
1270 073e BB27 clr r27
1271 0740 BC01 movw r22,r24
1272 0742 CD01 movw r24,r26
1273 0744 24EC ldi r18,lo8(2500)
1274 0746 39E0 ldi r19,hi8(2500)
1275 0748 40E0 ldi r20,hlo8(2500)
1276 074a 50E0 ldi r21,hhi8(2500)
1277 074c 0E94 0000 call __mulsi3
1278 0750 DC01 movw r26,r24
1279 0752 CB01 movw r24,r22
1280 0754 8856 subi r24,lo8(-(15000))
1281 0756 954C sbci r25,hi8(-(15000))
1282 0758 AF4F sbci r26,hlo8(-(15000))
1283 075a BF4F sbci r27,hhi8(-(15000))
1284 075c 8093 0000 sts Umschlag180Nick,r24
1285 0760 9093 0000 sts (Umschlag180Nick)+1,r25
1286 0764 A093 0000 sts (Umschlag180Nick)+2,r26
1287 0768 B093 0000 sts (Umschlag180Nick)+3,r27
1288 076c 8091 0000 lds r24,EE_Parameter+64
1289 0770 9927 clr r25
1290 0772 AA27 clr r26
1291 0774 BB27 clr r27
1292 0776 BC01 movw r22,r24
1293 0778 CD01 movw r24,r26
1294 077a 0E94 0000 call __mulsi3
1295 077e DC01 movw r26,r24
1296 0780 CB01 movw r24,r22
1297 0782 8856 subi r24,lo8(-(15000))
1298 0784 954C sbci r25,hi8(-(15000))
1299 0786 AF4F sbci r26,hlo8(-(15000))
1300 0788 BF4F sbci r27,hhi8(-(15000))
1301 078a 8093 0000 sts Umschlag180Roll,r24
1302 078e 9093 0000 sts (Umschlag180Roll)+1,r25
1303 0792 A093 0000 sts (Umschlag180Roll)+2,r26
1304 0796 B093 0000 sts (Umschlag180Roll)+3,r27
1305 079a 1092 0000 sts (ExternHoehenValue)+1,__zero_reg__
1306 079e 1092 0000 sts ExternHoehenValue,__zero_reg__
1307 07a2 8091 0000 lds r24,KompassValue
1308 07a6 9091 0000 lds r25,(KompassValue)+1
1309 07aa AA27 clr r26
1310 07ac 97FD sbrc r25,7
1311 07ae A095 com r26
1312 07b0 BA2F mov r27,r26
1313 07b2 2091 0000 lds r18,GIER_GRAD_FAKTOR
1314 07b6 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
1315 07ba 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
1316 07be 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
1317 07c2 BC01 movw r22,r24
1318 07c4 CD01 movw r24,r26
1319 07c6 0E94 0000 call __mulsi3
1320 07ca DC01 movw r26,r24
1321 07cc CB01 movw r24,r22
1322 07ce 8093 0000 sts ErsatzKompass,r24
1323 07d2 9093 0000 sts (ErsatzKompass)+1,r25
1324 07d6 A093 0000 sts (ErsatzKompass)+2,r26
1325 07da B093 0000 sts (ErsatzKompass)+3,r27
1326 07de 1092 0000 sts (GierGyroFehler)+1,__zero_reg__
1327 07e2 1092 0000 sts GierGyroFehler,__zero_reg__
1328 07e6 81E0 ldi r24,lo8(1)
1329 07e8 8093 0000 sts SendVersionToNavi,r24
1330 07ec 0E94 0000 call LED_Init
1331 07f0 8091 0000 lds r24,FCFlags
1332 07f4 8460 ori r24,lo8(4)
1333 07f6 8093 0000 sts FCFlags,r24
1334 07fa 8FEF ldi r24,lo8(-1)
1335 07fc 8093 0000 sts FromNaviCtrl_Value,r24
1336 0800 1092 0000 sts FromNaviCtrl_Value+1,__zero_reg__
1337 0804 80E2 ldi r24,lo8(32)
1338 0806 8093 0000 sts FromNaviCtrl_Value+2,r24
1339 080a C0E0 ldi r28,lo8(Poti)
1340 080c D0E0 ldi r29,hi8(Poti)
1341 080e A0E0 ldi r26,lo8(EE_Parameter+5)
1342 0810 B0E0 ldi r27,hi8(EE_Parameter+5)
1343 0812 07E0 ldi r16,lo8(7)
1344 .L51:
1345 0814 8D91 ld r24,X+
1346 0816 E82F mov r30,r24
1347 0818 FF27 clr r31
1348 081a EE0F add r30,r30
1349 081c FF1F adc r31,r31
1350 081e E050 subi r30,lo8(-(PPM_in))
1351 0820 F040 sbci r31,hi8(-(PPM_in))
1352 0822 8081 ld r24,Z
1353 0824 9181 ldd r25,Z+1
1354 0826 8259 subi r24,lo8(-(110))
1355 0828 8993 st Y+,r24
1356 082a 0150 subi r16,lo8(-(-1))
1357 082c 07FF sbrs r16,7
1358 082e F2CF rjmp .L51
1359 0830 84E6 ldi r24,lo8(100)
1360 0832 8093 0000 sts SenderOkay,r24
1361 0836 8091 0000 lds r24,ServoActive
1362 083a 8823 tst r24
1363 083c 11F0 breq .L52
1364 083e 469A sbi 40-0x20,6
1365 0840 579A sbi 42-0x20,7
1366 .L52:
1367 0842 8091 0000 lds r24,AdNeutralNick
1368 0846 9091 0000 lds r25,(AdNeutralNick)+1
1369 084a 8056 subi r24,lo8(-(-2400))
1370 084c 9940 sbci r25,hi8(-(-2400))
1371 084e 815C subi r24,lo8(11201)
1372 0850 9B42 sbci r25,hi8(11201)
1373 0852 28F0 brlo .L53
1374 0854 8091 0000 lds r24,VersionInfo+5
1375 0858 8160 ori r24,lo8(1)
1376 085a 8093 0000 sts VersionInfo+5,r24
1377 .L53:
1378 085e 8091 0000 lds r24,AdNeutralRoll
1379 0862 9091 0000 lds r25,(AdNeutralRoll)+1
1380 0866 8056 subi r24,lo8(-(-2400))
1381 0868 9940 sbci r25,hi8(-(-2400))
1382 086a 815C subi r24,lo8(11201)
1383 086c 9B42 sbci r25,hi8(11201)
1384 086e 28F0 brlo .L54
1385 0870 8091 0000 lds r24,VersionInfo+5
1386 0874 8260 ori r24,lo8(2)
1387 0876 8093 0000 sts VersionInfo+5,r24
1388 .L54:
1389 087a 8091 0000 lds r24,AdNeutralGier
1390 087e 9091 0000 lds r25,(AdNeutralGier)+1
1391 0882 8C52 subi r24,lo8(-(-300))
1392 0884 9140 sbci r25,hi8(-(-300))
1393 0886 8957 subi r24,lo8(1401)
1394 0888 9540 sbci r25,hi8(1401)
1395 088a 28F0 brlo .L55
1396 088c 8091 0000 lds r24,VersionInfo+5
1397 0890 8460 ori r24,lo8(4)
1398 0892 8093 0000 sts VersionInfo+5,r24
1399 .L55:
1400 0896 8091 0000 lds r24,NeutralAccX
1401 089a 9091 0000 lds r25,(NeutralAccX)+1
1402 089e 8C52 subi r24,lo8(-(-300))
1403 08a0 9140 sbci r25,hi8(-(-300))
1404 08a2 835C subi r24,lo8(451)
1405 08a4 9140 sbci r25,hi8(451)
1406 08a6 28F0 brlo .L56
1407 08a8 8091 0000 lds r24,VersionInfo+5
1408 08ac 8860 ori r24,lo8(8)
1409 08ae 8093 0000 sts VersionInfo+5,r24
1410 .L56:
1411 08b2 8091 0000 lds r24,NeutralAccY
1412 08b6 9091 0000 lds r25,(NeutralAccY)+1
1413 08ba 8C52 subi r24,lo8(-(-300))
1414 08bc 9140 sbci r25,hi8(-(-300))
1415 08be 835C subi r24,lo8(451)
1416 08c0 9140 sbci r25,hi8(451)
1417 08c2 28F0 brlo .L57
1418 08c4 8091 0000 lds r24,VersionInfo+5
1419 08c8 8061 ori r24,lo8(16)
1420 08ca 8093 0000 sts VersionInfo+5,r24
1421 .L57:
1422 08ce 8091 0000 lds r24,NeutralAccZ
1423 08d2 9091 0000 lds r25,(NeutralAccZ)+1
1424 08d6 8050 subi r24,lo8(-(-512))
1425 08d8 9240 sbci r25,hi8(-(-512))
1426 08da 8355 subi r24,lo8(339)
1427 08dc 9140 sbci r25,hi8(339)
1428 08de 28F0 brlo .L32
1429 08e0 8091 0000 lds r24,VersionInfo+5
1430 08e4 8062 ori r24,lo8(32)
1431 08e6 8093 0000 sts VersionInfo+5,r24
1432 .L32:
1433 /* epilogue: frame size=0 */
1434 08ea ECE0 ldi r30,12
1435 08ec CDB7 in r28,__SP_L__
1436 08ee DEB7 in r29,__SP_H__
1437 08f0 0C94 0000 jmp __epilogue_restores__+12
1438 /* epilogue end (size=5) */
1439 /* function SetNeutral size 697 (686) */
1441 .lcomm tmpl.32,4
1442 .lcomm tmpl2.33,4
1443 .lcomm tmpl3.34,4
1444 .lcomm tmpl4.35,4
1445 .lcomm oldNick.36,2
1446 .lcomm oldRoll.37,2
1447 .lcomm d2Roll.38,2
1448 .lcomm d2Nick.39,2
1449 .global Mittelwert
1451 Mittelwert:
1452 /* prologue: frame size=19 */
1453 08f4 A3E1 ldi r26,lo8(19)
1454 08f6 B0E0 ldi r27,hi8(19)
1455 08f8 E0E0 ldi r30,pm_lo8(1f)
1456 08fa F0E0 ldi r31,pm_hi8(1f)
1457 08fc 0C94 0000 jmp __prologue_saves__+0
1458 1:
1459 /* prologue end (size=6) */
1460 0900 8091 0000 lds r24,AdNeutralGier
1461 0904 9091 0000 lds r25,(AdNeutralGier)+1
1462 0908 2091 0000 lds r18,AdWertGier
1463 090c 3091 0000 lds r19,(AdWertGier)+1
1464 0910 821B sub r24,r18
1465 0912 930B sbc r25,r19
1466 0914 9093 0000 sts (MesswertGier)+1,r25
1467 0918 8093 0000 sts MesswertGier,r24
1468 091c 8091 0000 lds r24,AdWertNickFilter
1469 0920 9091 0000 lds r25,(AdWertNickFilter)+1
1470 0924 97FD sbrc r25,7
1471 0926 0796 adiw r24,7
1472 .L64:
1473 0928 9C01 movw r18,r24
1474 092a 53E0 ldi r21,3
1475 092c 3595 1: asr r19
1476 092e 2795 ror r18
1477 0930 5A95 dec r21
1478 0932 E1F7 brne 1b
1479 0934 3093 0000 sts (MesswertNick)+1,r19
1480 0938 2093 0000 sts MesswertNick,r18
1481 093c 8091 0000 lds r24,AdWertRollFilter
1482 0940 9091 0000 lds r25,(AdWertRollFilter)+1
1483 0944 97FD sbrc r25,7
1484 0946 0796 adiw r24,7
1485 .L65:
1486 0948 43E0 ldi r20,3
1487 094a 9595 1: asr r25
1488 094c 8795 ror r24
1489 094e 4A95 dec r20
1490 0950 E1F7 brne 1b
1491 0952 9093 0000 sts (MesswertRoll)+1,r25
1492 0956 8093 0000 sts MesswertRoll,r24
1493 095a 3093 0000 sts (RohMesswertNick)+1,r19
1494 095e 2093 0000 sts RohMesswertNick,r18
1495 0962 9093 0000 sts (RohMesswertRoll)+1,r25
1496 0966 8093 0000 sts RohMesswertRoll,r24
1497 096a 8091 0000 lds r24,Mittelwert_AccNick
1498 096e 9091 0000 lds r25,(Mittelwert_AccNick)+1
1499 0972 AC01 movw r20,r24
1500 0974 440F lsl r20
1501 0976 551F rol r21
1502 0978 480F add r20,r24
1503 097a 591F adc r21,r25
1504 097c 2091 0000 lds r18,AdWertAccNick
1505 0980 3091 0000 lds r19,(AdWertAccNick)+1
1506 0984 C901 movw r24,r18
1507 0986 880F lsl r24
1508 0988 991F rol r25
1509 098a 880F lsl r24
1510 098c 991F rol r25
1511 098e 820F add r24,r18
1512 0990 931F adc r25,r19
1513 0992 820F add r24,r18
1514 0994 931F adc r25,r19
1515 0996 480F add r20,r24
1516 0998 591F adc r21,r25
1517 099a 57FF sbrs r21,7
1518 099c 02C0 rjmp .L66
1519 099e 4D5F subi r20,lo8(-(3))
1520 09a0 5F4F sbci r21,hi8(-(3))
1521 .L66:
1522 09a2 5595 asr r21
1523 09a4 4795 ror r20
1524 09a6 5595 asr r21
1525 09a8 4795 ror r20
1526 09aa 5093 0000 sts (Mittelwert_AccNick)+1,r21
1527 09ae 4093 0000 sts Mittelwert_AccNick,r20
1528 09b2 8091 0000 lds r24,Mittelwert_AccRoll
1529 09b6 9091 0000 lds r25,(Mittelwert_AccRoll)+1
1530 09ba AC01 movw r20,r24
1531 09bc 440F lsl r20
1532 09be 551F rol r21
1533 09c0 480F add r20,r24
1534 09c2 591F adc r21,r25
1535 09c4 2091 0000 lds r18,AdWertAccRoll
1536 09c8 3091 0000 lds r19,(AdWertAccRoll)+1
1537 09cc C901 movw r24,r18
1538 09ce 880F lsl r24
1539 09d0 991F rol r25
1540 09d2 880F lsl r24
1541 09d4 991F rol r25
1542 09d6 820F add r24,r18
1543 09d8 931F adc r25,r19
1544 09da 820F add r24,r18
1545 09dc 931F adc r25,r19
1546 09de 480F add r20,r24
1547 09e0 591F adc r21,r25
1548 09e2 57FF sbrs r21,7
1549 09e4 02C0 rjmp .L67
1550 09e6 4D5F subi r20,lo8(-(3))
1551 09e8 5F4F sbci r21,hi8(-(3))
1552 .L67:
1553 09ea 5595 asr r21
1554 09ec 4795 ror r20
1555 09ee 5595 asr r21
1556 09f0 4795 ror r20
1557 09f2 5093 0000 sts (Mittelwert_AccRoll)+1,r21
1558 09f6 4093 0000 sts Mittelwert_AccRoll,r20
1559 09fa 2091 0000 lds r18,AdWertAccNick
1560 09fe 3091 0000 lds r19,(AdWertAccNick)+1
1561 0a02 C901 movw r24,r18
1562 0a04 880F lsl r24
1563 0a06 991F rol r25
1564 0a08 880F lsl r24
1565 0a0a 991F rol r25
1566 0a0c 820F add r24,r18
1567 0a0e 931F adc r25,r19
1568 0a10 820F add r24,r18
1569 0a12 931F adc r25,r19
1570 0a14 9C01 movw r18,r24
1571 0a16 4427 clr r20
1572 0a18 37FD sbrc r19,7
1573 0a1a 4095 com r20
1574 0a1c 542F mov r21,r20
1575 0a1e 8091 0000 lds r24,IntegralAccNick
1576 0a22 9091 0000 lds r25,(IntegralAccNick)+1
1577 0a26 A091 0000 lds r26,(IntegralAccNick)+2
1578 0a2a B091 0000 lds r27,(IntegralAccNick)+3
1579 0a2e 820F add r24,r18
1580 0a30 931F adc r25,r19
1581 0a32 A41F adc r26,r20
1582 0a34 B51F adc r27,r21
1583 0a36 8093 0000 sts IntegralAccNick,r24
1584 0a3a 9093 0000 sts (IntegralAccNick)+1,r25
1585 0a3e A093 0000 sts (IntegralAccNick)+2,r26
1586 0a42 B093 0000 sts (IntegralAccNick)+3,r27
1587 0a46 2091 0000 lds r18,AdWertAccRoll
1588 0a4a 3091 0000 lds r19,(AdWertAccRoll)+1
1589 0a4e C901 movw r24,r18
1590 0a50 880F lsl r24
1591 0a52 991F rol r25
1592 0a54 880F lsl r24
1593 0a56 991F rol r25
1594 0a58 820F add r24,r18
1595 0a5a 931F adc r25,r19
1596 0a5c 820F add r24,r18
1597 0a5e 931F adc r25,r19
1598 0a60 9C01 movw r18,r24
1599 0a62 4427 clr r20
1600 0a64 37FD sbrc r19,7
1601 0a66 4095 com r20
1602 0a68 542F mov r21,r20
1603 0a6a 8091 0000 lds r24,IntegralAccRoll
1604 0a6e 9091 0000 lds r25,(IntegralAccRoll)+1
1605 0a72 A091 0000 lds r26,(IntegralAccRoll)+2
1606 0a76 B091 0000 lds r27,(IntegralAccRoll)+3
1607 0a7a 820F add r24,r18
1608 0a7c 931F adc r25,r19
1609 0a7e A41F adc r26,r20
1610 0a80 B51F adc r27,r21
1611 0a82 8093 0000 sts IntegralAccRoll,r24
1612 0a86 9093 0000 sts (IntegralAccRoll)+1,r25
1613 0a8a A093 0000 sts (IntegralAccRoll)+2,r26
1614 0a8e B093 0000 sts (IntegralAccRoll)+3,r27
1615 0a92 8091 0000 lds r24,NaviAccNick
1616 0a96 9091 0000 lds r25,(NaviAccNick)+1
1617 0a9a 2091 0000 lds r18,AdWertAccNick
1618 0a9e 3091 0000 lds r19,(AdWertAccNick)+1
1619 0aa2 820F add r24,r18
1620 0aa4 931F adc r25,r19
1621 0aa6 9093 0000 sts (NaviAccNick)+1,r25
1622 0aaa 8093 0000 sts NaviAccNick,r24
1623 0aae 8091 0000 lds r24,NaviAccRoll
1624 0ab2 9091 0000 lds r25,(NaviAccRoll)+1
1625 0ab6 2091 0000 lds r18,AdWertAccRoll
1626 0aba 3091 0000 lds r19,(AdWertAccRoll)+1
1627 0abe 820F add r24,r18
1628 0ac0 931F adc r25,r19
1629 0ac2 9093 0000 sts (NaviAccRoll)+1,r25
1630 0ac6 8093 0000 sts NaviAccRoll,r24
1631 0aca 8091 0000 lds r24,NaviCntAcc
1632 0ace 9091 0000 lds r25,(NaviCntAcc)+1
1633 0ad2 0196 adiw r24,1
1634 0ad4 9093 0000 sts (NaviCntAcc)+1,r25
1635 0ad8 8093 0000 sts NaviCntAcc,r24
1636 0adc 8091 0000 lds r24,Aktuell_az
1637 0ae0 9091 0000 lds r25,(Aktuell_az)+1
1638 0ae4 2091 0000 lds r18,NeutralAccZ
1639 0ae8 3091 0000 lds r19,(NeutralAccZ)+1
1640 0aec 821B sub r24,r18
1641 0aee 930B sbc r25,r19
1642 0af0 9C01 movw r18,r24
1643 0af2 4427 clr r20
1644 0af4 37FD sbrc r19,7
1645 0af6 4095 com r20
1646 0af8 542F mov r21,r20
1647 0afa 8091 0000 lds r24,IntegralAccZ
1648 0afe 9091 0000 lds r25,(IntegralAccZ)+1
1649 0b02 A091 0000 lds r26,(IntegralAccZ)+2
1650 0b06 B091 0000 lds r27,(IntegralAccZ)+3
1651 0b0a 820F add r24,r18
1652 0b0c 931F adc r25,r19
1653 0b0e A41F adc r26,r20
1654 0b10 B51F adc r27,r21
1655 0b12 8093 0000 sts IntegralAccZ,r24
1656 0b16 9093 0000 sts (IntegralAccZ)+1,r25
1657 0b1a A093 0000 sts (IntegralAccZ)+2,r26
1658 0b1e B093 0000 sts (IntegralAccZ)+3,r27
1659 0b22 8FEC ldi r24,lo8(-49)
1660 0b24 8093 7A00 sts 122,r24
1661 0b28 1092 0000 sts AdReady,__zero_reg__
1662 0b2c 2091 0000 lds r18,Mess_IntegralRoll
1663 0b30 3091 0000 lds r19,(Mess_IntegralRoll)+1
1664 0b34 4091 0000 lds r20,(Mess_IntegralRoll)+2
1665 0b38 5091 0000 lds r21,(Mess_IntegralRoll)+3
1666 0b3c 2987 std Y+9,r18
1667 0b3e 3A87 std Y+10,r19
1668 0b40 4B87 std Y+11,r20
1669 0b42 5C87 std Y+12,r21
1670 0b44 2954 subi r18,lo8(93001)
1671 0b46 3B46 sbci r19,hi8(93001)
1672 0b48 4140 sbci r20,hlo8(93001)
1673 0b4a 5040 sbci r21,hhi8(93001)
1674 0b4c 2CF0 brlt .L68
1675 0b4e 28E4 ldi r18,lo8(93000)
1676 0b50 3BE6 ldi r19,hi8(93000)
1677 0b52 41E0 ldi r20,hlo8(93000)
1678 0b54 50E0 ldi r21,hhi8(93000)
1679 0b56 0DC0 rjmp .L161
1680 .L68:
1681 0b58 8985 ldd r24,Y+9
1682 0b5a 9A85 ldd r25,Y+10
1683 0b5c AB85 ldd r26,Y+11
1684 0b5e BC85 ldd r27,Y+12
1685 0b60 885B subi r24,lo8(-93000)
1686 0b62 9449 sbci r25,hi8(-93000)
1687 0b64 AE4F sbci r26,hlo8(-93000)
1688 0b66 BF4F sbci r27,hhi8(-93000)
1689 0b68 4CF4 brge .L70
1690 0b6a 28EB ldi r18,lo8(-93000)
1691 0b6c 34E9 ldi r19,hi8(-93000)
1692 0b6e 4EEF ldi r20,hlo8(-93000)
1693 0b70 5FEF ldi r21,hhi8(-93000)
1694 .L161:
1695 0b72 2D83 std Y+5,r18
1696 0b74 3E83 std Y+6,r19
1697 0b76 4F83 std Y+7,r20
1698 0b78 5887 std Y+8,r21
1699 0b7a 08C0 rjmp .L69
1700 .L70:
1701 0b7c 8985 ldd r24,Y+9
1702 0b7e 9A85 ldd r25,Y+10
1703 0b80 AB85 ldd r26,Y+11
1704 0b82 BC85 ldd r27,Y+12
1705 0b84 8D83 std Y+5,r24
1706 0b86 9E83 std Y+6,r25
1707 0b88 AF83 std Y+7,r26
1708 0b8a B887 std Y+8,r27
1709 .L69:
1710 0b8c 2091 0000 lds r18,Mess_IntegralNick
1711 0b90 3091 0000 lds r19,(Mess_IntegralNick)+1
1712 0b94 4091 0000 lds r20,(Mess_IntegralNick)+2
1713 0b98 5091 0000 lds r21,(Mess_IntegralNick)+3
1714 0b9c 2D87 std Y+13,r18
1715 0b9e 3E87 std Y+14,r19
1716 0ba0 4F87 std Y+15,r20
1717 0ba2 588B std Y+16,r21
1718 0ba4 2954 subi r18,lo8(93001)
1719 0ba6 3B46 sbci r19,hi8(93001)
1720 0ba8 4140 sbci r20,hlo8(93001)
1721 0baa 5040 sbci r21,hhi8(93001)
1722 0bac 2CF0 brlt .L72
1723 0bae 28E4 ldi r18,lo8(93000)
1724 0bb0 3BE6 ldi r19,hi8(93000)
1725 0bb2 41E0 ldi r20,hlo8(93000)
1726 0bb4 50E0 ldi r21,hhi8(93000)
1727 0bb6 0DC0 rjmp .L162
1728 .L72:
1729 0bb8 8D85 ldd r24,Y+13
1730 0bba 9E85 ldd r25,Y+14
1731 0bbc AF85 ldd r26,Y+15
1732 0bbe B889 ldd r27,Y+16
1733 0bc0 885B subi r24,lo8(-93000)
1734 0bc2 9449 sbci r25,hi8(-93000)
1735 0bc4 AE4F sbci r26,hlo8(-93000)
1736 0bc6 BF4F sbci r27,hhi8(-93000)
1737 0bc8 4CF4 brge .L74
1738 0bca 28EB ldi r18,lo8(-93000)
1739 0bcc 34E9 ldi r19,hi8(-93000)
1740 0bce 4EEF ldi r20,hlo8(-93000)
1741 0bd0 5FEF ldi r21,hhi8(-93000)
1742 .L162:
1743 0bd2 2983 std Y+1,r18
1744 0bd4 3A83 std Y+2,r19
1745 0bd6 4B83 std Y+3,r20
1746 0bd8 5C83 std Y+4,r21
1747 0bda 08C0 rjmp .L73
1748 .L74:
1749 0bdc 8D85 ldd r24,Y+13
1750 0bde 9E85 ldd r25,Y+14
1751 0be0 AF85 ldd r26,Y+15
1752 0be2 B889 ldd r27,Y+16
1753 0be4 8983 std Y+1,r24
1754 0be6 9A83 std Y+2,r25
1755 0be8 AB83 std Y+3,r26
1756 0bea BC83 std Y+4,r27
1757 .L73:
1758 0bec A091 0000 lds r26,MesswertGier
1759 0bf0 B091 0000 lds r27,(MesswertGier)+1
1760 0bf4 BB8B std Y+19,r27
1761 0bf6 AA8B std Y+18,r26
1762 0bf8 FD01 movw r30,r26
1763 0bfa CF01 movw r24,r30
1764 0bfc AA27 clr r26
1765 0bfe 97FD sbrc r25,7
1766 0c00 A095 com r26
1767 0c02 BA2F mov r27,r26
1768 0c04 A090 0000 lds r10,Mess_Integral_Gier
1769 0c08 B090 0000 lds r11,(Mess_Integral_Gier)+1
1770 0c0c C090 0000 lds r12,(Mess_Integral_Gier)+2
1771 0c10 D090 0000 lds r13,(Mess_Integral_Gier)+3
1772 0c14 A80E add r10,r24
1773 0c16 B91E adc r11,r25
1774 0c18 CA1E adc r12,r26
1775 0c1a DB1E adc r13,r27
1776 0c1c A092 0000 sts Mess_Integral_Gier,r10
1777 0c20 B092 0000 sts (Mess_Integral_Gier)+1,r11
1778 0c24 C092 0000 sts (Mess_Integral_Gier)+2,r12
1779 0c28 D092 0000 sts (Mess_Integral_Gier)+3,r13
1780 0c2c E090 0000 lds r14,ErsatzKompass
1781 0c30 F090 0000 lds r15,(ErsatzKompass)+1
1782 0c34 0091 0000 lds r16,(ErsatzKompass)+2
1783 0c38 1091 0000 lds r17,(ErsatzKompass)+3
1784 0c3c E80E add r14,r24
1785 0c3e F91E adc r15,r25
1786 0c40 0A1F adc r16,r26
1787 0c42 1B1F adc r17,r27
1788 0c44 E092 0000 sts ErsatzKompass,r14
1789 0c48 F092 0000 sts (ErsatzKompass)+1,r15
1790 0c4c 0093 0000 sts (ErsatzKompass)+2,r16
1791 0c50 1093 0000 sts (ErsatzKompass)+3,r17
1792 0c54 F091 0000 lds r31,Looping_Nick
1793 0c58 F98B std Y+17,r31
1794 0c5a FF23 tst r31
1795 0c5c 09F0 breq .+2
1796 0c5e 98C1 rjmp .L76
1797 0c60 8091 0000 lds r24,Looping_Roll
1798 0c64 8823 tst r24
1799 0c66 09F0 breq .+2
1800 0c68 93C1 rjmp .L76
1801 0c6a 8091 0000 lds r24,EE_Parameter+13
1802 0c6e 86FF sbrs r24,6
1803 0c70 8FC1 rjmp .L76
1804 0c72 8091 0000 lds r24,MesswertRoll
1805 0c76 9091 0000 lds r25,(MesswertRoll)+1
1806 0c7a AA27 clr r26
1807 0c7c 97FD sbrc r25,7
1808 0c7e A095 com r26
1809 0c80 BA2F mov r27,r26
1810 0c82 BC01 movw r22,r24
1811 0c84 CD01 movw r24,r26
1812 0c86 2981 ldd r18,Y+1
1813 0c88 3A81 ldd r19,Y+2
1814 0c8a 4B81 ldd r20,Y+3
1815 0c8c 5C81 ldd r21,Y+4
1816 0c8e 0E94 0000 call __mulsi3
1817 0c92 9B01 movw r18,r22
1818 0c94 AC01 movw r20,r24
1819 0c96 97FF sbrs r25,7
1820 0c98 04C0 rjmp .L77
1821 0c9a 2150 subi r18,lo8(-(2047))
1822 0c9c 384F sbci r19,hi8(-(2047))
1823 0c9e 4F4F sbci r20,hlo8(-(2047))
1824 0ca0 5F4F sbci r21,hhi8(-(2047))
1825 .L77:
1826 0ca2 6BE0 ldi r22,11
1827 0ca4 5595 1: asr r21
1828 0ca6 4795 ror r20
1829 0ca8 3795 ror r19
1830 0caa 2795 ror r18
1831 0cac 6A95 dec r22
1832 0cae D1F7 brne 1b
1833 0cb0 8091 0000 lds r24,Parameter_AchsKopplung2
1834 0cb4 682E mov r6,r24
1835 0cb6 7724 clr r7
1836 0cb8 8824 clr r8
1837 0cba 9924 clr r9
1838 0cbc CA01 movw r24,r20
1839 0cbe B901 movw r22,r18
1840 0cc0 A401 movw r20,r8
1841 0cc2 9301 movw r18,r6
1842 0cc4 0E94 0000 call __mulsi3
1843 0cc8 DC01 movw r26,r24
1844 0cca CB01 movw r24,r22
1845 0ccc 8093 0000 sts tmpl3.34,r24
1846 0cd0 9093 0000 sts (tmpl3.34)+1,r25
1847 0cd4 A093 0000 sts (tmpl3.34)+2,r26
1848 0cd8 B093 0000 sts (tmpl3.34)+3,r27
1849 0cdc B7FF sbrs r27,7
1850 0cde 04C0 rjmp .L78
1851 0ce0 8150 subi r24,lo8(-(4095))
1852 0ce2 904F sbci r25,hi8(-(4095))
1853 0ce4 AF4F sbci r26,hlo8(-(4095))
1854 0ce6 BF4F sbci r27,hhi8(-(4095))
1855 .L78:
1856 0ce8 1C01 movw r2,r24
1857 0cea 2D01 movw r4,r26
1858 0cec 3CE0 ldi r19,12
1859 0cee 5594 1: asr r5
1860 0cf0 4794 ror r4
1861 0cf2 3794 ror r3
1862 0cf4 2794 ror r2
1863 0cf6 3A95 dec r19
1864 0cf8 D1F7 brne 1b
1865 0cfa 2092 0000 sts tmpl3.34,r2
1866 0cfe 3092 0000 sts (tmpl3.34)+1,r3
1867 0d02 4092 0000 sts (tmpl3.34)+2,r4
1868 0d06 5092 0000 sts (tmpl3.34)+3,r5
1869 0d0a 8091 0000 lds r24,MesswertNick
1870 0d0e 9091 0000 lds r25,(MesswertNick)+1
1871 0d12 AA27 clr r26
1872 0d14 97FD sbrc r25,7
1873 0d16 A095 com r26
1874 0d18 BA2F mov r27,r26
1875 0d1a BC01 movw r22,r24
1876 0d1c CD01 movw r24,r26
1877 0d1e 2D81 ldd r18,Y+5
1878 0d20 3E81 ldd r19,Y+6
1879 0d22 4F81 ldd r20,Y+7
1880 0d24 5885 ldd r21,Y+8
1881 0d26 0E94 0000 call __mulsi3
1882 0d2a 97FF sbrs r25,7
1883 0d2c 04C0 rjmp .L79
1884 0d2e 6150 subi r22,lo8(-(2047))
1885 0d30 784F sbci r23,hi8(-(2047))
1886 0d32 8F4F sbci r24,hlo8(-(2047))
1887 0d34 9F4F sbci r25,hhi8(-(2047))
1888 .L79:
1889 0d36 2BE0 ldi r18,11
1890 0d38 9595 1: asr r25
1891 0d3a 8795 ror r24
1892 0d3c 7795 ror r23
1893 0d3e 6795 ror r22
1894 0d40 2A95 dec r18
1895 0d42 D1F7 brne 1b
1896 0d44 A401 movw r20,r8
1897 0d46 9301 movw r18,r6
1898 0d48 0E94 0000 call __mulsi3
1899 0d4c DC01 movw r26,r24
1900 0d4e CB01 movw r24,r22
1901 0d50 8093 0000 sts tmpl4.35,r24
1902 0d54 9093 0000 sts (tmpl4.35)+1,r25
1903 0d58 A093 0000 sts (tmpl4.35)+2,r26
1904 0d5c B093 0000 sts (tmpl4.35)+3,r27
1905 0d60 B7FF sbrs r27,7
1906 0d62 04C0 rjmp .L80
1907 0d64 8150 subi r24,lo8(-(4095))
1908 0d66 904F sbci r25,hi8(-(4095))
1909 0d68 AF4F sbci r26,hlo8(-(4095))
1910 0d6a BF4F sbci r27,hhi8(-(4095))
1911 .L80:
1912 0d6c 9C01 movw r18,r24
1913 0d6e AD01 movw r20,r26
1914 0d70 8CE0 ldi r24,12
1915 0d72 5595 1: asr r21
1916 0d74 4795 ror r20
1917 0d76 3795 ror r19
1918 0d78 2795 ror r18
1919 0d7a 8A95 dec r24
1920 0d7c D1F7 brne 1b
1921 0d7e 2093 0000 sts tmpl4.35,r18
1922 0d82 3093 0000 sts (tmpl4.35)+1,r19
1923 0d86 4093 0000 sts (tmpl4.35)+2,r20
1924 0d8a 5093 0000 sts (tmpl4.35)+3,r21
1925 0d8e 8091 0000 lds r24,tmpl3.34
1926 0d92 9091 0000 lds r25,(tmpl3.34)+1
1927 0d96 9093 0000 sts (KopplungsteilNickRoll)+1,r25
1928 0d9a 8093 0000 sts KopplungsteilNickRoll,r24
1929 0d9e 8091 0000 lds r24,tmpl4.35
1930 0da2 9091 0000 lds r25,(tmpl4.35)+1
1931 0da6 9093 0000 sts (KopplungsteilRollNick)+1,r25
1932 0daa 8093 0000 sts KopplungsteilRollNick,r24
1933 0dae 2219 sub r18,r2
1934 0db0 3309 sbc r19,r3
1935 0db2 4409 sbc r20,r4
1936 0db4 5509 sbc r21,r5
1937 0db6 2093 0000 sts tmpl4.35,r18
1938 0dba 3093 0000 sts (tmpl4.35)+1,r19
1939 0dbe 4093 0000 sts (tmpl4.35)+2,r20
1940 0dc2 5093 0000 sts (tmpl4.35)+3,r21
1941 0dc6 E20E add r14,r18
1942 0dc8 F31E adc r15,r19
1943 0dca 041F adc r16,r20
1944 0dcc 151F adc r17,r21
1945 0dce E092 0000 sts ErsatzKompass,r14
1946 0dd2 F092 0000 sts (ErsatzKompass)+1,r15
1947 0dd6 0093 0000 sts (ErsatzKompass)+2,r16
1948 0dda 1093 0000 sts (ErsatzKompass)+3,r17
1949 0dde 8091 0000 lds r24,Parameter_CouplingYawCorrection
1950 0de2 8823 tst r24
1951 0de4 B1F4 brne .L81
1952 0de6 57FF sbrs r21,7
1953 0de8 04C0 rjmp .L82
1954 0dea 2F5F subi r18,lo8(-(1))
1955 0dec 3F4F sbci r19,hi8(-(1))
1956 0dee 4F4F sbci r20,hlo8(-(1))
1957 0df0 5F4F sbci r21,hhi8(-(1))
1958 .L82:
1959 0df2 5595 asr r21
1960 0df4 4795 ror r20
1961 0df6 3795 ror r19
1962 0df8 2795 ror r18
1963 0dfa A21A sub r10,r18
1964 0dfc B30A sbc r11,r19
1965 0dfe C40A sbc r12,r20
1966 0e00 D50A sbc r13,r21
1967 0e02 A092 0000 sts Mess_Integral_Gier,r10
1968 0e06 B092 0000 sts (Mess_Integral_Gier)+1,r11
1969 0e0a C092 0000 sts (Mess_Integral_Gier)+2,r12
1970 0e0e D092 0000 sts (Mess_Integral_Gier)+3,r13
1971 .L81:
1972 0e12 2A89 ldd r18,Y+18
1973 0e14 3B89 ldd r19,Y+19
1974 0e16 7901 movw r14,r18
1975 0e18 0027 clr r16
1976 0e1a F7FC sbrc r15,7
1977 0e1c 0095 com r16
1978 0e1e 102F mov r17,r16
1979 0e20 8091 0000 lds r24,tmpl4.35
1980 0e24 9091 0000 lds r25,(tmpl4.35)+1
1981 0e28 A091 0000 lds r26,(tmpl4.35)+2
1982 0e2c B091 0000 lds r27,(tmpl4.35)+3
1983 0e30 E80E add r14,r24
1984 0e32 F91E adc r15,r25
1985 0e34 0A1F adc r16,r26
1986 0e36 1B1F adc r17,r27
1987 0e38 C801 movw r24,r16
1988 0e3a B701 movw r22,r14
1989 0e3c 2981 ldd r18,Y+1
1990 0e3e 3A81 ldd r19,Y+2
1991 0e40 4B81 ldd r20,Y+3
1992 0e42 5C81 ldd r21,Y+4
1993 0e44 0E94 0000 call __mulsi3
1994 0e48 9B01 movw r18,r22
1995 0e4a AC01 movw r20,r24
1996 0e4c 97FF sbrs r25,7
1997 0e4e 04C0 rjmp .L83
1998 0e50 2150 subi r18,lo8(-(2047))
1999 0e52 384F sbci r19,hi8(-(2047))
2000 0e54 4F4F sbci r20,hlo8(-(2047))
2001 0e56 5F4F sbci r21,hhi8(-(2047))
2002 .L83:
2003 0e58 BBE0 ldi r27,11
2004 0e5a 5595 1: asr r21
2005 0e5c 4795 ror r20
2006 0e5e 3795 ror r19
2007 0e60 2795 ror r18
2008 0e62 BA95 dec r27
2009 0e64 D1F7 brne 1b
2010 0e66 8091 0000 lds r24,Parameter_AchsKopplung1
2011 0e6a A82E mov r10,r24
2012 0e6c BB24 clr r11
2013 0e6e CC24 clr r12
2014 0e70 DD24 clr r13
2015 0e72 CA01 movw r24,r20
2016 0e74 B901 movw r22,r18
2017 0e76 A601 movw r20,r12
2018 0e78 9501 movw r18,r10
2019 0e7a 0E94 0000 call __mulsi3
2020 0e7e DC01 movw r26,r24
2021 0e80 CB01 movw r24,r22
2022 0e82 8093 0000 sts tmpl.32,r24
2023 0e86 9093 0000 sts (tmpl.32)+1,r25
2024 0e8a A093 0000 sts (tmpl.32)+2,r26
2025 0e8e B093 0000 sts (tmpl.32)+3,r27
2026 0e92 B7FF sbrs r27,7
2027 0e94 04C0 rjmp .L84
2028 0e96 8150 subi r24,lo8(-(4095))
2029 0e98 904F sbci r25,hi8(-(4095))
2030 0e9a AF4F sbci r26,hlo8(-(4095))
2031 0e9c BF4F sbci r27,hhi8(-(4095))
2032 .L84:
2033 0e9e 3C01 movw r6,r24
2034 0ea0 4D01 movw r8,r26
2035 0ea2 ACE0 ldi r26,12
2036 0ea4 9594 1: asr r9
2037 0ea6 8794 ror r8
2038 0ea8 7794 ror r7
2039 0eaa 6794 ror r6
2040 0eac AA95 dec r26
2041 0eae D1F7 brne 1b
2042 0eb0 6092 0000 sts tmpl.32,r6
2043 0eb4 7092 0000 sts (tmpl.32)+1,r7
2044 0eb8 8092 0000 sts (tmpl.32)+2,r8
2045 0ebc 9092 0000 sts (tmpl.32)+3,r9
2046 0ec0 C801 movw r24,r16
2047 0ec2 B701 movw r22,r14
2048 0ec4 2D81 ldd r18,Y+5
2049 0ec6 3E81 ldd r19,Y+6
2050 0ec8 4F81 ldd r20,Y+7
2051 0eca 5885 ldd r21,Y+8
2052 0ecc 0E94 0000 call __mulsi3
2053 0ed0 97FF sbrs r25,7
2054 0ed2 04C0 rjmp .L85
2055 0ed4 6150 subi r22,lo8(-(2047))
2056 0ed6 784F sbci r23,hi8(-(2047))
2057 0ed8 8F4F sbci r24,hlo8(-(2047))
2058 0eda 9F4F sbci r25,hhi8(-(2047))
2059 .L85:
2060 0edc FBE0 ldi r31,11
2061 0ede 9595 1: asr r25
2062 0ee0 8795 ror r24
2063 0ee2 7795 ror r23
2064 0ee4 6795 ror r22
2065 0ee6 FA95 dec r31
2066 0ee8 D1F7 brne 1b
2067 0eea A601 movw r20,r12
2068 0eec 9501 movw r18,r10
2069 0eee 0E94 0000 call __mulsi3
2070 0ef2 DC01 movw r26,r24
2071 0ef4 CB01 movw r24,r22
2072 0ef6 8093 0000 sts tmpl2.33,r24
2073 0efa 9093 0000 sts (tmpl2.33)+1,r25
2074 0efe A093 0000 sts (tmpl2.33)+2,r26
2075 0f02 B093 0000 sts (tmpl2.33)+3,r27
2076 0f06 B7FF sbrs r27,7
2077 0f08 04C0 rjmp .L86
2078 0f0a 8150 subi r24,lo8(-(4095))
2079 0f0c 904F sbci r25,hi8(-(4095))
2080 0f0e AF4F sbci r26,hlo8(-(4095))
2081 0f10 BF4F sbci r27,hhi8(-(4095))
2082 .L86:
2083 0f12 AC01 movw r20,r24
2084 0f14 BD01 movw r22,r26
2085 0f16 ECE0 ldi r30,12
2086 0f18 7595 1: asr r23
2087 0f1a 6795 ror r22
2088 0f1c 5795 ror r21
2089 0f1e 4795 ror r20
2090 0f20 EA95 dec r30
2091 0f22 D1F7 brne 1b
2092 0f24 4093 0000 sts tmpl2.33,r20
2093 0f28 5093 0000 sts (tmpl2.33)+1,r21
2094 0f2c 6093 0000 sts (tmpl2.33)+2,r22
2095 0f30 7093 0000 sts (tmpl2.33)+3,r23
2096 0f34 2A89 ldd r18,Y+18
2097 0f36 3B89 ldd r19,Y+19
2098 0f38 37FF sbrs r19,7
2099 0f3a 03C0 rjmp .L88
2100 0f3c 3095 com r19
2101 0f3e 2195 neg r18
2102 0f40 3F4F sbci r19,lo8(-1)
2103 .L88:
2104 0f42 2134 cpi r18,65
2105 0f44 3105 cpc r19,__zero_reg__
2106 0f46 E4F1 brlt .L93
2107 0f48 D401 movw r26,r8
2108 0f4a C301 movw r24,r6
2109 0f4c 97FE sbrs r9,7
2110 0f4e 07C0 rjmp .L91
2111 0f50 B095 com r27
2112 0f52 A095 com r26
2113 0f54 9095 com r25
2114 0f56 8195 neg r24
2115 0f58 9F4F sbci r25,lo8(-1)
2116 0f5a AF4F sbci r26,lo8(-1)
2117 0f5c BF4F sbci r27,lo8(-1)
2118 .L91:
2119 0f5e 8138 cpi r24,lo8(129)
2120 0f60 9105 cpc r25,__zero_reg__
2121 0f62 A105 cpc r26,__zero_reg__
2122 0f64 B105 cpc r27,__zero_reg__
2123 0f66 84F4 brge .L90
2124 0f68 DB01 movw r26,r22
2125 0f6a CA01 movw r24,r20
2126 0f6c 77FF sbrs r23,7
2127 0f6e 07C0 rjmp .L92
2128 0f70 B095 com r27
2129 0f72 A095 com r26
2130 0f74 9095 com r25
2131 0f76 8195 neg r24
2132 0f78 9F4F sbci r25,lo8(-1)
2133 0f7a AF4F sbci r26,lo8(-1)
2134 0f7c BF4F sbci r27,lo8(-1)
2135 .L92:
2136 0f7e 8138 cpi r24,lo8(129)
2137 0f80 9105 cpc r25,__zero_reg__
2138 0f82 A105 cpc r26,__zero_reg__
2139 0f84 B105 cpc r27,__zero_reg__
2140 0f86 E4F0 brlt .L93
2141 .L90:
2142 0f88 81E0 ldi r24,lo8(1)
2143 0f8a 8093 0000 sts TrichterFlug,r24
2144 0f8e 18C0 rjmp .L93
2145 .L76:
2146 0f90 1092 0000 sts (KopplungsteilRollNick)+1,__zero_reg__
2147 0f94 1092 0000 sts KopplungsteilRollNick,__zero_reg__
2148 0f98 1092 0000 sts (KopplungsteilNickRoll)+1,__zero_reg__
2149 0f9c 1092 0000 sts KopplungsteilNickRoll,__zero_reg__
2150 0fa0 1092 0000 sts tmpl2.33,__zero_reg__
2151 0fa4 1092 0000 sts (tmpl2.33)+1,__zero_reg__
2152 0fa8 1092 0000 sts (tmpl2.33)+2,__zero_reg__
2153 0fac 1092 0000 sts (tmpl2.33)+3,__zero_reg__
2154 0fb0 1092 0000 sts tmpl.32,__zero_reg__
2155 0fb4 1092 0000 sts (tmpl.32)+1,__zero_reg__
2156 0fb8 1092 0000 sts (tmpl.32)+2,__zero_reg__
2157 0fbc 1092 0000 sts (tmpl.32)+3,__zero_reg__
2158 .L93:
2159 0fc0 8091 0000 lds r24,tmpl2.33
2160 0fc4 9091 0000 lds r25,(tmpl2.33)+1
2161 0fc8 A091 0000 lds r26,(tmpl2.33)+2
2162 0fcc B091 0000 lds r27,(tmpl2.33)+3
2163 0fd0 BC01 movw r22,r24
2164 0fd2 CD01 movw r24,r26
2165 0fd4 24E6 ldi r18,lo8(100)
2166 0fd6 30E0 ldi r19,hi8(100)
2167 0fd8 40E0 ldi r20,hlo8(100)
2168 0fda 50E0 ldi r21,hhi8(100)
2169 0fdc 0E94 0000 call __divmodsi4
2170 0fe0 E090 0000 lds r14,tmpl.32
2171 0fe4 F090 0000 lds r15,(tmpl.32)+1
2172 0fe8 E21A sub r14,r18
2173 0fea F30A sbc r15,r19
2174 0fec F092 0000 sts (TrimRoll)+1,r15
2175 0ff0 E092 0000 sts TrimRoll,r14
2176 0ff4 8091 0000 lds r24,tmpl.32
2177 0ff8 9091 0000 lds r25,(tmpl.32)+1
2178 0ffc A091 0000 lds r26,(tmpl.32)+2
2179 1000 B091 0000 lds r27,(tmpl.32)+3
2180 1004 BC01 movw r22,r24
2181 1006 CD01 movw r24,r26
2182 1008 24E6 ldi r18,lo8(100)
2183 100a 30E0 ldi r19,hi8(100)
2184 100c 40E0 ldi r20,hlo8(100)
2185 100e 50E0 ldi r21,hhi8(100)
2186 1010 0E94 0000 call __divmodsi4
2187 1014 DA01 movw r26,r20
2188 1016 C901 movw r24,r18
2189 1018 2091 0000 lds r18,tmpl2.33
2190 101c 3091 0000 lds r19,(tmpl2.33)+1
2191 1020 8C01 movw r16,r24
2192 1022 021B sub r16,r18
2193 1024 130B sbc r17,r19
2194 1026 1093 0000 sts (TrimNick)+1,r17
2195 102a 0093 0000 sts TrimNick,r16
2196 102e 8091 0000 lds r24,GIER_GRAD_FAKTOR
2197 1032 9091 0000 lds r25,(GIER_GRAD_FAKTOR)+1
2198 1036 A091 0000 lds r26,(GIER_GRAD_FAKTOR)+2
2199 103a B091 0000 lds r27,(GIER_GRAD_FAKTOR)+3
2200 103e BC01 movw r22,r24
2201 1040 CD01 movw r24,r26
2202 1042 28E6 ldi r18,lo8(360)
2203 1044 31E0 ldi r19,hi8(360)
2204 1046 40E0 ldi r20,hlo8(360)
2205 1048 50E0 ldi r21,hhi8(360)
2206 104a 0E94 0000 call __mulsi3
2207 104e 2091 0000 lds r18,ErsatzKompass
2208 1052 3091 0000 lds r19,(ErsatzKompass)+1
2209 1056 4091 0000 lds r20,(ErsatzKompass)+2
2210 105a 5091 0000 lds r21,(ErsatzKompass)+3
2211 105e 2617 cp r18,r22
2212 1060 3707 cpc r19,r23
2213 1062 4807 cpc r20,r24
2214 1064 5907 cpc r21,r25
2215 1066 64F0 brlt .L94
2216 1068 261B sub r18,r22
2217 106a 370B sbc r19,r23
2218 106c 480B sbc r20,r24
2219 106e 590B sbc r21,r25
2220 1070 2093 0000 sts ErsatzKompass,r18
2221 1074 3093 0000 sts (ErsatzKompass)+1,r19
2222 1078 4093 0000 sts (ErsatzKompass)+2,r20
2223 107c 5093 0000 sts (ErsatzKompass)+3,r21
2224 .L94:
2225 1080 2091 0000 lds r18,ErsatzKompass
2226 1084 3091 0000 lds r19,(ErsatzKompass)+1
2227 1088 4091 0000 lds r20,(ErsatzKompass)+2
2228 108c 5091 0000 lds r21,(ErsatzKompass)+3
2229 1090 57FF sbrs r21,7
2230 1092 0CC0 rjmp .L95
2231 1094 260F add r18,r22
2232 1096 371F adc r19,r23
2233 1098 481F adc r20,r24
2234 109a 591F adc r21,r25
2235 109c 2093 0000 sts ErsatzKompass,r18
2236 10a0 3093 0000 sts (ErsatzKompass)+1,r19
2237 10a4 4093 0000 sts (ErsatzKompass)+2,r20
2238 10a8 5093 0000 sts (ErsatzKompass)+3,r21
2239 .L95:
2240 10ac 6091 0000 lds r22,MesswertRoll
2241 10b0 7091 0000 lds r23,(MesswertRoll)+1
2242 10b4 6E0D add r22,r14
2243 10b6 7F1D adc r23,r15
2244 10b8 9B01 movw r18,r22
2245 10ba 4427 clr r20
2246 10bc 37FD sbrc r19,7
2247 10be 4095 com r20
2248 10c0 542F mov r21,r20
2249 10c2 8091 0000 lds r24,Mess_IntegralRoll2
2250 10c6 9091 0000 lds r25,(Mess_IntegralRoll2)+1
2251 10ca A091 0000 lds r26,(Mess_IntegralRoll2)+2
2252 10ce B091 0000 lds r27,(Mess_IntegralRoll2)+3
2253 10d2 820F add r24,r18
2254 10d4 931F adc r25,r19
2255 10d6 A41F adc r26,r20
2256 10d8 B51F adc r27,r21
2257 10da 8093 0000 sts Mess_IntegralRoll2,r24
2258 10de 9093 0000 sts (Mess_IntegralRoll2)+1,r25
2259 10e2 A093 0000 sts (Mess_IntegralRoll2)+2,r26
2260 10e6 B093 0000 sts (Mess_IntegralRoll2)+3,r27
2261 10ea 8091 0000 lds r24,LageKorrekturRoll
2262 10ee 9091 0000 lds r25,(LageKorrekturRoll)+1
2263 10f2 681B sub r22,r24
2264 10f4 790B sbc r23,r25
2265 10f6 CB01 movw r24,r22
2266 10f8 AA27 clr r26
2267 10fa 97FD sbrc r25,7
2268 10fc A095 com r26
2269 10fe BA2F mov r27,r26
2270 1100 2985 ldd r18,Y+9
2271 1102 3A85 ldd r19,Y+10
2272 1104 4B85 ldd r20,Y+11
2273 1106 5C85 ldd r21,Y+12
2274 1108 820F add r24,r18
2275 110a 931F adc r25,r19
2276 110c A41F adc r26,r20
2277 110e B51F adc r27,r21
2278 1110 8093 0000 sts Mess_IntegralRoll,r24
2279 1114 9093 0000 sts (Mess_IntegralRoll)+1,r25
2280 1118 A093 0000 sts (Mess_IntegralRoll)+2,r26
2281 111c B093 0000 sts (Mess_IntegralRoll)+3,r27
2282 1120 C090 0000 lds r12,Umschlag180Roll
2283 1124 D090 0000 lds r13,(Umschlag180Roll)+1
2284 1128 E090 0000 lds r14,(Umschlag180Roll)+2
2285 112c F090 0000 lds r15,(Umschlag180Roll)+3
2286 1130 C816 cp r12,r24
2287 1132 D906 cpc r13,r25
2288 1134 EA06 cpc r14,r26
2289 1136 FB06 cpc r15,r27
2290 1138 C4F4 brge .L96
2291 113a 88EA ldi r24,lo8(25000)
2292 113c 91E6 ldi r25,hi8(25000)
2293 113e A0E0 ldi r26,hlo8(25000)
2294 1140 B0E0 ldi r27,hhi8(25000)
2295 1142 8C19 sub r24,r12
2296 1144 9D09 sbc r25,r13
2297 1146 AE09 sbc r26,r14
2298 1148 BF09 sbc r27,r15
2299 114a 8093 0000 sts Mess_IntegralRoll,r24
2300 114e 9093 0000 sts (Mess_IntegralRoll)+1,r25
2301 1152 A093 0000 sts (Mess_IntegralRoll)+2,r26
2302 1156 B093 0000 sts (Mess_IntegralRoll)+3,r27
2303 115a 8093 0000 sts Mess_IntegralRoll2,r24
2304 115e 9093 0000 sts (Mess_IntegralRoll2)+1,r25
2305 1162 A093 0000 sts (Mess_IntegralRoll2)+2,r26
2306 1166 B093 0000 sts (Mess_IntegralRoll2)+3,r27
2307 .L96:
2308 116a 2227 clr r18
2309 116c 3327 clr r19
2310 116e A901 movw r20,r18
2311 1170 2C19 sub r18,r12
2312 1172 3D09 sbc r19,r13
2313 1174 4E09 sbc r20,r14
2314 1176 5F09 sbc r21,r15
2315 1178 8091 0000 lds r24,Mess_IntegralRoll
2316 117c 9091 0000 lds r25,(Mess_IntegralRoll)+1
2317 1180 A091 0000 lds r26,(Mess_IntegralRoll)+2
2318 1184 B091 0000 lds r27,(Mess_IntegralRoll)+3
2319 1188 8217 cp r24,r18
2320 118a 9307 cpc r25,r19
2321 118c A407 cpc r26,r20
2322 118e B507 cpc r27,r21
2323 1190 B4F4 brge .L97
2324 1192 D701 movw r26,r14
2325 1194 C601 movw r24,r12
2326 1196 885A subi r24,lo8(-(-25000))
2327 1198 9146 sbci r25,hi8(-(-25000))
2328 119a A040 sbci r26,hlo8(-(-25000))
2329 119c B040 sbci r27,hhi8(-(-25000))
2330 119e 8093 0000 sts Mess_IntegralRoll,r24
2331 11a2 9093 0000 sts (Mess_IntegralRoll)+1,r25
2332 11a6 A093 0000 sts (Mess_IntegralRoll)+2,r26
2333 11aa B093 0000 sts (Mess_IntegralRoll)+3,r27
2334 11ae 8093 0000 sts Mess_IntegralRoll2,r24
2335 11b2 9093 0000 sts (Mess_IntegralRoll2)+1,r25
2336 11b6 A093 0000 sts (Mess_IntegralRoll2)+2,r26
2337 11ba B093 0000 sts (Mess_IntegralRoll2)+3,r27
2338 .L97:
2339 11be 6091 0000 lds r22,MesswertNick
2340 11c2 7091 0000 lds r23,(MesswertNick)+1
2341 11c6 600F add r22,r16
2342 11c8 711F adc r23,r17
2343 11ca 9B01 movw r18,r22
2344 11cc 4427 clr r20
2345 11ce 37FD sbrc r19,7
2346 11d0 4095 com r20
2347 11d2 542F mov r21,r20
2348 11d4 8091 0000 lds r24,Mess_IntegralNick2
2349 11d8 9091 0000 lds r25,(Mess_IntegralNick2)+1
2350 11dc A091 0000 lds r26,(Mess_IntegralNick2)+2
2351 11e0 B091 0000 lds r27,(Mess_IntegralNick2)+3
2352 11e4 820F add r24,r18
2353 11e6 931F adc r25,r19
2354 11e8 A41F adc r26,r20
2355 11ea B51F adc r27,r21
2356 11ec 8093 0000 sts Mess_IntegralNick2,r24
2357 11f0 9093 0000 sts (Mess_IntegralNick2)+1,r25
2358 11f4 A093 0000 sts (Mess_IntegralNick2)+2,r26
2359 11f8 B093 0000 sts (Mess_IntegralNick2)+3,r27
2360 11fc 8091 0000 lds r24,LageKorrekturNick
2361 1200 9091 0000 lds r25,(LageKorrekturNick)+1
2362 1204 681B sub r22,r24
2363 1206 790B sbc r23,r25
2364 1208 CB01 movw r24,r22
2365 120a AA27 clr r26
2366 120c 97FD sbrc r25,7
2367 120e A095 com r26
2368 1210 BA2F mov r27,r26
2369 1212 2D85 ldd r18,Y+13
2370 1214 3E85 ldd r19,Y+14
2371 1216 4F85 ldd r20,Y+15
2372 1218 5889 ldd r21,Y+16
2373 121a 820F add r24,r18
2374 121c 931F adc r25,r19
2375 121e A41F adc r26,r20
2376 1220 B51F adc r27,r21
2377 1222 8093 0000 sts Mess_IntegralNick,r24
2378 1226 9093 0000 sts (Mess_IntegralNick)+1,r25
2379 122a A093 0000 sts (Mess_IntegralNick)+2,r26
2380 122e B093 0000 sts (Mess_IntegralNick)+3,r27
2381 1232 E090 0000 lds r14,Umschlag180Nick
2382 1236 F090 0000 lds r15,(Umschlag180Nick)+1
2383 123a 0091 0000 lds r16,(Umschlag180Nick)+2
2384 123e 1091 0000 lds r17,(Umschlag180Nick)+3
2385 1242 E816 cp r14,r24
2386 1244 F906 cpc r15,r25
2387 1246 0A07 cpc r16,r26
2388 1248 1B07 cpc r17,r27
2389 124a C4F4 brge .L98
2390 124c 88EA ldi r24,lo8(25000)
2391 124e 91E6 ldi r25,hi8(25000)
2392 1250 A0E0 ldi r26,hlo8(25000)
2393 1252 B0E0 ldi r27,hhi8(25000)
2394 1254 8E19 sub r24,r14
2395 1256 9F09 sbc r25,r15
2396 1258 A00B sbc r26,r16
2397 125a B10B sbc r27,r17
2398 125c 8093 0000 sts Mess_IntegralNick,r24
2399 1260 9093 0000 sts (Mess_IntegralNick)+1,r25
2400 1264 A093 0000 sts (Mess_IntegralNick)+2,r26
2401 1268 B093 0000 sts (Mess_IntegralNick)+3,r27
2402 126c 8093 0000 sts Mess_IntegralNick2,r24
2403 1270 9093 0000 sts (Mess_IntegralNick2)+1,r25
2404 1274 A093 0000 sts (Mess_IntegralNick2)+2,r26
2405 1278 B093 0000 sts (Mess_IntegralNick2)+3,r27
2406 .L98:
2407 127c 2227 clr r18
2408 127e 3327 clr r19
2409 1280 A901 movw r20,r18
2410 1282 2E19 sub r18,r14
2411 1284 3F09 sbc r19,r15
2412 1286 400B sbc r20,r16
2413 1288 510B sbc r21,r17
2414 128a 8091 0000 lds r24,Mess_IntegralNick
2415 128e 9091 0000 lds r25,(Mess_IntegralNick)+1
2416 1292 A091 0000 lds r26,(Mess_IntegralNick)+2
2417 1296 B091 0000 lds r27,(Mess_IntegralNick)+3
2418 129a 8217 cp r24,r18
2419 129c 9307 cpc r25,r19
2420 129e A407 cpc r26,r20
2421 12a0 B507 cpc r27,r21
2422 12a2 B4F4 brge .L99
2423 12a4 D801 movw r26,r16
2424 12a6 C701 movw r24,r14
2425 12a8 885A subi r24,lo8(-(-25000))
2426 12aa 9146 sbci r25,hi8(-(-25000))
2427 12ac A040 sbci r26,hlo8(-(-25000))
2428 12ae B040 sbci r27,hhi8(-(-25000))
2429 12b0 8093 0000 sts Mess_IntegralNick,r24
2430 12b4 9093 0000 sts (Mess_IntegralNick)+1,r25
2431 12b8 A093 0000 sts (Mess_IntegralNick)+2,r26
2432 12bc B093 0000 sts (Mess_IntegralNick)+3,r27
2433 12c0 8093 0000 sts Mess_IntegralNick2,r24
2434 12c4 9093 0000 sts (Mess_IntegralNick2)+1,r25
2435 12c8 A093 0000 sts (Mess_IntegralNick2)+2,r26
2436 12cc B093 0000 sts (Mess_IntegralNick2)+3,r27
2437 .L99:
2438 12d0 8091 0000 lds r24,Mess_Integral_Gier
2439 12d4 9091 0000 lds r25,(Mess_Integral_Gier)+1
2440 12d8 A091 0000 lds r26,(Mess_Integral_Gier)+2
2441 12dc B091 0000 lds r27,(Mess_Integral_Gier)+3
2442 12e0 8093 0000 sts Integral_Gier,r24
2443 12e4 9093 0000 sts (Integral_Gier)+1,r25
2444 12e8 A093 0000 sts (Integral_Gier)+2,r26
2445 12ec B093 0000 sts (Integral_Gier)+3,r27
2446 12f0 8091 0000 lds r24,Mess_IntegralNick
2447 12f4 9091 0000 lds r25,(Mess_IntegralNick)+1
2448 12f8 A091 0000 lds r26,(Mess_IntegralNick)+2
2449 12fc B091 0000 lds r27,(Mess_IntegralNick)+3
2450 1300 8093 0000 sts IntegralNick,r24
2451 1304 9093 0000 sts (IntegralNick)+1,r25
2452 1308 A093 0000 sts (IntegralNick)+2,r26
2453 130c B093 0000 sts (IntegralNick)+3,r27
2454 1310 8091 0000 lds r24,Mess_IntegralRoll
2455 1314 9091 0000 lds r25,(Mess_IntegralRoll)+1
2456 1318 A091 0000 lds r26,(Mess_IntegralRoll)+2
2457 131c B091 0000 lds r27,(Mess_IntegralRoll)+3
2458 1320 8093 0000 sts IntegralRoll,r24
2459 1324 9093 0000 sts (IntegralRoll)+1,r25
2460 1328 A093 0000 sts (IntegralRoll)+2,r26
2461 132c B093 0000 sts (IntegralRoll)+3,r27
2462 1330 8091 0000 lds r24,Mess_IntegralNick2
2463 1334 9091 0000 lds r25,(Mess_IntegralNick2)+1
2464 1338 A091 0000 lds r26,(Mess_IntegralNick2)+2
2465 133c B091 0000 lds r27,(Mess_IntegralNick2)+3
2466 1340 8093 0000 sts IntegralNick2,r24
2467 1344 9093 0000 sts (IntegralNick2)+1,r25
2468 1348 A093 0000 sts (IntegralNick2)+2,r26
2469 134c B093 0000 sts (IntegralNick2)+3,r27
2470 1350 8091 0000 lds r24,Mess_IntegralRoll2
2471 1354 9091 0000 lds r25,(Mess_IntegralRoll2)+1
2472 1358 A091 0000 lds r26,(Mess_IntegralRoll2)+2
2473 135c B091 0000 lds r27,(Mess_IntegralRoll2)+3
2474 1360 8093 0000 sts IntegralRoll2,r24
2475 1364 9093 0000 sts (IntegralRoll2)+1,r25
2476 1368 A093 0000 sts (IntegralRoll2)+2,r26
2477 136c B093 0000 sts (IntegralRoll2)+3,r27
2478 1370 8091 0000 lds r24,HiResNick
2479 1374 9091 0000 lds r25,(HiResNick)+1
2480 1378 97FD sbrc r25,7
2481 137a 0796 adiw r24,7
2482 .L100:
2483 137c 33E0 ldi r19,3
2484 137e 9595 1: asr r25
2485 1380 8795 ror r24
2486 1382 3A95 dec r19
2487 1384 E1F7 brne 1b
2488 1386 9093 0000 sts (MesswertNick)+1,r25
2489 138a 8093 0000 sts MesswertNick,r24
2490 138e 8091 0000 lds r24,HiResRoll
2491 1392 9091 0000 lds r25,(HiResRoll)+1
2492 1396 97FD sbrc r25,7
2493 1398 0796 adiw r24,7
2494 .L101:
2495 139a 23E0 ldi r18,3
2496 139c 9595 1: asr r25
2497 139e 8795 ror r24
2498 13a0 2A95 dec r18
2499 13a2 E1F7 brne 1b
2500 13a4 9093 0000 sts (MesswertRoll)+1,r25
2501 13a8 8093 0000 sts MesswertRoll,r24
2502 13ac 8091 0000 lds r24,AdWertNick
2503 13b0 9091 0000 lds r25,(AdWertNick)+1
2504 13b4 0F97 sbiw r24,15
2505 13b6 34F4 brge .L102
2506 13b8 88E1 ldi r24,lo8(-1000)
2507 13ba 9CEF ldi r25,hi8(-1000)
2508 13bc 9093 0000 sts (MesswertNick)+1,r25
2509 13c0 8093 0000 sts MesswertNick,r24
2510 .L102:
2511 13c4 8091 0000 lds r24,AdWertNick
2512 13c8 9091 0000 lds r25,(AdWertNick)+1
2513 13cc 0797 sbiw r24,7
2514 13ce 34F4 brge .L103
2515 13d0 80E3 ldi r24,lo8(-2000)
2516 13d2 98EF ldi r25,hi8(-2000)
2517 13d4 9093 0000 sts (MesswertNick)+1,r25
2518 13d8 8093 0000 sts MesswertNick,r24
2519 .L103:
2520 13dc 2091 0000 lds r18,PlatinenVersion
2521 13e0 2A30 cpi r18,lo8(10)
2522 13e2 A9F4 brne .L104
2523 13e4 8091 0000 lds r24,AdWertNick
2524 13e8 9091 0000 lds r25,(AdWertNick)+1
2525 13ec 835F subi r24,lo8(1011)
2526 13ee 9340 sbci r25,hi8(1011)
2527 13f0 34F0 brlt .L105
2528 13f2 88EE ldi r24,lo8(1000)
2529 13f4 93E0 ldi r25,hi8(1000)
2530 13f6 9093 0000 sts (MesswertNick)+1,r25
2531 13fa 8093 0000 sts MesswertNick,r24
2532 .L105:
2533 13fe 8091 0000 lds r24,AdWertNick
2534 1402 9091 0000 lds r25,(AdWertNick)+1
2535 1406 8A5F subi r24,lo8(1018)
2536 1408 9340 sbci r25,hi8(1018)
2537 140a DCF0 brlt .L107
2538 140c 14C0 rjmp .L163
2539 .L104:
2540 140e 8091 0000 lds r24,AdWertNick
2541 1412 9091 0000 lds r25,(AdWertNick)+1
2542 1416 815D subi r24,lo8(2001)
2543 1418 9740 sbci r25,hi8(2001)
2544 141a 34F0 brlt .L108
2545 141c 88EE ldi r24,lo8(1000)
2546 141e 93E0 ldi r25,hi8(1000)
2547 1420 9093 0000 sts (MesswertNick)+1,r25
2548 1424 8093 0000 sts MesswertNick,r24
2549 .L108:
2550 1428 8091 0000 lds r24,AdWertNick
2551 142c 9091 0000 lds r25,(AdWertNick)+1
2552 1430 805E subi r24,lo8(2016)
2553 1432 9740 sbci r25,hi8(2016)
2554 1434 34F0 brlt .L107
2555 .L163:
2556 1436 80ED ldi r24,lo8(2000)
2557 1438 97E0 ldi r25,hi8(2000)
2558 143a 9093 0000 sts (MesswertNick)+1,r25
2559 143e 8093 0000 sts MesswertNick,r24
2560 .L107:
2561 1442 8091 0000 lds r24,AdWertRoll
2562 1446 9091 0000 lds r25,(AdWertRoll)+1
2563 144a 0F97 sbiw r24,15
2564 144c 34F4 brge .L110
2565 144e 88E1 ldi r24,lo8(-1000)
2566 1450 9CEF ldi r25,hi8(-1000)
2567 1452 9093 0000 sts (MesswertRoll)+1,r25
2568 1456 8093 0000 sts MesswertRoll,r24
2569 .L110:
2570 145a 8091 0000 lds r24,AdWertRoll
2571 145e 9091 0000 lds r25,(AdWertRoll)+1
2572 1462 0797 sbiw r24,7
2573 1464 34F4 brge .L111
2574 1466 80E3 ldi r24,lo8(-2000)
2575 1468 98EF ldi r25,hi8(-2000)
2576 146a 9093 0000 sts (MesswertRoll)+1,r25
2577 146e 8093 0000 sts MesswertRoll,r24
2578 .L111:
2579 1472 2A30 cpi r18,lo8(10)
2580 1474 A9F4 brne .L112
2581 1476 8091 0000 lds r24,AdWertRoll
2582 147a 9091 0000 lds r25,(AdWertRoll)+1
2583 147e 835F subi r24,lo8(1011)
2584 1480 9340 sbci r25,hi8(1011)
2585 1482 34F0 brlt .L113
2586 1484 88EE ldi r24,lo8(1000)
2587 1486 93E0 ldi r25,hi8(1000)
2588 1488 9093 0000 sts (MesswertRoll)+1,r25
2589 148c 8093 0000 sts MesswertRoll,r24
2590 .L113:
2591 1490 8091 0000 lds r24,AdWertRoll
2592 1494 9091 0000 lds r25,(AdWertRoll)+1
2593 1498 8A5F subi r24,lo8(1018)
2594 149a 9340 sbci r25,hi8(1018)
2595 149c DCF0 brlt .L115
2596 149e 14C0 rjmp .L164
2597 .L112:
2598 14a0 8091 0000 lds r24,AdWertRoll
2599 14a4 9091 0000 lds r25,(AdWertRoll)+1
2600 14a8 815D subi r24,lo8(2001)
2601 14aa 9740 sbci r25,hi8(2001)
2602 14ac 34F0 brlt .L116
2603 14ae 88EE ldi r24,lo8(1000)
2604 14b0 93E0 ldi r25,hi8(1000)
2605 14b2 9093 0000 sts (MesswertRoll)+1,r25
2606 14b6 8093 0000 sts MesswertRoll,r24
2607 .L116:
2608 14ba 8091 0000 lds r24,AdWertRoll
2609 14be 9091 0000 lds r25,(AdWertRoll)+1
2610 14c2 805E subi r24,lo8(2016)
2611 14c4 9740 sbci r25,hi8(2016)
2612 14c6 34F0 brlt .L115
2613 .L164:
2614 14c8 80ED ldi r24,lo8(2000)
2615 14ca 97E0 ldi r25,hi8(2000)
2616 14cc 9093 0000 sts (MesswertRoll)+1,r25
2617 14d0 8093 0000 sts MesswertRoll,r24
2618 .L115:
2619 14d4 E091 0000 lds r30,Parameter_Gyro_D
2620 14d8 EE23 tst r30
2621 14da 09F4 brne .+2
2622 14dc B7C0 rjmp .L118
2623 14de 4091 0000 lds r20,HiResNick
2624 14e2 5091 0000 lds r21,(HiResNick)+1
2625 14e6 8091 0000 lds r24,oldNick.36
2626 14ea 9091 0000 lds r25,(oldNick.36)+1
2627 14ee 481B sub r20,r24
2628 14f0 590B sbc r21,r25
2629 14f2 5093 0000 sts (d2Nick.39)+1,r21
2630 14f6 4093 0000 sts d2Nick.39,r20
2631 14fa 2091 0000 lds r18,HiResNick
2632 14fe 3091 0000 lds r19,(HiResNick)+1
2633 1502 280F add r18,r24
2634 1504 391F adc r19,r25
2635 1506 37FF sbrs r19,7
2636 1508 02C0 rjmp .L119
2637 150a 2F5F subi r18,lo8(-(1))
2638 150c 3F4F sbci r19,hi8(-(1))
2639 .L119:
2640 150e 3595 asr r19
2641 1510 2795 ror r18
2642 1512 3093 0000 sts (oldNick.36)+1,r19
2643 1516 2093 0000 sts oldNick.36,r18
2644 151a 4138 cpi r20,129
2645 151c 5105 cpc r21,__zero_reg__
2646 151e 1CF0 brlt .L120
2647 1520 80E8 ldi r24,lo8(128)
2648 1522 90E0 ldi r25,hi8(128)
2649 1524 05C0 rjmp .L165
2650 .L120:
2651 1526 4058 subi r20,lo8(-128)
2652 1528 5F4F sbci r21,hi8(-128)
2653 152a 34F4 brge .L121
2654 152c 80E8 ldi r24,lo8(-128)
2655 152e 9FEF ldi r25,hi8(-128)
2656 .L165:
2657 1530 9093 0000 sts (d2Nick.39)+1,r25
2658 1534 8093 0000 sts d2Nick.39,r24
2659 .L121:
2660 1538 8E2F mov r24,r30
2661 153a 9927 clr r25
2662 153c A091 0000 lds r26,d2Nick.39
2663 1540 B091 0000 lds r27,(d2Nick.39)+1
2664 1544 A89F mul r26,r24
2665 1546 A001 movw r20,r0
2666 1548 A99F mul r26,r25
2667 154a 500D add r21,r0
2668 154c B89F mul r27,r24
2669 154e 500D add r21,r0
2670 1550 1124 clr r1
2671 1552 57FF sbrs r21,7
2672 1554 02C0 rjmp .L123
2673 1556 415F subi r20,lo8(-(15))
2674 1558 5F4F sbci r21,hi8(-(15))
2675 .L123:
2676 155a 14E0 ldi r17,4
2677 155c 5595 1: asr r21
2678 155e 4795 ror r20
2679 1560 1A95 dec r17
2680 1562 E1F7 brne 1b
2681 1564 8091 0000 lds r24,MesswertNick
2682 1568 9091 0000 lds r25,(MesswertNick)+1
2683 156c 840F add r24,r20
2684 156e 951F adc r25,r21
2685 1570 9093 0000 sts (MesswertNick)+1,r25
2686 1574 8093 0000 sts MesswertNick,r24
2687 1578 6091 0000 lds r22,HiResRoll
2688 157c 7091 0000 lds r23,(HiResRoll)+1
2689 1580 8091 0000 lds r24,oldRoll.37
2690 1584 9091 0000 lds r25,(oldRoll.37)+1
2691 1588 681B sub r22,r24
2692 158a 790B sbc r23,r25
2693 158c 7093 0000 sts (d2Roll.38)+1,r23
2694 1590 6093 0000 sts d2Roll.38,r22
2695 1594 4091 0000 lds r20,HiResRoll
2696 1598 5091 0000 lds r21,(HiResRoll)+1
2697 159c 480F add r20,r24
2698 159e 591F adc r21,r25
2699 15a0 57FF sbrs r21,7
2700 15a2 02C0 rjmp .L124
2701 15a4 4F5F subi r20,lo8(-(1))
2702 15a6 5F4F sbci r21,hi8(-(1))
2703 .L124:
2704 15a8 5595 asr r21
2705 15aa 4795 ror r20
2706 15ac 5093 0000 sts (oldRoll.37)+1,r21
2707 15b0 4093 0000 sts oldRoll.37,r20
2708 15b4 6138 cpi r22,129
2709 15b6 7105 cpc r23,__zero_reg__
2710 15b8 1CF0 brlt .L125
2711 15ba 80E8 ldi r24,lo8(128)
2712 15bc 90E0 ldi r25,hi8(128)
2713 15be 05C0 rjmp .L166
2714 .L125:
2715 15c0 6058 subi r22,lo8(-128)
2716 15c2 7F4F sbci r23,hi8(-128)
2717 15c4 34F4 brge .L126
2718 15c6 80E8 ldi r24,lo8(-128)
2719 15c8 9FEF ldi r25,hi8(-128)
2720 .L166:
2721 15ca 9093 0000 sts (d2Roll.38)+1,r25
2722 15ce 8093 0000 sts d2Roll.38,r24
2723 .L126:
2724 15d2 2E2F mov r18,r30
2725 15d4 3327 clr r19
2726 15d6 8091 0000 lds r24,d2Roll.38
2727 15da 9091 0000 lds r25,(d2Roll.38)+1
2728 15de 829F mul r24,r18
2729 15e0 B001 movw r22,r0
2730 15e2 839F mul r24,r19
2731 15e4 700D add r23,r0
2732 15e6 929F mul r25,r18
2733 15e8 700D add r23,r0
2734 15ea 1124 clr r1
2735 15ec AB01 movw r20,r22
2736 15ee 77FF sbrs r23,7
2737 15f0 02C0 rjmp .L128
2738 15f2 415F subi r20,lo8(-(15))
2739 15f4 5F4F sbci r21,hi8(-(15))
2740 .L128:
2741 15f6 E4E0 ldi r30,4
2742 15f8 5595 1: asr r21
2743 15fa 4795 ror r20
2744 15fc EA95 dec r30
2745 15fe E1F7 brne 1b
2746 1600 8091 0000 lds r24,MesswertRoll
2747 1604 9091 0000 lds r25,(MesswertRoll)+1
2748 1608 840F add r24,r20
2749 160a 951F adc r25,r21
2750 160c 9093 0000 sts (MesswertRoll)+1,r25
2751 1610 8093 0000 sts MesswertRoll,r24
2752 1614 A29F mul r26,r18
2753 1616 C001 movw r24,r0
2754 1618 A39F mul r26,r19
2755 161a 900D add r25,r0
2756 161c B29F mul r27,r18
2757 161e 900D add r25,r0
2758 1620 1124 clr r1
2759 1622 9C01 movw r18,r24
2760 1624 8091 0000 lds r24,HiResNick
2761 1628 9091 0000 lds r25,(HiResNick)+1
2762 162c 820F add r24,r18
2763 162e 931F adc r25,r19
2764 1630 9093 0000 sts (HiResNick)+1,r25
2765 1634 8093 0000 sts HiResNick,r24
2766 1638 8091 0000 lds r24,HiResRoll
2767 163c 9091 0000 lds r25,(HiResRoll)+1
2768 1640 860F add r24,r22
2769 1642 971F adc r25,r23
2770 1644 9093 0000 sts (HiResRoll)+1,r25
2771 1648 8093 0000 sts HiResRoll,r24
2772 .L118:
2773 164c 0091 0000 lds r16,RohMesswertRoll
2774 1650 1091 0000 lds r17,(RohMesswertRoll)+1
2775 1654 8091 0000 lds r24,KopplungsteilNickRoll
2776 1658 9091 0000 lds r25,(KopplungsteilNickRoll)+1
2777 165c 1016 cp __zero_reg__,r16
2778 165e 1106 cpc __zero_reg__,r17
2779 1660 5CF5 brge .L129
2780 1662 9C01 movw r18,r24
2781 1664 97FF sbrs r25,7
2782 1666 04C0 rjmp .L130
2783 1668 2227 clr r18
2784 166a 3327 clr r19
2785 166c 281B sub r18,r24
2786 166e 390B sbc r19,r25
2787 .L130:
2788 1670 C901 movw r24,r18
2789 1672 AA27 clr r26
2790 1674 97FD sbrc r25,7
2791 1676 A095 com r26
2792 1678 BA2F mov r27,r26
2793 167a 2091 0000 lds r18,Parameter_CouplingYawCorrection
2794 167e 3327 clr r19
2795 1680 4427 clr r20
2796 1682 5527 clr r21
2797 1684 BC01 movw r22,r24
2798 1686 CD01 movw r24,r26
2799 1688 0E94 0000 call __mulsi3
2800 168c 9B01 movw r18,r22
2801 168e AC01 movw r20,r24
2802 1690 97FF sbrs r25,7
2803 1692 04C0 rjmp .L131
2804 1694 215C subi r18,lo8(-(63))
2805 1696 3F4F sbci r19,hi8(-(63))
2806 1698 4F4F sbci r20,hlo8(-(63))
2807 169a 5F4F sbci r21,hhi8(-(63))
2808 .L131:
2809 169c 76E0 ldi r23,6
2810 169e 5595 1: asr r21
2811 16a0 4795 ror r20
2812 16a2 3795 ror r19
2813 16a4 2795 ror r18
2814 16a6 7A95 dec r23
2815 16a8 D1F7 brne 1b
2816 16aa 8091 0000 lds r24,TrimRoll
2817 16ae 9091 0000 lds r25,(TrimRoll)+1
2818 16b2 820F add r24,r18
2819 16b4 931F adc r25,r19
2820 16b6 27C0 rjmp .L167
2821 .L129:
2822 16b8 97FF sbrs r25,7
2823 16ba 03C0 rjmp .L133
2824 16bc 9095 com r25
2825 16be 8195 neg r24
2826 16c0 9F4F sbci r25,lo8(-1)
2827 .L133:
2828 16c2 AA27 clr r26
2829 16c4 97FD sbrc r25,7
2830 16c6 A095 com r26
2831 16c8 BA2F mov r27,r26
2832 16ca 2091 0000 lds r18,Parameter_CouplingYawCorrection
2833 16ce 3327 clr r19
2834 16d0 4427 clr r20
2835 16d2 5527 clr r21
2836 16d4 BC01 movw r22,r24
2837 16d6 CD01 movw r24,r26
2838 16d8 0E94 0000 call __mulsi3
2839 16dc 9B01 movw r18,r22
2840 16de AC01 movw r20,r24
2841 16e0 97FF sbrs r25,7
2842 16e2 04C0 rjmp .L134
2843 16e4 215C subi r18,lo8(-(63))
2844 16e6 3F4F sbci r19,hi8(-(63))
2845 16e8 4F4F sbci r20,hlo8(-(63))
2846 16ea 5F4F sbci r21,hhi8(-(63))
2847 .L134:
2848 16ec 66E0 ldi r22,6
2849 16ee 5595 1: asr r21
2850 16f0 4795 ror r20
2851 16f2 3795 ror r19
2852 16f4 2795 ror r18
2853 16f6 6A95 dec r22
2854 16f8 D1F7 brne 1b
2855 16fa 8091 0000 lds r24,TrimRoll
2856 16fe 9091 0000 lds r25,(TrimRoll)+1
2857 1702 821B sub r24,r18
2858 1704 930B sbc r25,r19
2859 .L167:
2860 1706 9093 0000 sts (TrimRoll)+1,r25
2861 170a 8093 0000 sts TrimRoll,r24
2862 170e E090 0000 lds r14,RohMesswertNick
2863 1712 F090 0000 lds r15,(RohMesswertNick)+1
2864 1716 8091 0000 lds r24,KopplungsteilRollNick
2865 171a 9091 0000 lds r25,(KopplungsteilRollNick)+1
2866 171e 1E14 cp __zero_reg__,r14
2867 1720 1F04 cpc __zero_reg__,r15
2868 1722 5CF5 brge .L135
2869 1724 9C01 movw r18,r24
2870 1726 97FF sbrs r25,7
2871 1728 04C0 rjmp .L136
2872 172a 2227 clr r18
2873 172c 3327 clr r19
2874 172e 281B sub r18,r24
2875 1730 390B sbc r19,r25
2876 .L136:
2877 1732 C901 movw r24,r18
2878 1734 AA27 clr r26
2879 1736 97FD sbrc r25,7
2880 1738 A095 com r26
2881 173a BA2F mov r27,r26
2882 173c 2091 0000 lds r18,Parameter_CouplingYawCorrection
2883 1740 3327 clr r19
2884 1742 4427 clr r20
2885 1744 5527 clr r21
2886 1746 BC01 movw r22,r24
2887 1748 CD01 movw r24,r26
2888 174a 0E94 0000 call __mulsi3
2889 174e 9B01 movw r18,r22
2890 1750 AC01 movw r20,r24
2891 1752 97FF sbrs r25,7
2892 1754 04C0 rjmp .L137
2893 1756 215C subi r18,lo8(-(63))
2894 1758 3F4F sbci r19,hi8(-(63))
2895 175a 4F4F sbci r20,hlo8(-(63))
2896 175c 5F4F sbci r21,hhi8(-(63))
2897 .L137:
2898 175e 96E0 ldi r25,6
2899 1760 5595 1: asr r21
2900 1762 4795 ror r20
2901 1764 3795 ror r19
2902 1766 2795 ror r18
2903 1768 9A95 dec r25
2904 176a D1F7 brne 1b
2905 176c 8091 0000 lds r24,TrimNick
2906 1770 9091 0000 lds r25,(TrimNick)+1
2907 1774 820F add r24,r18
2908 1776 931F adc r25,r19
2909 1778 27C0 rjmp .L168
2910 .L135:
2911 177a 97FF sbrs r25,7
2912 177c 03C0 rjmp .L139
2913 177e 9095 com r25
2914 1780 8195 neg r24
2915 1782 9F4F sbci r25,lo8(-1)
2916 .L139:
2917 1784 AA27 clr r26
2918 1786 97FD sbrc r25,7
2919 1788 A095 com r26
2920 178a BA2F mov r27,r26
2921 178c 2091 0000 lds r18,Parameter_CouplingYawCorrection
2922 1790 3327 clr r19
2923 1792 4427 clr r20
2924 1794 5527 clr r21
2925 1796 BC01 movw r22,r24
2926 1798 CD01 movw r24,r26
2927 179a 0E94 0000 call __mulsi3
2928 179e 9B01 movw r18,r22
2929 17a0 AC01 movw r20,r24
2930 17a2 97FF sbrs r25,7
2931 17a4 04C0 rjmp .L140
2932 17a6 215C subi r18,lo8(-(63))
2933 17a8 3F4F sbci r19,hi8(-(63))
2934 17aa 4F4F sbci r20,hlo8(-(63))
2935 17ac 5F4F sbci r21,hhi8(-(63))
2936 .L140:
2937 17ae 86E0 ldi r24,6
2938 17b0 5595 1: asr r21
2939 17b2 4795 ror r20
2940 17b4 3795 ror r19
2941 17b6 2795 ror r18
2942 17b8 8A95 dec r24
2943 17ba D1F7 brne 1b
2944 17bc 8091 0000 lds r24,TrimNick
2945 17c0 9091 0000 lds r25,(TrimNick)+1
2946 17c4 821B sub r24,r18
2947 17c6 930B sbc r25,r19
2948 .L168:
2949 17c8 9093 0000 sts (TrimNick)+1,r25
2950 17cc 8093 0000 sts TrimNick,r24
2951 17d0 8091 0000 lds r24,EE_Parameter+13
2952 17d4 87FF sbrs r24,7
2953 17d6 44C0 rjmp .L141
2954 17d8 9989 ldd r25,Y+17
2955 17da 9923 tst r25
2956 17dc 09F0 breq .+2
2957 17de 40C0 rjmp .L141
2958 17e0 8091 0000 lds r24,Looping_Roll
2959 17e4 8823 tst r24
2960 17e6 E1F5 brne .L141
2961 17e8 A1E0 ldi r26,lo8(257)
2962 17ea EA16 cp r14,r26
2963 17ec A1E0 ldi r26,hi8(257)
2964 17ee FA06 cpc r15,r26
2965 17f0 4CF0 brlt .L142
2966 17f2 8091 0000 lds r24,MesswertNick
2967 17f6 9091 0000 lds r25,(MesswertNick)+1
2968 17fa 8E0D add r24,r14
2969 17fc 9F1D adc r25,r15
2970 17fe 8050 subi r24,lo8(-(-256))
2971 1800 9140 sbci r25,hi8(-(-256))
2972 1802 0DC0 rjmp .L169
2973 .L142:
2974 1804 B0E0 ldi r27,lo8(-256)
2975 1806 EB16 cp r14,r27
2976 1808 BFEF ldi r27,hi8(-256)
2977 180a FB06 cpc r15,r27
2978 180c 64F4 brge .L143
2979 180e 8091 0000 lds r24,MesswertNick
2980 1812 9091 0000 lds r25,(MesswertNick)+1
2981 1816 8E0D add r24,r14
2982 1818 9F1D adc r25,r15
2983 181a 8050 subi r24,lo8(-(256))
2984 181c 9F4F sbci r25,hi8(-(256))
2985 .L169:
2986 181e 9093 0000 sts (MesswertNick)+1,r25
2987 1822 8093 0000 sts MesswertNick,r24
2988 .L143:
2989 1826 E1E0 ldi r30,hi8(257)
2990 1828 0130 cpi r16,lo8(257)
2991 182a 1E07 cpc r17,r30
2992 182c 4CF0 brlt .L145
2993 182e 8091 0000 lds r24,MesswertRoll
2994 1832 9091 0000 lds r25,(MesswertRoll)+1
2995 1836 800F add r24,r16
2996 1838 911F adc r25,r17
2997 183a 8050 subi r24,lo8(-(-256))
2998 183c 9140 sbci r25,hi8(-(-256))
2999 183e 0CC0 rjmp .L170
3000 .L145:
3001 1840 FFEF ldi r31,hi8(-256)
3002 1842 0030 cpi r16,lo8(-256)
3003 1844 1F07 cpc r17,r31
3004 1846 64F4 brge .L141
3005 1848 8091 0000 lds r24,MesswertRoll
3006 184c 9091 0000 lds r25,(MesswertRoll)+1
3007 1850 800F add r24,r16
3008 1852 911F adc r25,r17
3009 1854 8050 subi r24,lo8(-(256))
3010 1856 9F4F sbci r25,hi8(-(256))
3011 .L170:
3012 1858 9093 0000 sts (MesswertRoll)+1,r25
3013 185c 8093 0000 sts MesswertRoll,r24
3014 .L141:
3015 1860 A0E0 ldi r26,lo8(Poti)
3016 1862 B0E0 ldi r27,hi8(Poti)
3017 1864 60E0 ldi r22,lo8(EE_Parameter+5)
3018 1866 70E0 ldi r23,hi8(EE_Parameter+5)
3019 1868 57E0 ldi r21,lo8(7)
3020 .L158:
3021 186a FB01 movw r30,r22
3022 186c 8191 ld r24,Z+
3023 186e BF01 movw r22,r30
3024 1870 E82F mov r30,r24
3025 1872 FF27 clr r31
3026 1874 EE0F add r30,r30
3027 1876 FF1F adc r31,r31
3028 1878 E050 subi r30,lo8(-(PPM_in))
3029 187a F040 sbci r31,hi8(-(PPM_in))
3030 187c 0190 ld __tmp_reg__,Z+
3031 187e F081 ld r31,Z
3032 1880 E02D mov r30,__tmp_reg__
3033 1882 E259 subi r30,lo8(-(110))
3034 1884 FF4F sbci r31,hi8(-(110))
3035 1886 EF3F cpi r30,255
3036 1888 F105 cpc r31,__zero_reg__
3037 188a 21F0 breq .L151
3038 188c 1CF0 brlt .L151
3039 188e EFEF ldi r30,lo8(255)
3040 1890 F0E0 ldi r31,hi8(255)
3041 1892 04C0 rjmp .L152
3042 .L151:
3043 1894 F7FF sbrs r31,7
3044 1896 02C0 rjmp .L152
3045 1898 E0E0 ldi r30,lo8(0)
3046 189a F0E0 ldi r31,hi8(0)
3047 .L152:
3048 189c 4C91 ld r20,X
3049 189e 242F mov r18,r20
3050 18a0 3327 clr r19
3051 18a2 E217 cp r30,r18
3052 18a4 F307 cpc r31,r19
3053 18a6 B1F0 breq .L150
3054 18a8 CF01 movw r24,r30
3055 18aa 821B sub r24,r18
3056 18ac 930B sbc r25,r19
3057 18ae 97FD sbrc r25,7
3058 18b0 0796 adiw r24,7
3059 .L155:
3060 18b2 13E0 ldi r17,3
3061 18b4 9595 1: asr r25
3062 18b6 8795 ror r24
3063 18b8 1A95 dec r17
3064 18ba E1F7 brne 1b
3065 18bc 242F mov r18,r20
3066 18be 280F add r18,r24
3067 18c0 2C93 st X,r18
3068 18c2 822F mov r24,r18
3069 18c4 9927 clr r25
3070 18c6 E817 cp r30,r24
3071 18c8 F907 cpc r31,r25
3072 18ca 14F4 brge .L156
3073 18cc 2150 subi r18,lo8(-(-1))
3074 18ce 01C0 rjmp .L171
3075 .L156:
3076 18d0 2F5F subi r18,lo8(-(1))
3077 .L171:
3078 18d2 2C93 st X,r18
3079 .L150:
3080 18d4 5150 subi r21,lo8(-(-1))
3081 18d6 1196 adiw r26,1
3082 18d8 57FF sbrs r21,7
3083 18da C7CF rjmp .L158
3084 /* epilogue: frame size=19 */
3085 18dc E2E1 ldi r30,18
3086 18de CD5E subi r28,-19
3087 18e0 0C94 0000 jmp __epilogue_restores__+0
3088 /* epilogue end (size=4) */
3089 /* function Mittelwert size 2071 (2061) */
3091 .global SendMotorData
3093 SendMotorData:
3094 /* prologue: frame size=0 */
3095 /* prologue end (size=0) */
3096 18e4 8091 0000 lds r24,MotorenEin
3097 18e8 8823 tst r24
3098 18ea 01F5 brne .L173
3099 18ec 8091 0000 lds r24,FCFlags
3100 18f0 8C7F andi r24,lo8(-4)
3101 18f2 8093 0000 sts FCFlags,r24
3102 18f6 A0E0 ldi r26,lo8(MotorTest)
3103 18f8 B0E0 ldi r27,hi8(MotorTest)
3104 18fa E0E0 ldi r30,lo8(Motor)
3105 18fc F0E0 ldi r31,hi8(Motor)
3106 18fe 9BE0 ldi r25,lo8(11)
3107 .L178:
3108 1900 8091 0000 lds r24,PC_MotortestActive
3109 1904 8823 tst r24
3110 1906 09F4 brne .L177
3111 1908 8C93 st X,r24
3112 .L177:
3113 190a 8D91 ld r24,X+
3114 190c 8183 std Z+1,r24
3115 190e 1282 std Z+2,__zero_reg__
3116 1910 9150 subi r25,lo8(-(-1))
3117 1912 3896 adiw r30,8
3118 1914 97FF sbrs r25,7
3119 1916 F4CF rjmp .L178
3120 1918 8091 0000 lds r24,PC_MotortestActive
3121 191c 8823 tst r24
3122 191e 59F0 breq .L180
3123 1920 8091 0000 lds r24,PC_MotortestActive
3124 1924 8150 subi r24,lo8(-(-1))
3125 1926 8093 0000 sts PC_MotortestActive,r24
3126 192a 05C0 rjmp .L180
3127 .L173:
3128 192c 8091 0000 lds r24,FCFlags
3129 1930 8160 ori r24,lo8(1)
3130 1932 8093 0000 sts FCFlags,r24
3131 .L180:
3132 1936 1092 0000 sts motor_write,__zero_reg__
3133 193a 1092 0000 sts twi_state,__zero_reg__
3134 193e 8091 0000 lds r24,BLFlags
3135 1942 8E7F andi r24,lo8(-2)
3136 1944 8093 0000 sts BLFlags,r24
3137 1948 85EA ldi r24,lo8(-91)
3138 194a 8093 BC00 sts 188,r24
3139 /* epilogue: frame size=0 */
3140 194e 0895 ret
3141 /* epilogue end (size=1) */
3142 /* function SendMotorData size 54 (53) */
3144 .global ParameterZuordnung
3146 ParameterZuordnung:
3147 /* prologue: frame size=0 */
3148 /* prologue end (size=0) */
3149 1950 8091 0000 lds r24,EE_Parameter+15
3150 1954 883F cpi r24,lo8(-8)
3151 1956 38F0 brlo .L275
3152 1958 EFEF ldi r30,lo8(255)
3153 195a F0E0 ldi r31,hi8(255)
3154 195c E81B sub r30,r24
3155 195e F109 sbc r31,__zero_reg__
3156 1960 E050 subi r30,lo8(-(Poti))
3157 1962 F040 sbci r31,hi8(-(Poti))
3158 1964 8081 ld r24,Z
3159 .L275:
3160 1966 8093 0000 sts Parameter_Luftdruck_D,r24
3161 196a 8091 0000 lds r24,Parameter_Luftdruck_D
3162 196e 8823 tst r24
3163 1970 29F0 breq .L187
3164 1972 8436 cpi r24,lo8(100)
3165 1974 18F0 brlo .L187
3166 1976 84E6 ldi r24,lo8(100)
3167 1978 8093 0000 sts Parameter_Luftdruck_D,r24
3168 .L187:
3169 197c 8091 0000 lds r24,EE_Parameter+17
3170 1980 883F cpi r24,lo8(-8)
3171 1982 38F0 brlo .L276
3172 1984 EFEF ldi r30,lo8(255)
3173 1986 F0E0 ldi r31,hi8(255)
3174 1988 E81B sub r30,r24
3175 198a F109 sbc r31,__zero_reg__
3176 198c E050 subi r30,lo8(-(Poti))
3177 198e F040 sbci r31,hi8(-(Poti))
3178 1990 8081 ld r24,Z
3179 .L276:
3180 1992 8093 0000 sts Parameter_Hoehe_P,r24
3181 1996 8091 0000 lds r24,Parameter_Hoehe_P
3182 199a 8823 tst r24
3183 199c 29F0 breq .L192
3184 199e 8436 cpi r24,lo8(100)
3185 19a0 18F0 brlo .L192
3186 19a2 84E6 ldi r24,lo8(100)
3187 19a4 8093 0000 sts Parameter_Hoehe_P,r24
3188 .L192:
3189 19a8 8091 0000 lds r24,EE_Parameter+30
3190 19ac 883F cpi r24,lo8(-8)
3191 19ae 38F0 brlo .L277
3192 19b0 EFEF ldi r30,lo8(255)
3193 19b2 F0E0 ldi r31,hi8(255)
3194 19b4 E81B sub r30,r24
3195 19b6 F109 sbc r31,__zero_reg__
3196 19b8 E050 subi r30,lo8(-(Poti))
3197 19ba F040 sbci r31,hi8(-(Poti))
3198 19bc 8081 ld r24,Z
3199 .L277:
3200 19be 8093 0000 sts Parameter_Gyro_P,r24
3201 19c2 8091 0000 lds r24,Parameter_Gyro_P
3202 19c6 8B30 cpi r24,lo8(11)
3203 19c8 10F4 brsh .L196
3204 19ca 8AE0 ldi r24,lo8(10)
3205 19cc 02C0 rjmp .L278
3206 .L196:
3207 19ce 8F3F cpi r24,lo8(-1)
3208 19d0 11F4 brne .L197
3209 .L278:
3210 19d2 8093 0000 sts Parameter_Gyro_P,r24
3211 .L197:
3212 19d6 8091 0000 lds r24,EE_Parameter+73
3213 19da 883F cpi r24,lo8(-8)
3214 19dc 38F0 brlo .L279
3215 19de EFEF ldi r30,lo8(255)
3216 19e0 F0E0 ldi r31,hi8(255)
3217 19e2 E81B sub r30,r24
3218 19e4 F109 sbc r31,__zero_reg__
3219 19e6 E050 subi r30,lo8(-(Poti))
3220 19e8 F040 sbci r31,hi8(-(Poti))
3221 19ea 8081 ld r24,Z
3222 .L279:
3223 19ec 8093 0000 sts Parameter_J16Timing,r24
3224 19f0 8091 0000 lds r24,Parameter_J16Timing
3225 19f4 8230 cpi r24,lo8(2)
3226 19f6 10F4 brsh .L201
3227 19f8 81E0 ldi r24,lo8(1)
3228 19fa 02C0 rjmp .L280
3229 .L201:
3230 19fc 8F3F cpi r24,lo8(-1)
3231 19fe 11F4 brne .L202
3232 .L280:
3233 1a00 8093 0000 sts Parameter_J16Timing,r24
3234 .L202:
3235 1a04 8091 0000 lds r24,EE_Parameter+75
3236 1a08 883F cpi r24,lo8(-8)
3237 1a0a 38F0 brlo .L281
3238 1a0c EFEF ldi r30,lo8(255)
3239 1a0e F0E0 ldi r31,hi8(255)
3240 1a10 E81B sub r30,r24
3241 1a12 F109 sbc r31,__zero_reg__
3242 1a14 E050 subi r30,lo8(-(Poti))
3243 1a16 F040 sbci r31,hi8(-(Poti))
3244 1a18 8081 ld r24,Z
3245 .L281:
3246 1a1a 8093 0000 sts Parameter_J17Timing,r24
3247 1a1e 8091 0000 lds r24,Parameter_J17Timing
3248 1a22 8230 cpi r24,lo8(2)
3249 1a24 10F4 brsh .L206
3250 1a26 81E0 ldi r24,lo8(1)
3251 1a28 02C0 rjmp .L282
3252 .L206:
3253 1a2a 8F3F cpi r24,lo8(-1)
3254 1a2c 11F4 brne .L207
3255 .L282:
3256 1a2e 8093 0000 sts Parameter_J17Timing,r24
3257 .L207:
3258 1a32 8091 0000 lds r24,EE_Parameter+54
3259 1a36 883F cpi r24,lo8(-8)
3260 1a38 38F0 brlo .L283
3261 1a3a EFEF ldi r30,lo8(255)
3262 1a3c F0E0 ldi r31,hi8(255)
3263 1a3e E81B sub r30,r24
3264 1a40 F109 sbc r31,__zero_reg__
3265 1a42 E050 subi r30,lo8(-(Poti))
3266 1a44 F040 sbci r31,hi8(-(Poti))
3267 1a46 8081 ld r24,Z
3268 .L283:
3269 1a48 8093 0000 sts Parameter_Servo3,r24
3270 1a4c 8091 0000 lds r24,EE_Parameter+55
3271 1a50 883F cpi r24,lo8(-8)
3272 1a52 38F0 brlo .L284
3273 1a54 EFEF ldi r30,lo8(255)
3274 1a56 F0E0 ldi r31,hi8(255)
3275 1a58 E81B sub r30,r24
3276 1a5a F109 sbc r31,__zero_reg__
3277 1a5c E050 subi r30,lo8(-(Poti))
3278 1a5e F040 sbci r31,hi8(-(Poti))
3279 1a60 8081 ld r24,Z
3280 .L284:
3281 1a62 8093 0000 sts Parameter_Servo4,r24
3282 1a66 8091 0000 lds r24,EE_Parameter+56
3283 1a6a 883F cpi r24,lo8(-8)
3284 1a6c 38F0 brlo .L285
3285 1a6e EFEF ldi r30,lo8(255)
3286 1a70 F0E0 ldi r31,hi8(255)
3287 1a72 E81B sub r30,r24
3288 1a74 F109 sbc r31,__zero_reg__
3289 1a76 E050 subi r30,lo8(-(Poti))
3290 1a78 F040 sbci r31,hi8(-(Poti))
3291 1a7a 8081 ld r24,Z
3292 .L285:
3293 1a7c 8093 0000 sts Parameter_Servo5,r24
3294 1a80 9091 0000 lds r25,EE_Parameter+16
3295 1a84 983F cpi r25,lo8(-8)
3296 1a86 18F4 brsh .L215
3297 1a88 9093 0000 sts Parameter_MaxHoehe,r25
3298 1a8c 09C0 rjmp .L216
3299 .L215:
3300 1a8e EFEF ldi r30,lo8(255)
3301 1a90 F0E0 ldi r31,hi8(255)
3302 1a92 E91B sub r30,r25
3303 1a94 F109 sbc r31,__zero_reg__
3304 1a96 E050 subi r30,lo8(-(Poti))
3305 1a98 F040 sbci r31,hi8(-(Poti))
3306 1a9a 8081 ld r24,Z
3307 1a9c 8093 0000 sts Parameter_MaxHoehe,r24
3308 .L216:
3309 1aa0 983F cpi r25,lo8(-8)
3310 1aa2 18F4 brsh .L217
3311 1aa4 9093 0000 sts Parameter_MaxHoehe,r25
3312 1aa8 09C0 rjmp .L218
3313 .L217:
3314 1aaa EFEF ldi r30,lo8(255)
3315 1aac F0E0 ldi r31,hi8(255)
3316 1aae E91B sub r30,r25
3317 1ab0 F109 sbc r31,__zero_reg__
3318 1ab2 E050 subi r30,lo8(-(Poti))
3319 1ab4 F040 sbci r31,hi8(-(Poti))
3320 1ab6 8081 ld r24,Z
3321 1ab8 8093 0000 sts Parameter_MaxHoehe,r24
3322 .L218:
3323 1abc 8091 0000 lds r24,EE_Parameter+19
3324 1ac0 883F cpi r24,lo8(-8)
3325 1ac2 38F0 brlo .L286
3326 1ac4 EFEF ldi r30,lo8(255)
3327 1ac6 F0E0 ldi r31,hi8(255)
3328 1ac8 E81B sub r30,r24
3329 1aca F109 sbc r31,__zero_reg__
3330 1acc E050 subi r30,lo8(-(Poti))
3331 1ace F040 sbci r31,hi8(-(Poti))
3332 1ad0 8081 ld r24,Z
3333 .L286:
3334 1ad2 8093 0000 sts Parameter_Hoehe_ACC_Wirkung,r24
3335 1ad6 8091 0000 lds r24,EE_Parameter+21
3336 1ada 883F cpi r24,lo8(-8)
3337 1adc 38F0 brlo .L287
3338 1ade EFEF ldi r30,lo8(255)
3339 1ae0 F0E0 ldi r31,hi8(255)
3340 1ae2 E81B sub r30,r24
3341 1ae4 F109 sbc r31,__zero_reg__
3342 1ae6 E050 subi r30,lo8(-(Poti))
3343 1ae8 F040 sbci r31,hi8(-(Poti))
3344 1aea 8081 ld r24,Z
3345 .L287:
3346 1aec 8093 0000 sts Parameter_Hoehe_GPS_Z,r24
3347 1af0 8091 0000 lds r24,EE_Parameter+29
3348 1af4 883F cpi r24,lo8(-8)
3349 1af6 38F0 brlo .L288
3350 1af8 EFEF ldi r30,lo8(255)
3351 1afa F0E0 ldi r31,hi8(255)
3352 1afc E81B sub r30,r24
3353 1afe F109 sbc r31,__zero_reg__
3354 1b00 E050 subi r30,lo8(-(Poti))
3355 1b02 F040 sbci r31,hi8(-(Poti))
3356 1b04 8081 ld r24,Z
3357 .L288:
3358 1b06 8093 0000 sts Parameter_KompassWirkung,r24
3359 1b0a 8091 0000 lds r24,EE_Parameter+31
3360 1b0e 883F cpi r24,lo8(-8)
3361 1b10 38F0 brlo .L289
3362 1b12 EFEF ldi r30,lo8(255)
3363 1b14 F0E0 ldi r31,hi8(255)
3364 1b16 E81B sub r30,r24
3365 1b18 F109 sbc r31,__zero_reg__
3366 1b1a E050 subi r30,lo8(-(Poti))
3367 1b1c F040 sbci r31,hi8(-(Poti))
3368 1b1e 8081 ld r24,Z
3369 .L289:
3370 1b20 8093 0000 sts Parameter_Gyro_I,r24
3371 1b24 8091 0000 lds r24,EE_Parameter+32
3372 1b28 883F cpi r24,lo8(-8)
3373 1b2a 38F0 brlo .L290
3374 1b2c EFEF ldi r30,lo8(255)
3375 1b2e F0E0 ldi r31,hi8(255)
3376 1b30 E81B sub r30,r24
3377 1b32 F109 sbc r31,__zero_reg__
3378 1b34 E050 subi r30,lo8(-(Poti))
3379 1b36 F040 sbci r31,hi8(-(Poti))
3380 1b38 8081 ld r24,Z
3381 .L290:
3382 1b3a 8093 0000 sts Parameter_Gyro_D,r24
3383 1b3e 8091 0000 lds r24,EE_Parameter+33
3384 1b42 883F cpi r24,lo8(-8)
3385 1b44 38F0 brlo .L291
3386 1b46 EFEF ldi r30,lo8(255)
3387 1b48 F0E0 ldi r31,hi8(255)
3388 1b4a E81B sub r30,r24
3389 1b4c F109 sbc r31,__zero_reg__
3390 1b4e E050 subi r30,lo8(-(Poti))
3391 1b50 F040 sbci r31,hi8(-(Poti))
3392 1b52 8081 ld r24,Z
3393 .L291:
3394 1b54 8093 0000 sts Parameter_Gyro_Gier_P,r24
3395 1b58 8091 0000 lds r24,EE_Parameter+34
3396 1b5c 883F cpi r24,lo8(-8)
3397 1b5e 38F0 brlo .L292
3398 1b60 EFEF ldi r30,lo8(255)
3399 1b62 F0E0 ldi r31,hi8(255)
3400 1b64 E81B sub r30,r24
3401 1b66 F109 sbc r31,__zero_reg__
3402 1b68 E050 subi r30,lo8(-(Poti))
3403 1b6a F040 sbci r31,hi8(-(Poti))
3404 1b6c 8081 ld r24,Z
3405 .L292:
3406 1b6e 8093 0000 sts Parameter_Gyro_Gier_I,r24
3407 1b72 8091 0000 lds r24,EE_Parameter+40
3408 1b76 883F cpi r24,lo8(-8)
3409 1b78 38F0 brlo .L293
3410 1b7a EFEF ldi r30,lo8(255)
3411 1b7c F0E0 ldi r31,hi8(255)
3412 1b7e E81B sub r30,r24
3413 1b80 F109 sbc r31,__zero_reg__
3414 1b82 E050 subi r30,lo8(-(Poti))
3415 1b84 F040 sbci r31,hi8(-(Poti))
3416 1b86 8081 ld r24,Z
3417 .L293:
3418 1b88 8093 0000 sts Parameter_I_Faktor,r24
3419 1b8c 8091 0000 lds r24,EE_Parameter+41
3420 1b90 883F cpi r24,lo8(-8)
3421 1b92 38F0 brlo .L294
3422 1b94 EFEF ldi r30,lo8(255)
3423 1b96 F0E0 ldi r31,hi8(255)
3424 1b98 E81B sub r30,r24
3425 1b9a F109 sbc r31,__zero_reg__
3426 1b9c E050 subi r30,lo8(-(Poti))
3427 1b9e F040 sbci r31,hi8(-(Poti))
3428 1ba0 8081 ld r24,Z
3429 .L294:
3430 1ba2 8093 0000 sts Parameter_UserParam1,r24
3431 1ba6 8091 0000 lds r24,EE_Parameter+42
3432 1baa 883F cpi r24,lo8(-8)
3433 1bac 38F0 brlo .L295
3434 1bae EFEF ldi r30,lo8(255)
3435 1bb0 F0E0 ldi r31,hi8(255)
3436 1bb2 E81B sub r30,r24
3437 1bb4 F109 sbc r31,__zero_reg__
3438 1bb6 E050 subi r30,lo8(-(Poti))
3439 1bb8 F040 sbci r31,hi8(-(Poti))
3440 1bba 8081 ld r24,Z
3441 .L295:
3442 1bbc 8093 0000 sts Parameter_UserParam2,r24
3443 1bc0 8091 0000 lds r24,EE_Parameter+43
3444 1bc4 883F cpi r24,lo8(-8)
3445 1bc6 38F0 brlo .L296
3446 1bc8 EFEF ldi r30,lo8(255)
3447 1bca F0E0 ldi r31,hi8(255)
3448 1bcc E81B sub r30,r24
3449 1bce F109 sbc r31,__zero_reg__
3450 1bd0 E050 subi r30,lo8(-(Poti))
3451 1bd2 F040 sbci r31,hi8(-(Poti))
3452 1bd4 8081 ld r24,Z
3453 .L296:
3454 1bd6 8093 0000 sts Parameter_UserParam3,r24
3455 1bda 8091 0000 lds r24,EE_Parameter+44
3456 1bde 883F cpi r24,lo8(-8)
3457 1be0 38F0 brlo .L297
3458 1be2 EFEF ldi r30,lo8(255)
3459 1be4 F0E0 ldi r31,hi8(255)
3460 1be6 E81B sub r30,r24
3461 1be8 F109 sbc r31,__zero_reg__
3462 1bea E050 subi r30,lo8(-(Poti))
3463 1bec F040 sbci r31,hi8(-(Poti))
3464 1bee 8081 ld r24,Z
3465 .L297:
3466 1bf0 8093 0000 sts Parameter_UserParam4,r24
3467 1bf4 8091 0000 lds r24,EE_Parameter+68
3468 1bf8 883F cpi r24,lo8(-8)
3469 1bfa 38F0 brlo .L298
3470 1bfc EFEF ldi r30,lo8(255)
3471 1bfe F0E0 ldi r31,hi8(255)
3472 1c00 E81B sub r30,r24
3473 1c02 F109 sbc r31,__zero_reg__
3474 1c04 E050 subi r30,lo8(-(Poti))
3475 1c06 F040 sbci r31,hi8(-(Poti))
3476 1c08 8081 ld r24,Z
3477 .L298:
3478 1c0a 8093 0000 sts Parameter_UserParam5,r24
3479 1c0e 8091 0000 lds r24,EE_Parameter+69
3480 1c12 883F cpi r24,lo8(-8)
3481 1c14 38F0 brlo .L299
3482 1c16 EFEF ldi r30,lo8(255)
3483 1c18 F0E0 ldi r31,hi8(255)
3484 1c1a E81B sub r30,r24
3485 1c1c F109 sbc r31,__zero_reg__
3486 1c1e E050 subi r30,lo8(-(Poti))
3487 1c20 F040 sbci r31,hi8(-(Poti))
3488 1c22 8081 ld r24,Z
3489 .L299:
3490 1c24 8093 0000 sts Parameter_UserParam6,r24
3491 1c28 8091 0000 lds r24,EE_Parameter+70
3492 1c2c 883F cpi r24,lo8(-8)
3493 1c2e 38F0 brlo .L300
3494 1c30 EFEF ldi r30,lo8(255)
3495 1c32 F0E0 ldi r31,hi8(255)
3496 1c34 E81B sub r30,r24
3497 1c36 F109 sbc r31,__zero_reg__
3498 1c38 E050 subi r30,lo8(-(Poti))
3499 1c3a F040 sbci r31,hi8(-(Poti))
3500 1c3c 8081 ld r24,Z
3501 .L300:
3502 1c3e 8093 0000 sts Parameter_UserParam7,r24
3503 1c42 8091 0000 lds r24,EE_Parameter+71
3504 1c46 883F cpi r24,lo8(-8)
3505 1c48 38F0 brlo .L301
3506 1c4a EFEF ldi r30,lo8(255)
3507 1c4c F0E0 ldi r31,hi8(255)
3508 1c4e E81B sub r30,r24
3509 1c50 F109 sbc r31,__zero_reg__
3510 1c52 E050 subi r30,lo8(-(Poti))
3511 1c54 F040 sbci r31,hi8(-(Poti))
3512 1c56 8081 ld r24,Z
3513 .L301:
3514 1c58 8093 0000 sts Parameter_UserParam8,r24
3515 1c5c 8091 0000 lds r24,EE_Parameter+45
3516 1c60 883F cpi r24,lo8(-8)
3517 1c62 38F0 brlo .L302
3518 1c64 EFEF ldi r30,lo8(255)
3519 1c66 F0E0 ldi r31,hi8(255)
3520 1c68 E81B sub r30,r24
3521 1c6a F109 sbc r31,__zero_reg__
3522 1c6c E050 subi r30,lo8(-(Poti))
3523 1c6e F040 sbci r31,hi8(-(Poti))
3524 1c70 8081 ld r24,Z
3525 .L302:
3526 1c72 8093 0000 sts Parameter_ServoNickControl,r24
3527 1c76 8091 0000 lds r24,EE_Parameter+49
3528 1c7a 883F cpi r24,lo8(-8)
3529 1c7c 38F0 brlo .L303
3530 1c7e EFEF ldi r30,lo8(255)
3531 1c80 F0E0 ldi r31,hi8(255)
3532 1c82 E81B sub r30,r24
3533 1c84 F109 sbc r31,__zero_reg__
3534 1c86 E050 subi r30,lo8(-(Poti))
3535 1c88 F040 sbci r31,hi8(-(Poti))
3536 1c8a 8081 ld r24,Z
3537 .L303:
3538 1c8c 8093 0000 sts Parameter_ServoRollControl,r24
3539 1c90 8091 0000 lds r24,EE_Parameter+57
3540 1c94 883F cpi r24,lo8(-8)
3541 1c96 38F0 brlo .L304
3542 1c98 EFEF ldi r30,lo8(255)
3543 1c9a F0E0 ldi r31,hi8(255)
3544 1c9c E81B sub r30,r24
3545 1c9e F109 sbc r31,__zero_reg__
3546 1ca0 E050 subi r30,lo8(-(Poti))
3547 1ca2 F040 sbci r31,hi8(-(Poti))
3548 1ca4 8081 ld r24,Z
3549 .L304:
3550 1ca6 8093 0000 sts Parameter_LoopGasLimit,r24
3551 1caa 8091 0000 lds r24,EE_Parameter+60
3552 1cae 883F cpi r24,lo8(-8)
3553 1cb0 38F0 brlo .L305
3554 1cb2 EFEF ldi r30,lo8(255)
3555 1cb4 F0E0 ldi r31,hi8(255)
3556 1cb6 E81B sub r30,r24
3557 1cb8 F109 sbc r31,__zero_reg__
3558 1cba E050 subi r30,lo8(-(Poti))
3559 1cbc F040 sbci r31,hi8(-(Poti))
3560 1cbe 8081 ld r24,Z
3561 .L305:
3562 1cc0 8093 0000 sts Parameter_AchsKopplung1,r24
3563 1cc4 8091 0000 lds r24,EE_Parameter+61
3564 1cc8 883F cpi r24,lo8(-8)
3565 1cca 38F0 brlo .L306
3566 1ccc EFEF ldi r30,lo8(255)
3567 1cce F0E0 ldi r31,hi8(255)
3568 1cd0 E81B sub r30,r24
3569 1cd2 F109 sbc r31,__zero_reg__
3570 1cd4 E050 subi r30,lo8(-(Poti))
3571 1cd6 F040 sbci r31,hi8(-(Poti))
3572 1cd8 8081 ld r24,Z
3573 .L306:
3574 1cda 8093 0000 sts Parameter_AchsKopplung2,r24
3575 1cde 8091 0000 lds r24,EE_Parameter+62
3576 1ce2 883F cpi r24,lo8(-8)
3577 1ce4 38F0 brlo .L307
3578 1ce6 EFEF ldi r30,lo8(255)
3579 1ce8 F0E0 ldi r31,hi8(255)
3580 1cea E81B sub r30,r24
3581 1cec F109 sbc r31,__zero_reg__
3582 1cee E050 subi r30,lo8(-(Poti))
3583 1cf0 F040 sbci r31,hi8(-(Poti))
3584 1cf2 8081 ld r24,Z
3585 .L307:
3586 1cf4 8093 0000 sts Parameter_CouplingYawCorrection,r24
3587 1cf8 8091 0000 lds r24,EE_Parameter+67
3588 1cfc 883F cpi r24,lo8(-8)
3589 1cfe 38F0 brlo .L308
3590 1d00 EFEF ldi r30,lo8(255)
3591 1d02 F0E0 ldi r31,hi8(255)
3592 1d04 E81B sub r30,r24
3593 1d06 F109 sbc r31,__zero_reg__
3594 1d08 E050 subi r30,lo8(-(Poti))
3595 1d0a F040 sbci r31,hi8(-(Poti))
3596 1d0c 8081 ld r24,Z
3597 .L308:
3598 1d0e 8093 0000 sts Parameter_DynamicStability,r24
3599 1d12 8091 0000 lds r24,EE_Parameter+94
3600 1d16 883F cpi r24,lo8(-8)
3601 1d18 38F0 brlo .L309
3602 1d1a EFEF ldi r30,lo8(255)
3603 1d1c F0E0 ldi r31,hi8(255)
3604 1d1e E81B sub r30,r24
3605 1d20 F109 sbc r31,__zero_reg__
3606 1d22 E050 subi r30,lo8(-(Poti))
3607 1d24 F040 sbci r31,hi8(-(Poti))
3608 1d26 8081 ld r24,Z
3609 .L309:
3610 1d28 8093 0000 sts Parameter_ExternalControl,r24
3611 1d2c 8091 0000 lds r24,Parameter_I_Faktor
3612 1d30 282F mov r18,r24
3613 1d32 3327 clr r19
3614 1d34 2F5F subi r18,lo8(-(1))
3615 1d36 3F4F sbci r19,hi8(-(1))
3616 1d38 8CE3 ldi r24,lo8(10300)
3617 1d3a 98E2 ldi r25,hi8(10300)
3618 1d3c B901 movw r22,r18
3619 1d3e 0E94 0000 call __divmodhi4
3620 1d42 7093 0000 sts (Ki)+1,r23
3621 1d46 6093 0000 sts Ki,r22
3622 1d4a 8091 0000 lds r24,EE_Parameter+27
3623 1d4e 8093 0000 sts MAX_GAS,r24
3624 1d52 8091 0000 lds r24,EE_Parameter+26
3625 1d56 8093 0000 sts MIN_GAS,r24
3626 1d5a 9091 0000 lds r25,EE_Parameter+96
3627 1d5e 9333 cpi r25,lo8(51)
3628 1d60 20F1 brlo .L267
3629 1d62 81E0 ldi r24,lo8(1)
3630 1d64 8093 0000 sts CareFree,r24
3631 1d68 983F cpi r25,lo8(-8)
3632 1d6a 58F0 brlo .L268
3633 1d6c EFEF ldi r30,lo8(255)
3634 1d6e F0E0 ldi r31,hi8(255)
3635 1d70 E91B sub r30,r25
3636 1d72 F109 sbc r31,__zero_reg__
3637 1d74 E050 subi r30,lo8(-(Poti))
3638 1d76 F040 sbci r31,hi8(-(Poti))
3639 1d78 8081 ld r24,Z
3640 1d7a 8233 cpi r24,lo8(50)
3641 1d7c 10F4 brsh .L268
3642 1d7e 1092 0000 sts CareFree,__zero_reg__
3643 .L268:
3644 1d82 8091 0000 lds r24,FromNaviCtrl+7
3645 1d86 9091 0000 lds r25,(FromNaviCtrl+7)+1
3646 1d8a 97FF sbrs r25,7
3647 1d8c 08C0 rjmp .L269
3648 1d8e 8091 0000 lds r24,CareFree
3649 1d92 8823 tst r24
3650 1d94 21F0 breq .L269
3651 1d96 8091 0000 lds r24,VersionInfo+5
3652 1d9a 8068 ori r24,lo8(-128)
3653 1d9c 03C0 rjmp .L310
3654 .L269:
3655 1d9e 8091 0000 lds r24,VersionInfo+5
3656 1da2 8F77 andi r24,lo8(127)
3657 .L310:
3658 1da4 8093 0000 sts VersionInfo+5,r24
3659 1da8 02C0 rjmp .L271
3660 .L267:
3661 1daa 1092 0000 sts CareFree,__zero_reg__
3662 .L271:
3663 1dae 8091 0000 lds r24,FromNaviCtrl+7
3664 1db2 9091 0000 lds r25,(FromNaviCtrl+7)+1
3665 1db6 97FF sbrs r25,7
3666 1db8 1DC0 rjmp .L272
3667 1dba 8091 0000 lds r24,MotorenEin
3668 1dbe 8823 tst r24
3669 1dc0 C9F0 breq .L272
3670 1dc2 8091 0000 lds r24,CareFree
3671 1dc6 8823 tst r24
3672 1dc8 A9F0 breq .L272
3673 1dca 8091 0000 lds r24,BeepMuster
3674 1dce 9091 0000 lds r25,(BeepMuster)+1
3675 1dd2 8F5F subi r24,lo8(-1)
3676 1dd4 9F4F sbci r25,hi8(-1)
3677 1dd6 71F4 brne .L272
3678 1dd8 88E9 ldi r24,lo8(15000)
3679 1dda 9AE3 ldi r25,hi8(15000)
3680 1ddc 9093 0000 sts (beeptime)+1,r25
3681 1de0 8093 0000 sts beeptime,r24
3682 1de4 80E0 ldi r24,lo8(-23552)
3683 1de6 94EA ldi r25,hi8(-23552)
3684 1de8 9093 0000 sts (BeepMuster)+1,r25
3685 1dec 8093 0000 sts BeepMuster,r24
3686 1df0 1092 0000 sts CareFree,__zero_reg__
3687 .L272:
3688 1df4 8091 0000 lds r24,CareFree
3689 1df8 8823 tst r24
3690 1dfa 39F0 breq .L183
3691 1dfc 8091 0000 lds r24,Parameter_AchsKopplung1
3692 1e00 823D cpi r24,lo8(-46)
3693 1e02 18F4 brsh .L183
3694 1e04 825E subi r24,lo8(-(30))
3695 1e06 8093 0000 sts Parameter_AchsKopplung1,r24
3696 .L183:
3697 1e0a 0895 ret
3698 /* epilogue: frame size=0 */
3699 /* epilogue: noreturn */
3700 /* epilogue end (size=0) */
3701 /* function ParameterZuordnung size 607 (607) */
3703 .lcomm sollGier.0,4
3704 .lcomm tmp_long.1,4
3705 .lcomm tmp_long2.2,4
3706 .lcomm IntegralFehlerNick.3,4
3707 .lcomm IntegralFehlerRoll.4,4
3708 .lcomm RcLostTimer.5,2
3709 .lcomm delay_neutral.6,1
3710 .lcomm delay_einschalten.7,1
3711 .lcomm delay_ausschalten.8,1
3712 .lcomm calibration_done.9,1
3713 .lcomm NeueKompassRichtungMerken.10,1
3714 .lcomm ausgleichNick.11,4
3715 .lcomm ausgleichRoll.12,4
3716 .lcomm stick_nick.13,2
3717 .lcomm stick_roll.14,2
3718 .lcomm cnt.15,2
3719 .lcomm last_n_p.16,1
3720 .lcomm last_n_n.17,1
3721 .lcomm last_r_p.18,1
3722 .lcomm last_r_n.19,1
3723 .lcomm MittelIntegralNick_Alt.20,4
3724 .lcomm MittelIntegralRoll_Alt.21,4
3725 .lcomm HeightTrimming.22,2
3726 .lcomm FilterHCGas.23,2
3727 .data
3730 StickGasHover.24:
3731 0027 7800 .word 120
3732 .lcomm HoverGasMin.25,2
3735 HoverGasMax.26:
3736 0029 FF03 .word 1023
3737 .lcomm HoverGasFilter.27,4
3740 delay.28:
3741 002b 64 .byte 100
3742 .lcomm BaroAtUpperLimit.29,1
3743 .lcomm BaroAtLowerLimit.30,1
3744 .lcomm HeightTrimmingFlag.31,1
3745 .LC0:
3746 002c 00 .byte 0
3747 002d 02 .byte 2
3748 002e 04 .byte 4
3749 002f 06 .byte 6
3750 0030 07 .byte 7
3751 0031 08 .byte 8
3752 0032 08 .byte 8
3753 0033 08 .byte 8
3754 0034 07 .byte 7
3755 0035 06 .byte 6
3756 0036 04 .byte 4
3757 0037 02 .byte 2
3758 0038 00 .byte 0
3759 0039 FE .byte -2
3760 003a FC .byte -4
3761 003b FA .byte -6
3762 003c F9 .byte -7
3763 003d F8 .byte -8
3764 003e F8 .byte -8
3765 003f F8 .byte -8
3766 0040 F9 .byte -7
3767 0041 FA .byte -6
3768 0042 FC .byte -4
3769 0043 FE .byte -2
3770 0044 00 .byte 0
3771 0045 02 .byte 2
3772 0046 04 .byte 4
3773 0047 06 .byte 6
3774 0048 07 .byte 7
3775 0049 08 .byte 8
3776 004a 08 .byte 8
3777 .text
3778 .global MotorRegler
3780 MotorRegler:
3781 /* prologue: frame size=53 */
3782 1e0c A5E3 ldi r26,lo8(53)
3783 1e0e B0E0 ldi r27,hi8(53)
3784 1e10 E0E0 ldi r30,pm_lo8(1f)
3785 1e12 F0E0 ldi r31,pm_hi8(1f)
3786 1e14 0C94 0000 jmp __prologue_saves__+0
3787 1:
3788 /* prologue end (size=6) */
3789 1e18 0E94 0000 call Mittelwert
3790 1e1c 3091 0000 lds r19,PlatinenVersion
3791 1e20 3C30 cpi r19,lo8(12)
3792 1e22 10F4 brsh .L312
3793 1e24 299A sbi 37-0x20,1
3794 1e26 01C0 rjmp .L313
3795 .L312:
3796 1e28 2998 cbi 37-0x20,1
3797 .L313:
3798 1e2a E090 0000 lds r14,StickGas
3799 1e2e F090 0000 lds r15,(StickGas)+1
3800 1e32 F9A2 std Y+33,r15
3801 1e34 E8A2 std Y+32,r14
3802 1e36 8091 0000 lds r24,MIN_GAS
3803 1e3a 9927 clr r25
3804 1e3c 0A96 adiw r24,10
3805 1e3e E816 cp r14,r24
3806 1e40 F906 cpc r15,r25
3807 1e42 14F4 brge .L314
3808 1e44 99A3 std Y+33,r25
3809 1e46 88A3 std Y+32,r24
3810 .L314:
3811 1e48 8091 0000 lds r24,SenderOkay
3812 1e4c 8436 cpi r24,lo8(100)
3813 1e4e 08F0 brlo .+2
3814 1e50 5CC0 rjmp .L315
3815 1e52 8091 0000 lds r24,RcLostTimer.5
3816 1e56 9091 0000 lds r25,(RcLostTimer.5)+1
3817 1e5a 0097 sbiw r24,0
3818 1e5c 31F0 breq .L316
3819 1e5e 0197 sbiw r24,1
3820 1e60 9093 0000 sts (RcLostTimer.5)+1,r25
3821 1e64 8093 0000 sts RcLostTimer.5,r24
3822 1e68 07C0 rjmp .L317
3823 .L316:
3824 1e6a 1092 0000 sts MotorenEin,__zero_reg__
3825 1e6e 8091 0000 lds r24,FCFlags
3826 1e72 8F7E andi r24,lo8(-17)
3827 1e74 8093 0000 sts FCFlags,r24
3828 .L317:
3829 1e78 3A30 cpi r19,lo8(10)
3830 1e7a 11F0 breq .L319
3831 1e7c 3431 cpi r19,lo8(20)
3832 1e7e 10F0 brlo .L318
3833 .L319:
3834 1e80 289A sbi 37-0x20,0
3835 1e82 01C0 rjmp .L320
3836 .L318:
3837 1e84 2898 cbi 37-0x20,0
3838 .L320:
3839 1e86 8091 0000 lds r24,modell_fliegt
3840 1e8a 9091 0000 lds r25,(modell_fliegt)+1
3841 1e8e 895E subi r24,lo8(1001)
3842 1e90 9340 sbci r25,hi8(1001)
3843 1e92 C0F1 brlo .L321
3844 1e94 8091 0000 lds r24,EE_Parameter+37
3845 1e98 282F mov r18,r24
3846 1e9a 3327 clr r19
3847 1e9c 39A3 std Y+33,r19
3848 1e9e 28A3 std Y+32,r18
3849 1ea0 8091 0000 lds r24,FCFlags
3850 1ea4 8061 ori r24,lo8(16)
3851 1ea6 8093 0000 sts FCFlags,r24
3852 1eaa 8091 0000 lds r24,EE_Parameter+1
3853 1eae A82F mov r26,r24
3854 1eb0 BB27 clr r27
3855 1eb2 AA0F add r26,r26
3856 1eb4 BB1F adc r27,r27
3857 1eb6 FD01 movw r30,r26
3858 1eb8 E050 subi r30,lo8(-(PPM_diff))
3859 1eba F040 sbci r31,hi8(-(PPM_diff))
3860 1ebc 1182 std Z+1,__zero_reg__
3861 1ebe 1082 st Z,__zero_reg__
3862 1ec0 8091 0000 lds r24,EE_Parameter+2
3863 1ec4 282F mov r18,r24
3864 1ec6 3327 clr r19
3865 1ec8 220F add r18,r18
3866 1eca 331F adc r19,r19
3867 1ecc C901 movw r24,r18
3868 1ece 8050 subi r24,lo8(-(PPM_diff))
3869 1ed0 9040 sbci r25,hi8(-(PPM_diff))
3870 1ed2 FC01 movw r30,r24
3871 1ed4 1182 std Z+1,__zero_reg__
3872 1ed6 1082 st Z,__zero_reg__
3873 1ed8 A050 subi r26,lo8(-(PPM_in))
3874 1eda B040 sbci r27,hi8(-(PPM_in))
3875 1edc 1196 adiw r26,1
3876 1ede 1C92 st X,__zero_reg__
3877 1ee0 1E92 st -X,__zero_reg__
3878 1ee2 2050 subi r18,lo8(-(PPM_in))
3879 1ee4 3040 sbci r19,hi8(-(PPM_in))
3880 1ee6 D901 movw r26,r18
3881 1ee8 1196 adiw r26,1
3882 1eea 1C92 st X,__zero_reg__
3883 1eec 1E92 st -X,__zero_reg__
3884 1eee 8091 0000 lds r24,EE_Parameter+4
3885 1ef2 E82F mov r30,r24
3886 1ef4 FF27 clr r31
3887 1ef6 EE0F add r30,r30
3888 1ef8 FF1F adc r31,r31
3889 1efa E050 subi r30,lo8(-(PPM_in))
3890 1efc F040 sbci r31,hi8(-(PPM_in))
3891 1efe 1182 std Z+1,__zero_reg__
3892 1f00 1082 st Z,__zero_reg__
3893 1f02 AAC2 rjmp .L323
3894 .L321:
3895 1f04 1092 0000 sts MotorenEin,__zero_reg__
3896 1f08 A7C2 rjmp .L323
3897 .L315:
3898 1f0a 8091 0000 lds r24,SenderOkay
3899 1f0e 8D38 cpi r24,lo8(-115)
3900 1f10 08F4 brsh .+2
3901 1f12 A2C2 rjmp .L323
3902 1f14 8091 0000 lds r24,FCFlags
3903 1f18 8F7E andi r24,lo8(-17)
3904 1f1a 8093 0000 sts FCFlags,r24
3905 1f1e 9091 0000 lds r25,EE_Parameter+38
3906 1f22 82E3 ldi r24,lo8(50)
3907 1f24 989F mul r25,r24
3908 1f26 C001 movw r24,r0
3909 1f28 1124 clr r1
3910 1f2a 9093 0000 sts (RcLostTimer.5)+1,r25
3911 1f2e 8093 0000 sts RcLostTimer.5,r24
3912 1f32 E8A1 ldd r30,Y+32
3913 1f34 F9A1 ldd r31,Y+33
3914 1f36 B997 sbiw r30,41
3915 1f38 8CF0 brlt .L325
3916 1f3a 8091 0000 lds r24,MotorenEin
3917 1f3e 8823 tst r24
3918 1f40 69F0 breq .L325
3919 1f42 8091 0000 lds r24,modell_fliegt
3920 1f46 9091 0000 lds r25,(modell_fliegt)+1
3921 1f4a FFEF ldi r31,hi8(-1)
3922 1f4c 8F3F cpi r24,lo8(-1)
3923 1f4e 9F07 cpc r25,r31
3924 1f50 29F0 breq .L325
3925 1f52 0196 adiw r24,1
3926 1f54 9093 0000 sts (modell_fliegt)+1,r25
3927 1f58 8093 0000 sts modell_fliegt,r24
3928 .L325:
3929 1f5c 8091 0000 lds r24,modell_fliegt
3930 1f60 9091 0000 lds r25,(modell_fliegt)+1
3931 1f64 8F3F cpi r24,255
3932 1f66 9105 cpc r25,__zero_reg__
3933 1f68 09F0 breq .+2
3934 1f6a 38F5 brsh .L327
3935 1f6c 1092 0000 sts SummeNick,__zero_reg__
3936 1f70 1092 0000 sts (SummeNick)+1,__zero_reg__
3937 1f74 1092 0000 sts (SummeNick)+2,__zero_reg__
3938 1f78 1092 0000 sts (SummeNick)+3,__zero_reg__
3939 1f7c 1092 0000 sts SummeRoll,__zero_reg__
3940 1f80 1092 0000 sts (SummeRoll)+1,__zero_reg__
3941 1f84 1092 0000 sts (SummeRoll)+2,__zero_reg__
3942 1f88 1092 0000 sts (SummeRoll)+3,__zero_reg__
3943 1f8c 1092 0000 sts sollGier.0,__zero_reg__
3944 1f90 1092 0000 sts (sollGier.0)+1,__zero_reg__
3945 1f94 1092 0000 sts (sollGier.0)+2,__zero_reg__
3946 1f98 1092 0000 sts (sollGier.0)+3,__zero_reg__
3947 1f9c 1092 0000 sts Mess_Integral_Gier,__zero_reg__
3948 1fa0 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__
3949 1fa4 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__
3950 1fa8 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__
3951 1fac 8A3F cpi r24,250
3952 1fae 9105 cpc r25,__zero_reg__
3953 1fb0 49F4 brne .L329
3954 1fb2 81E0 ldi r24,lo8(1)
3955 1fb4 8093 0000 sts NeueKompassRichtungMerken.10,r24
3956 1fb8 05C0 rjmp .L329
3957 .L327:
3958 1fba 8091 0000 lds r24,FCFlags
3959 1fbe 8260 ori r24,lo8(2)
3960 1fc0 8093 0000 sts FCFlags,r24
3961 .L329:
3962 1fc4 8091 0000 lds r24,EE_Parameter+3
3963 1fc8 E82F mov r30,r24
3964 1fca FF27 clr r31
3965 1fcc EE0F add r30,r30
3966 1fce FF1F adc r31,r31
3967 1fd0 E050 subi r30,lo8(-(PPM_in))
3968 1fd2 F040 sbci r31,hi8(-(PPM_in))
3969 1fd4 8081 ld r24,Z
3970 1fd6 9181 ldd r25,Z+1
3971 1fd8 8135 cpi r24,81
3972 1fda 9105 cpc r25,__zero_reg__
3973 1fdc 0CF4 brge .+2
3974 1fde 41C1 rjmp .L330
3975 1fe0 2091 0000 lds r18,MotorenEin
3976 1fe4 2223 tst r18
3977 1fe6 09F0 breq .+2
3978 1fe8 3CC1 rjmp .L330
3979 1fea 8091 0000 lds r24,EE_Parameter+4
3980 1fee E82F mov r30,r24
3981 1ff0 FF27 clr r31
3982 1ff2 EE0F add r30,r30
3983 1ff4 FF1F adc r31,r31
3984 1ff6 E050 subi r30,lo8(-(PPM_in))
3985 1ff8 F040 sbci r31,hi8(-(PPM_in))
3986 1ffa 8081 ld r24,Z
3987 1ffc 9181 ldd r25,Z+1
3988 1ffe 8C34 cpi r24,76
3989 2000 9105 cpc r25,__zero_reg__
3990 2002 0CF4 brge .+2
3991 2004 06C1 rjmp .L331
3992 2006 8091 0000 lds r24,delay_neutral.6
3993 200a 8F5F subi r24,lo8(-(1))
3994 200c 8093 0000 sts delay_neutral.6,r24
3995 2010 893C cpi r24,lo8(-55)
3996 2012 08F4 brsh .+2
3997 2014 26C1 rjmp .L330
3998 2016 3C30 cpi r19,lo8(12)
3999 2018 10F4 brsh .L333
4000 201a 2998 cbi 37-0x20,1
4001 201c 01C0 rjmp .L334
4002 .L333:
4003 201e 299A sbi 37-0x20,1
4004 .L334:
4005 2020 1092 0000 sts MotorenEin,__zero_reg__
4006 2024 1092 0000 sts delay_neutral.6,__zero_reg__
4007 2028 1092 0000 sts (modell_fliegt)+1,__zero_reg__
4008 202c 1092 0000 sts modell_fliegt,__zero_reg__
4009 2030 3091 0000 lds r19,EE_Parameter+1
4010 2034 E32F mov r30,r19
4011 2036 FF27 clr r31
4012 2038 EE0F add r30,r30
4013 203a FF1F adc r31,r31
4014 203c E050 subi r30,lo8(-(PPM_in))
4015 203e F040 sbci r31,hi8(-(PPM_in))
4016 2040 8081 ld r24,Z
4017 2042 9181 ldd r25,Z+1
4018 2044 8734 cpi r24,71
4019 2046 9105 cpc r25,__zero_reg__
4020 2048 B4F4 brge .L336
4021 204a 8091 0000 lds r24,EE_Parameter+2
4022 204e E82F mov r30,r24
4023 2050 FF27 clr r31
4024 2052 EE0F add r30,r30
4025 2054 FF1F adc r31,r31
4026 2056 E050 subi r30,lo8(-(PPM_in))
4027 2058 F040 sbci r31,hi8(-(PPM_in))
4028 205a 8081 ld r24,Z
4029 205c 9181 ldd r25,Z+1
4030 205e 0190 ld __tmp_reg__,Z+
4031 2060 F081 ld r31,Z
4032 2062 E02D mov r30,__tmp_reg__
4033 2064 F7FF sbrs r31,7
4034 2066 03C0 rjmp .L337
4035 2068 F095 com r31
4036 206a E195 neg r30
4037 206c FF4F sbci r31,lo8(-1)
4038 .L337:
4039 206e E734 cpi r30,71
4040 2070 F105 cpc r31,__zero_reg__
4041 2072 0CF4 brge .+2
4042 2074 78C0 rjmp .L335
4043 .L336:
4044 2076 41E0 ldi r20,lo8(1)
4045 2078 2091 0000 lds r18,EE_Parameter+2
4046 207c A22F mov r26,r18
4047 207e BB27 clr r27
4048 2080 AA0F add r26,r26
4049 2082 BB1F adc r27,r27
4050 2084 A050 subi r26,lo8(-(PPM_in))
4051 2086 B040 sbci r27,hi8(-(PPM_in))
4052 2088 8D91 ld r24,X+
4053 208a 9C91 ld r25,X
4054 208c 1197 sbiw r26,1
4055 208e 8734 cpi r24,71
4056 2090 9105 cpc r25,__zero_reg__
4057 2092 44F0 brlt .L338
4058 2094 E32F mov r30,r19
4059 2096 FF27 clr r31
4060 2098 EE0F add r30,r30
4061 209a FF1F adc r31,r31
4062 209c E050 subi r30,lo8(-(PPM_in))
4063 209e F040 sbci r31,hi8(-(PPM_in))
4064 20a0 8081 ld r24,Z
4065 20a2 9181 ldd r25,Z+1
4066 .L338:
4067 20a4 8D91 ld r24,X+
4068 20a6 9C91 ld r25,X
4069 20a8 8734 cpi r24,71
4070 20aa 9105 cpc r25,__zero_reg__
4071 20ac 74F0 brlt .L339
4072 20ae 8091 0000 lds r24,EE_Parameter+1
4073 20b2 E82F mov r30,r24
4074 20b4 FF27 clr r31
4075 20b6 EE0F add r30,r30
4076 20b8 FF1F adc r31,r31
4077 20ba E050 subi r30,lo8(-(PPM_in))
4078 20bc F040 sbci r31,hi8(-(PPM_in))
4079 20be 8081 ld r24,Z
4080 20c0 9181 ldd r25,Z+1
4081 20c2 8734 cpi r24,71
4082 20c4 9105 cpc r25,__zero_reg__
4083 20c6 0CF0 brlt .L339
4084 20c8 42E0 ldi r20,lo8(2)
4085 .L339:
4086 20ca E22F mov r30,r18
4087 20cc FF27 clr r31
4088 20ce EE0F add r30,r30
4089 20d0 FF1F adc r31,r31
4090 20d2 E050 subi r30,lo8(-(PPM_in))
4091 20d4 F040 sbci r31,hi8(-(PPM_in))
4092 20d6 8081 ld r24,Z
4093 20d8 9181 ldd r25,Z+1
4094 20da 8634 cpi r24,70
4095 20dc 9105 cpc r25,__zero_reg__
4096 20de 74F4 brge .L340
4097 20e0 8091 0000 lds r24,EE_Parameter+1
4098 20e4 E82F mov r30,r24
4099 20e6 FF27 clr r31
4100 20e8 EE0F add r30,r30
4101 20ea FF1F adc r31,r31
4102 20ec E050 subi r30,lo8(-(PPM_in))
4103 20ee F040 sbci r31,hi8(-(PPM_in))
4104 20f0 8081 ld r24,Z
4105 20f2 9181 ldd r25,Z+1
4106 20f4 8734 cpi r24,71
4107 20f6 9105 cpc r25,__zero_reg__
4108 20f8 0CF0 brlt .L340
4109 20fa 43E0 ldi r20,lo8(3)
4110 .L340:
4111 20fc E22F mov r30,r18
4112 20fe FF27 clr r31
4113 2100 EE0F add r30,r30
4114 2102 FF1F adc r31,r31
4115 2104 E050 subi r30,lo8(-(PPM_in))
4116 2106 F040 sbci r31,hi8(-(PPM_in))
4117 2108 8081 ld r24,Z
4118 210a 9181 ldd r25,Z+1
4119 210c 8A5B subi r24,lo8(-70)
4120 210e 9F4F sbci r25,hi8(-70)
4121 2110 74F4 brge .L341
4122 2112 8091 0000 lds r24,EE_Parameter+1
4123 2116 E82F mov r30,r24
4124 2118 FF27 clr r31
4125 211a EE0F add r30,r30
4126 211c FF1F adc r31,r31
4127 211e E050 subi r30,lo8(-(PPM_in))
4128 2120 F040 sbci r31,hi8(-(PPM_in))
4129 2122 8081 ld r24,Z
4130 2124 9181 ldd r25,Z+1
4131 2126 8734 cpi r24,71
4132 2128 9105 cpc r25,__zero_reg__
4133 212a 0CF0 brlt .L341
4134 212c 44E0 ldi r20,lo8(4)
4135 .L341:
4136 212e E22F mov r30,r18
4137 2130 FF27 clr r31
4138 2132 EE0F add r30,r30
4139 2134 FF1F adc r31,r31
4140 2136 E050 subi r30,lo8(-(PPM_in))
4141 2138 F040 sbci r31,hi8(-(PPM_in))
4142 213a 8081 ld r24,Z
4143 213c 9181 ldd r25,Z+1
4144 213e 8A5B subi r24,lo8(-70)
4145 2140 9F4F sbci r25,hi8(-70)
4146 2142 74F4 brge .L342
4147 2144 8091 0000 lds r24,EE_Parameter+1
4148 2148 E82F mov r30,r24
4149 214a FF27 clr r31
4150 214c EE0F add r30,r30
4151 214e FF1F adc r31,r31
4152 2150 E050 subi r30,lo8(-(PPM_in))
4153 2152 F040 sbci r31,hi8(-(PPM_in))
4154 2154 8081 ld r24,Z
4155 2156 9181 ldd r25,Z+1
4156 2158 8634 cpi r24,70
4157 215a 9105 cpc r25,__zero_reg__
4158 215c 0CF4 brge .L342
4159 215e 45E0 ldi r20,lo8(5)
4160 .L342:
4161 2160 842F mov r24,r20
4162 2162 0E94 0000 call SetActiveParamSet
4163 .L335:
4164 2166 8091 0000 lds r24,EE_Parameter+2
4165 216a E82F mov r30,r24
4166 216c FF27 clr r31
4167 216e EE0F add r30,r30
4168 2170 FF1F adc r31,r31
4169 2172 E050 subi r30,lo8(-(PPM_in))
4170 2174 F040 sbci r31,hi8(-(PPM_in))
4171 2176 8081 ld r24,Z
4172 2178 9181 ldd r25,Z+1
4173 217a 0190 ld __tmp_reg__,Z+
4174 217c F081 ld r31,Z
4175 217e E02D mov r30,__tmp_reg__
4176 2180 F7FF sbrs r31,7
4177 2182 03C0 rjmp .L344
4178 2184 F095 com r31
4179 2186 E195 neg r30
4180 2188 FF4F sbci r31,lo8(-1)
4181 .L344:
4182 218a 7E97 sbiw r30,30
4183 218c BCF4 brge .L343
4184 218e 8091 0000 lds r24,EE_Parameter+1
4185 2192 E82F mov r30,r24
4186 2194 FF27 clr r31
4187 2196 EE0F add r30,r30
4188 2198 FF1F adc r31,r31
4189 219a E050 subi r30,lo8(-(PPM_in))
4190 219c F040 sbci r31,hi8(-(PPM_in))
4191 219e 8081 ld r24,Z
4192 21a0 9181 ldd r25,Z+1
4193 21a2 8A5B subi r24,lo8(-70)
4194 21a4 9F4F sbci r25,hi8(-70)
4195 21a6 54F4 brge .L343
4196 21a8 81E0 ldi r24,lo8(1)
4197 21aa 8093 0000 sts WinkelOut+6,r24
4198 21ae 88EE ldi r24,lo8(1000)
4199 21b0 93E0 ldi r25,hi8(1000)
4200 21b2 9093 0000 sts (beeptime)+1,r25
4201 21b6 8093 0000 sts beeptime,r24
4202 21ba 53C0 rjmp .L330
4203 .L343:
4204 21bc 0E94 0000 call GetActiveParamSet
4205 21c0 0E94 0000 call ParamSet_ReadFromEEProm
4206 21c4 80E0 ldi r24,lo8(0)
4207 21c6 0E94 0000 call LipoDetection
4208 21ca 8091 0000 lds r24,EE_Parameter+39
4209 21ce 0E94 0000 call LIBFC_ReceiverInit
4210 21d2 8091 0000 lds r24,EE_Parameter+13
4211 21d6 80FF sbrs r24,0
4212 21d8 10C0 rjmp .L346
4213 21da 8091 0000 lds r24,MessLuftdruck
4214 21de 9091 0000 lds r25,(MessLuftdruck)+1
4215 21e2 875B subi r24,lo8(951)
4216 21e4 9340 sbci r25,hi8(951)
4217 21e6 38F4 brsh .L348
4218 21e8 8091 0000 lds r24,MessLuftdruck
4219 21ec 9091 0000 lds r25,(MessLuftdruck)+1
4220 21f0 8E5E subi r24,lo8(750)
4221 21f2 9240 sbci r25,hi8(750)
4222 21f4 10F4 brsh .L346
4223 .L348:
4224 21f6 0E94 0000 call SucheLuftruckOffset
4225 .L346:
4226 21fa 1092 0000 sts ServoActive,__zero_reg__
4227 21fe 80E0 ldi r24,lo8(0)
4228 2200 0E94 0000 call SetNeutral
4229 2204 81E0 ldi r24,lo8(1)
4230 2206 8093 0000 sts calibration_done.9,r24
4231 220a 8093 0000 sts ServoActive,r24
4232 220e 579A sbi 42-0x20,7
4233 2210 1FC0 rjmp .L777
4234 .L331:
4235 2212 8081 ld r24,Z
4236 2214 9181 ldd r25,Z+1
4237 2216 855B subi r24,lo8(-75)
4238 2218 9F4F sbci r25,hi8(-75)
4239 221a 0CF5 brge .L350
4240 221c 8091 0000 lds r24,delay_neutral.6
4241 2220 8F5F subi r24,lo8(-(1))
4242 2222 8093 0000 sts delay_neutral.6,r24
4243 2226 893C cpi r24,lo8(-55)
4244 2228 E0F0 brlo .L330
4245 222a 3C30 cpi r19,lo8(12)
4246 222c 10F4 brsh .L352
4247 222e 2998 cbi 37-0x20,1
4248 2230 01C0 rjmp .L353
4249 .L352:
4250 2232 299A sbi 37-0x20,1
4251 .L353:
4252 2234 1092 0000 sts MotorenEin,__zero_reg__
4253 2238 1092 0000 sts delay_neutral.6,__zero_reg__
4254 223c 1092 0000 sts (modell_fliegt)+1,__zero_reg__
4255 2240 1092 0000 sts modell_fliegt,__zero_reg__
4256 2244 81E0 ldi r24,lo8(1)
4257 2246 0E94 0000 call SetNeutral
4258 224a 81E0 ldi r24,lo8(1)
4259 224c 8093 0000 sts calibration_done.9,r24
4260 .L777:
4261 2250 0E94 0000 call GetActiveParamSet
4262 2254 68E7 ldi r22,lo8(120)
4263 2256 70E0 ldi r23,hi8(120)
4264 2258 0E94 0000 call Piep
4265 225c 02C0 rjmp .L330
4266 .L350:
4267 225e 2093 0000 sts delay_neutral.6,r18
4268 .L330:
4269 2262 8091 0000 lds r24,EE_Parameter+3
4270 2266 E82F mov r30,r24
4271 2268 FF27 clr r31
4272 226a EE0F add r30,r30
4273 226c FF1F adc r31,r31
4274 226e E050 subi r30,lo8(-(PPM_in))
4275 2270 F040 sbci r31,hi8(-(PPM_in))
4276 2272 8081 ld r24,Z
4277 2274 9181 ldd r25,Z+1
4278 2276 8B5A subi r24,lo8(-85)
4279 2278 9F4F sbci r25,hi8(-85)
4280 227a 0CF0 brlt .+2
4281 227c EDC0 rjmp .L323
4282 227e 2091 0000 lds r18,MotorenEin
4283 2282 E091 0000 lds r30,EE_Parameter+4
4284 2286 2223 tst r18
4285 2288 09F0 breq .+2
4286 228a CAC0 rjmp .L356
4287 228c FF27 clr r31
4288 228e EE0F add r30,r30
4289 2290 FF1F adc r31,r31
4290 2292 E050 subi r30,lo8(-(PPM_in))
4291 2294 F040 sbci r31,hi8(-(PPM_in))
4292 2296 8081 ld r24,Z
4293 2298 9181 ldd r25,Z+1
4294 229a 855B subi r24,lo8(-75)
4295 229c 9F4F sbci r25,hi8(-75)
4296 229e 0CF0 brlt .+2
4297 22a0 BCC0 rjmp .L357
4298 22a2 8091 0000 lds r24,delay_einschalten.7
4299 22a6 8F5F subi r24,lo8(-(1))
4300 22a8 8093 0000 sts delay_einschalten.7,r24
4301 22ac 893C cpi r24,lo8(-55)
4302 22ae 08F4 brsh .+2
4303 22b0 D3C0 rjmp .L323
4304 22b2 2093 0000 sts delay_einschalten.7,r18
4305 22b6 8091 0000 lds r24,VersionInfo+5
4306 22ba 8823 tst r24
4307 22bc 09F0 breq .+2
4308 22be A6C0 rjmp .L359
4309 22c0 8091 0000 lds r24,calibration_done.9
4310 22c4 8823 tst r24
4311 22c6 09F4 brne .+2
4312 22c8 A1C0 rjmp .L359
4313 22ca 81E0 ldi r24,lo8(1)
4314 22cc 90E0 ldi r25,hi8(1)
4315 22ce 9093 0000 sts (modell_fliegt)+1,r25
4316 22d2 8093 0000 sts modell_fliegt,r24
4317 22d6 81E0 ldi r24,lo8(1)
4318 22d8 8093 0000 sts MotorenEin,r24
4319 22dc 1092 0000 sts sollGier.0,__zero_reg__
4320 22e0 1092 0000 sts (sollGier.0)+1,__zero_reg__
4321 22e4 1092 0000 sts (sollGier.0)+2,__zero_reg__
4322 22e8 1092 0000 sts (sollGier.0)+3,__zero_reg__
4323 22ec 1092 0000 sts Mess_Integral_Gier,__zero_reg__
4324 22f0 1092 0000 sts (Mess_Integral_Gier)+1,__zero_reg__
4325 22f4 1092 0000 sts (Mess_Integral_Gier)+2,__zero_reg__
4326 22f8 1092 0000 sts (Mess_Integral_Gier)+3,__zero_reg__
4327 22fc 1092 0000 sts Mess_Integral_Gier2,__zero_reg__
4328 2300 1092 0000 sts (Mess_Integral_Gier2)+1,__zero_reg__
4329 2304 1092 0000 sts (Mess_Integral_Gier2)+2,__zero_reg__
4330 2308 1092 0000 sts (Mess_Integral_Gier2)+3,__zero_reg__
4331 230c 8091 0000 lds r24,EE_Parameter+28
4332 2310 E82E mov r14,r24
4333 2312 FF24 clr r15
4334 2314 0027 clr r16
4335 2316 1127 clr r17
4336 2318 8091 0000 lds r24,Mittelwert_AccNick
4337 231c 9091 0000 lds r25,(Mittelwert_AccNick)+1
4338 2320 9C01 movw r18,r24
4339 2322 4427 clr r20
4340 2324 37FD sbrc r19,7
4341 2326 4095 com r20
4342 2328 542F mov r21,r20
4343 232a C801 movw r24,r16
4344 232c B701 movw r22,r14
4345 232e 0E94 0000 call __mulsi3
4346 2332 DC01 movw r26,r24
4347 2334 CB01 movw r24,r22
4348 2336 8093 0000 sts Mess_IntegralNick,r24
4349 233a 9093 0000 sts (Mess_IntegralNick)+1,r25
4350 233e A093 0000 sts (Mess_IntegralNick)+2,r26
4351 2342 B093 0000 sts (Mess_IntegralNick)+3,r27
4352 2346 8091 0000 lds r24,Mittelwert_AccRoll
4353 234a 9091 0000 lds r25,(Mittelwert_AccRoll)+1
4354 234e 9C01 movw r18,r24
4355 2350 4427 clr r20
4356 2352 37FD sbrc r19,7
4357 2354 4095 com r20
4358 2356 542F mov r21,r20
4359 2358 C801 movw r24,r16
4360 235a B701 movw r22,r14
4361 235c 0E94 0000 call __mulsi3
4362 2360 DC01 movw r26,r24
4363 2362 CB01 movw r24,r22
4364 2364 8093 0000 sts Mess_IntegralRoll,r24
4365 2368 9093 0000 sts (Mess_IntegralRoll)+1,r25
4366 236c A093 0000 sts (Mess_IntegralRoll)+2,r26
4367 2370 B093 0000 sts (Mess_IntegralRoll)+3,r27
4368 2374 8091 0000 lds r24,IntegralNick
4369 2378 9091 0000 lds r25,(IntegralNick)+1
4370 237c A091 0000 lds r26,(IntegralNick)+2
4371 2380 B091 0000 lds r27,(IntegralNick)+3
4372 2384 8093 0000 sts Mess_IntegralNick2,r24
4373 2388 9093 0000 sts (Mess_IntegralNick2)+1,r25
4374 238c A093 0000 sts (Mess_IntegralNick2)+2,r26
4375 2390 B093 0000 sts (Mess_IntegralNick2)+3,r27
4376 2394 8091 0000 lds r24,IntegralRoll
4377 2398 9091 0000 lds r25,(IntegralRoll)+1
4378 239c A091 0000 lds r26,(IntegralRoll)+2
4379 23a0 B091 0000 lds r27,(IntegralRoll)+3
4380 23a4 8093 0000 sts Mess_IntegralRoll2,r24
4381 23a8 9093 0000 sts (Mess_IntegralRoll2)+1,r25
4382 23ac A093 0000 sts (Mess_IntegralRoll2)+2,r26
4383 23b0 B093 0000 sts (Mess_IntegralRoll2)+3,r27
4384 23b4 1092 0000 sts SummeNick,__zero_reg__
4385 23b8 1092 0000 sts (SummeNick)+1,__zero_reg__
4386 23bc 1092 0000 sts (SummeNick)+2,__zero_reg__
4387 23c0 1092 0000 sts (SummeNick)+3,__zero_reg__
4388 23c4 1092 0000 sts SummeRoll,__zero_reg__
4389 23c8 1092 0000 sts (SummeRoll)+1,__zero_reg__
4390 23cc 1092 0000 sts (SummeRoll)+2,__zero_reg__
4391 23d0 1092 0000 sts (SummeRoll)+3,__zero_reg__
4392 23d4 8091 0000 lds r24,FCFlags
4393 23d8 8860 ori r24,lo8(8)
4394 23da 8093 0000 sts FCFlags,r24
4395 23de 9091 0000 lds r25,EE_Parameter+95
4396 23e2 8FE0 ldi r24,lo8(15)
4397 23e4 989F mul r25,r24
4398 23e6 9001 movw r18,r0
4399 23e8 1124 clr r1
4400 23ea 8091 0000 lds r24,KompassValue
4401 23ee 9091 0000 lds r25,(KompassValue)+1
4402 23f2 820F add r24,r18
4403 23f4 931F adc r25,r19
4404 23f6 68E6 ldi r22,lo8(360)
4405 23f8 71E0 ldi r23,hi8(360)
4406 23fa 0E94 0000 call __divmodhi4
4407 23fe 97FD sbrc r25,7
4408 2400 0196 adiw r24,1
4409 .L360:
4410 2402 9595 asr r25
4411 2404 8795 ror r24
4412 2406 8093 0000 sts ControlHeading,r24
4413 240a 26C0 rjmp .L323
4414 .L359:
4415 240c 8CED ldi r24,lo8(1500)
4416 240e 95E0 ldi r25,hi8(1500)
4417 2410 9093 0000 sts (beeptime)+1,r25
4418 2414 8093 0000 sts beeptime,r24
4419 2418 1FC0 rjmp .L323
4420 .L357:
4421 241a 2093 0000 sts delay_einschalten.7,r18
4422 241e 1CC0 rjmp .L323
4423 .L356:
4424 2420 FF27 clr r31
4425 2422 EE0F add r30,r30
4426 2424 FF1F adc r31,r31
4427 2426 E050 subi r30,lo8(-(PPM_in))
4428 2428 F040 sbci r31,hi8(-(PPM_in))
4429 242a 8081 ld r24,Z
4430 242c 9181 ldd r25,Z+1
4431 242e 8C34 cpi r24,76
4432 2430 9105 cpc r25,__zero_reg__
4433 2432 84F0 brlt .L364
4434 2434 8091 0000 lds r24,delay_ausschalten.8
4435 2438 8F5F subi r24,lo8(-(1))
4436 243a 8093 0000 sts delay_ausschalten.8,r24
4437 243e 893C cpi r24,lo8(-55)
4438 2440 58F0 brlo .L323
4439 2442 1092 0000 sts MotorenEin,__zero_reg__
4440 2446 1092 0000 sts delay_ausschalten.8,__zero_reg__
4441 244a 1092 0000 sts (modell_fliegt)+1,__zero_reg__
4442 244e 1092 0000 sts modell_fliegt,__zero_reg__
4443 2452 02C0 rjmp .L323
4444 .L364:
4445 2454 1092 0000 sts delay_ausschalten.8,__zero_reg__
4446 .L323:
4447 2458 8091 0000 lds r24,NewPpmData
4448 245c 8150 subi r24,lo8(-(-1))
4449 245e 8093 0000 sts NewPpmData,r24
4450 2462 8091 0000 lds r24,NewPpmData
4451 2466 8F3F cpi r24,lo8(-1)
4452 2468 21F0 breq .L368
4453 246a 8091 0000 lds r24,FCFlags
4454 246e 84FF sbrs r24,4
4455 2470 82C3 rjmp .L367
4456 .L368:
4457 2472 0E94 0000 call ParameterZuordnung
4458 2476 8091 0000 lds r24,stick_nick.13
4459 247a 9091 0000 lds r25,(stick_nick.13)+1
4460 247e 9C01 movw r18,r24
4461 2480 220F lsl r18
4462 2482 331F rol r19
4463 2484 280F add r18,r24
4464 2486 391F adc r19,r25
4465 2488 A090 0000 lds r10,EE_Parameter+1
4466 248c AA2D mov r26,r10
4467 248e BB27 clr r27
4468 2490 AA0F add r26,r26
4469 2492 BB1F adc r27,r27
4470 2494 FD01 movw r30,r26
4471 2496 E050 subi r30,lo8(-(PPM_in))
4472 2498 F040 sbci r31,hi8(-(PPM_in))
4473 249a 9090 0000 lds r9,EE_Parameter+23
4474 249e 492D mov r20,r9
4475 24a0 5527 clr r21
4476 24a2 8081 ld r24,Z
4477 24a4 9181 ldd r25,Z+1
4478 24a6 849F mul r24,r20
4479 24a8 F001 movw r30,r0
4480 24aa 859F mul r24,r21
4481 24ac F00D add r31,r0
4482 24ae 949F mul r25,r20
4483 24b0 F00D add r31,r0
4484 24b2 1124 clr r1
4485 24b4 2E0F add r18,r30
4486 24b6 3F1F adc r19,r31
4487 24b8 37FF sbrs r19,7
4488 24ba 02C0 rjmp .L369
4489 24bc 2D5F subi r18,lo8(-(3))
4490 24be 3F4F sbci r19,hi8(-(3))
4491 .L369:
4492 24c0 B901 movw r22,r18
4493 24c2 7595 asr r23
4494 24c4 6795 ror r22
4495 24c6 7595 asr r23
4496 24c8 6795 ror r22
4497 24ca A050 subi r26,lo8(-(PPM_diff))
4498 24cc B040 sbci r27,hi8(-(PPM_diff))
4499 24ce 8091 0000 lds r24,EE_Parameter+24
4500 24d2 082F mov r16,r24
4501 24d4 1127 clr r17
4502 24d6 8D91 ld r24,X+
4503 24d8 9C91 ld r25,X
4504 24da 809F mul r24,r16
4505 24dc 7001 movw r14,r0
4506 24de 819F mul r24,r17
4507 24e0 F00C add r15,r0
4508 24e2 909F mul r25,r16
4509 24e4 F00C add r15,r0
4510 24e6 1124 clr r1
4511 24e8 6E0D add r22,r14
4512 24ea 7F1D adc r23,r15
4513 24ec 7093 0000 sts (stick_nick.13)+1,r23
4514 24f0 6093 0000 sts stick_nick.13,r22
4515 24f4 8091 0000 lds r24,stick_roll.14
4516 24f8 9091 0000 lds r25,(stick_roll.14)+1
4517 24fc 9C01 movw r18,r24
4518 24fe 220F lsl r18
4519 2500 331F rol r19
4520 2502 280F add r18,r24
4521 2504 391F adc r19,r25
4522 2506 B090 0000 lds r11,EE_Parameter+2
4523 250a AB2D mov r26,r11
4524 250c BB27 clr r27
4525 250e AA0F add r26,r26
4526 2510 BB1F adc r27,r27
4527 2512 FD01 movw r30,r26
4528 2514 E050 subi r30,lo8(-(PPM_in))
4529 2516 F040 sbci r31,hi8(-(PPM_in))
4530 2518 8081 ld r24,Z
4531 251a 9181 ldd r25,Z+1
4532 251c 849F mul r24,r20
4533 251e F001 movw r30,r0
4534 2520 859F mul r24,r21
4535 2522 F00D add r31,r0
4536 2524 949F mul r25,r20
4537 2526 F00D add r31,r0
4538 2528 1124 clr r1
4539 252a 2E0F add r18,r30
4540 252c 3F1F adc r19,r31
4541 252e 37FF sbrs r19,7
4542 2530 02C0 rjmp .L370
4543 2532 2D5F subi r18,lo8(-(3))
4544 2534 3F4F sbci r19,hi8(-(3))
4545 .L370:
4546 2536 A901 movw r20,r18
4547 2538 5595 asr r21
4548 253a 4795 ror r20
4549 253c 5595 asr r21
4550 253e 4795 ror r20
4551 2540 A050 subi r26,lo8(-(PPM_diff))
4552 2542 B040 sbci r27,hi8(-(PPM_diff))
4553 2544 8D91 ld r24,X+
4554 2546 9C91 ld r25,X
4555 2548 809F mul r24,r16
4556 254a 7001 movw r14,r0
4557 254c 819F mul r24,r17
4558 254e F00C add r15,r0
4559 2550 909F mul r25,r16
4560 2552 F00C add r15,r0
4561 2554 1124 clr r1
4562 2556 4E0D add r20,r14
4563 2558 5F1D adc r21,r15
4564 255a 5093 0000 sts (stick_roll.14)+1,r21
4565 255e 4093 0000 sts stick_roll.14,r20
4566 2562 9E01 movw r18,r28
4567 2564 2F5F subi r18,lo8(-(1))
4568 2566 3F4F sbci r19,hi8(-(1))
4569 2568 8FE1 ldi r24,lo8(31)
4570 256a E0E0 ldi r30,lo8(.LC0)
4571 256c F0E0 ldi r31,hi8(.LC0)
4572 256e D901 movw r26,r18
4573 2570 0190 ld __tmp_reg__,Z+
4574 2572 0D92 st X+,__tmp_reg__
4575 2574 8A95 dec r24
4576 2576 E1F7 brne .-8
4577 2578 8091 0000 lds r24,CareFree
4578 257c 8823 tst r24
4579 257e 09F4 brne .+2
4580 2580 48C0 rjmp .L371
4581 2582 CB01 movw r24,r22
4582 2584 77FD sbrc r23,7
4583 2586 0396 adiw r24,3
4584 .L372:
4585 2588 DC01 movw r26,r24
4586 258a B595 asr r27
4587 258c A795 ror r26
4588 258e B595 asr r27
4589 2590 A795 ror r26
4590 2592 CA01 movw r24,r20
4591 2594 57FD sbrc r21,7
4592 2596 0396 adiw r24,3
4593 .L373:
4594 2598 FC01 movw r30,r24
4595 259a F595 asr r31
4596 259c E795 ror r30
4597 259e F595 asr r31
4598 25a0 E795 ror r30
4599 25a2 8091 0000 lds r24,FromNC_Rotate_C
4600 25a6 682F mov r22,r24
4601 25a8 7727 clr r23
4602 25aa 67FD sbrc r22,7
4603 25ac 7095 com r23
4604 25ae 6A9F mul r22,r26
4605 25b0 9001 movw r18,r0
4606 25b2 6B9F mul r22,r27
4607 25b4 300D add r19,r0
4608 25b6 7A9F mul r23,r26
4609 25b8 300D add r19,r0
4610 25ba 1124 clr r1
4611 25bc 8091 0000 lds r24,FromNC_Rotate_S
4612 25c0 482F mov r20,r24
4613 25c2 5527 clr r21
4614 25c4 47FD sbrc r20,7
4615 25c6 5095 com r21
4616 25c8 4E9F mul r20,r30
4617 25ca C001 movw r24,r0
4618 25cc 4F9F mul r20,r31
4619 25ce 900D add r25,r0
4620 25d0 5E9F mul r21,r30
4621 25d2 900D add r25,r0
4622 25d4 1124 clr r1
4623 25d6 280F add r18,r24
4624 25d8 391F adc r19,r25
4625 25da 37FF sbrs r19,7
4626 25dc 02C0 rjmp .L374
4627 25de 295F subi r18,lo8(-(7))
4628 25e0 3F4F sbci r19,hi8(-(7))
4629 .L374:
4630 25e2 03E0 ldi r16,3
4631 25e4 3595 1: asr r19
4632 25e6 2795 ror r18
4633 25e8 0A95 dec r16
4634 25ea E1F7 brne 1b
4635 25ec 3093 0000 sts (StickNick)+1,r19
4636 25f0 2093 0000 sts StickNick,r18
4637 25f4 6E9F mul r22,r30
4638 25f6 9001 movw r18,r0
4639 25f8 6F9F mul r22,r31
4640 25fa 300D add r19,r0
4641 25fc 7E9F mul r23,r30
4642 25fe 300D add r19,r0
4643 2600 1124 clr r1
4644 2602 4A9F mul r20,r26
4645 2604 C001 movw r24,r0
4646 2606 4B9F mul r20,r27
4647 2608 900D add r25,r0
4648 260a 5A9F mul r21,r26
4649 260c 900D add r25,r0
4650 260e 1124 clr r1
4651 2610 44C0 rjmp .L803
4652 .L371:
4653 2612 8091 0000 lds r24,EE_Parameter+95
4654 2616 082F mov r16,r24
4655 2618 1127 clr r17
4656 261a DE01 movw r26,r28
4657 261c A00F add r26,r16
4658 261e B11F adc r27,r17
4659 2620 FD01 movw r30,r26
4660 2622 9781 ldd r25,Z+7
4661 2624 9093 0000 sts FromNC_Rotate_C,r25
4662 2628 020F add r16,r18
4663 262a 131F adc r17,r19
4664 262c D801 movw r26,r16
4665 262e 8C91 ld r24,X
4666 2630 8093 0000 sts FromNC_Rotate_S,r24
4667 2634 A92F mov r26,r25
4668 2636 BB27 clr r27
4669 2638 A7FD sbrc r26,7
4670 263a B095 com r27
4671 263c A69F mul r26,r22
4672 263e 9001 movw r18,r0
4673 2640 A79F mul r26,r23
4674 2642 300D add r19,r0
4675 2644 B69F mul r27,r22
4676 2646 300D add r19,r0
4677 2648 1124 clr r1
4678 264a E82F mov r30,r24
4679 264c FF27 clr r31
4680 264e E7FD sbrc r30,7
4681 2650 F095 com r31
4682 2652 E49F mul r30,r20
4683 2654 C001 movw r24,r0
4684 2656 E59F mul r30,r21
4685 2658 900D add r25,r0
4686 265a F49F mul r31,r20
4687 265c 900D add r25,r0
4688 265e 1124 clr r1
4689 2660 280F add r18,r24
4690 2662 391F adc r19,r25
4691 2664 37FF sbrs r19,7
4692 2666 02C0 rjmp .L377
4693 2668 295F subi r18,lo8(-(7))
4694 266a 3F4F sbci r19,hi8(-(7))
4695 .L377:
4696 266c 13E0 ldi r17,3
4697 266e 3595 1: asr r19
4698 2670 2795 ror r18
4699 2672 1A95 dec r17
4700 2674 E1F7 brne 1b
4701 2676 3093 0000 sts (StickNick)+1,r19
4702 267a 2093 0000 sts StickNick,r18
4703 267e A49F mul r26,r20
4704 2680 9001 movw r18,r0
4705 2682 A59F mul r26,r21
4706 2684 300D add r19,r0
4707 2686 B49F mul r27,r20
4708 2688 300D add r19,r0
4709 268a 1124 clr r1
4710 268c E69F mul r30,r22
4711 268e C001 movw r24,r0
4712 2690 E79F mul r30,r23
4713 2692 900D add r25,r0
4714 2694 F69F mul r31,r22
4715 2696 900D add r25,r0
4716 2698 1124 clr r1
4717 .L803:
4718 269a 281B sub r18,r24
4719 269c 390B sbc r19,r25
4720 269e 37FF sbrs r19,7
4721 26a0 02C0 rjmp .L378
4722 26a2 295F subi r18,lo8(-(7))
4723 26a4 3F4F sbci r19,hi8(-(7))
4724 .L378:
4725 26a6 F3E0 ldi r31,3
4726 26a8 3595 1: asr r19
4727 26aa 2795 ror r18
4728 26ac FA95 dec r31
4729 26ae E1F7 brne 1b
4730 26b0 3093 0000 sts (StickRoll)+1,r19
4731 26b4 2093 0000 sts StickRoll,r18
4732 26b8 8091 0000 lds r24,EE_Parameter+4
4733 26bc E82F mov r30,r24
4734 26be FF27 clr r31
4735 26c0 EE0F add r30,r30
4736 26c2 FF1F adc r31,r31
4737 26c4 E050 subi r30,lo8(-(PPM_in))
4738 26c6 F040 sbci r31,hi8(-(PPM_in))
4739 26c8 8081 ld r24,Z
4740 26ca 9181 ldd r25,Z+1
4741 26cc 9095 com r25
4742 26ce 8195 neg r24
4743 26d0 9F4F sbci r25,lo8(-1)
4744 26d2 9093 0000 sts (StickGier)+1,r25
4745 26d6 8093 0000 sts StickGier,r24
4746 26da 8330 cpi r24,3
4747 26dc 9105 cpc r25,__zero_reg__
4748 26de 14F0 brlt .L379
4749 26e0 0297 sbiw r24,2
4750 26e2 05C0 rjmp .L778
4751 .L379:
4752 26e4 BFEF ldi r27,hi8(-2)
4753 26e6 8E3F cpi r24,lo8(-2)
4754 26e8 9B07 cpc r25,r27
4755 26ea 34F4 brge .L381
4756 26ec 0296 adiw r24,2
4757 .L778:
4758 26ee 9093 0000 sts (StickGier)+1,r25
4759 26f2 8093 0000 sts StickGier,r24
4760 26f6 04C0 rjmp .L380
4761 .L381:
4762 26f8 1092 0000 sts (StickGier)+1,__zero_reg__
4763 26fc 1092 0000 sts StickGier,__zero_reg__
4764 .L380:
4765 2700 8091 0000 lds r24,GPS_Nick
4766 2704 9091 0000 lds r25,(GPS_Nick)+1
4767 2708 2091 0000 lds r18,GPS_Nick2
4768 270c 3091 0000 lds r19,(GPS_Nick2)+1
4769 2710 820F add r24,r18
4770 2712 931F adc r25,r19
4771 2714 C090 0000 lds r12,StickNick
4772 2718 D090 0000 lds r13,(StickNick)+1
4773 271c C81A sub r12,r24
4774 271e D90A sbc r13,r25
4775 2720 D092 0000 sts (StickNick)+1,r13
4776 2724 C092 0000 sts StickNick,r12
4777 2728 8091 0000 lds r24,GPS_Roll
4778 272c 9091 0000 lds r25,(GPS_Roll)+1
4779 2730 2091 0000 lds r18,GPS_Roll2
4780 2734 3091 0000 lds r19,(GPS_Roll2)+1
4781 2738 820F add r24,r18
4782 273a 931F adc r25,r19
4783 273c 0091 0000 lds r16,StickRoll
4784 2740 1091 0000 lds r17,(StickRoll)+1
4785 2744 081B sub r16,r24
4786 2746 190B sbc r17,r25
4787 2748 1093 0000 sts (StickRoll)+1,r17
4788 274c 0093 0000 sts StickRoll,r16
4789 2750 8091 0000 lds r24,EE_Parameter+3
4790 2754 E82F mov r30,r24
4791 2756 FF27 clr r31
4792 2758 EE0F add r30,r30
4793 275a FF1F adc r31,r31
4794 275c E050 subi r30,lo8(-(PPM_in))
4795 275e F040 sbci r31,hi8(-(PPM_in))
4796 2760 E080 ld r14,Z
4797 2762 F180 ldd r15,Z+1
4798 2764 E8E7 ldi r30,lo8(120)
4799 2766 F0E0 ldi r31,hi8(120)
4800 2768 EE0E add r14,r30
4801 276a FF1E adc r15,r31
4802 276c F092 0000 sts (StickGas)+1,r15
4803 2770 E092 0000 sts StickGas,r14
4804 2774 8091 0000 lds r24,Parameter_Gyro_P
4805 2778 9927 clr r25
4806 277a AA27 clr r26
4807 277c 97FD sbrc r25,7
4808 277e A095 com r26
4809 2780 BA2F mov r27,r26
4810 2782 BC01 movw r22,r24
4811 2784 CD01 movw r24,r26
4812 2786 0E94 0000 call __floatsisf
4813 278a DC01 movw r26,r24
4814 278c CB01 movw r24,r22
4815 278e 20E0 ldi r18,lo8(0x41200000)
4816 2790 30E0 ldi r19,hi8(0x41200000)
4817 2792 40E2 ldi r20,hlo8(0x41200000)
4818 2794 51E4 ldi r21,hhi8(0x41200000)
4819 2796 BC01 movw r22,r24
4820 2798 CD01 movw r24,r26
4821 279a 0E94 0000 call __addsf3
4822 279e DC01 movw r26,r24
4823 27a0 CB01 movw r24,r22
4824 27a2 BC01 movw r22,r24
4825 27a4 CD01 movw r24,r26
4826 27a6 0E94 0000 call __fixunssfsi
4827 27aa DC01 movw r26,r24
4828 27ac CB01 movw r24,r22
4829 27ae 8093 0000 sts GyroFaktor,r24
4830 27b2 8091 0000 lds r24,Parameter_Gyro_I
4831 27b6 8093 0000 sts IntegralFaktor,r24
4832 27ba 8091 0000 lds r24,Parameter_Gyro_Gier_P
4833 27be 9927 clr r25
4834 27c0 AA27 clr r26
4835 27c2 97FD sbrc r25,7
4836 27c4 A095 com r26
4837 27c6 BA2F mov r27,r26
4838 27c8 BC01 movw r22,r24
4839 27ca CD01 movw r24,r26
4840 27cc 0E94 0000 call __floatsisf
4841 27d0 DC01 movw r26,r24
4842 27d2 CB01 movw r24,r22
4843 27d4 20E0 ldi r18,lo8(0x41200000)
4844 27d6 30E0 ldi r19,hi8(0x41200000)
4845 27d8 40E2 ldi r20,hlo8(0x41200000)
4846 27da 51E4 ldi r21,hhi8(0x41200000)
4847 27dc BC01 movw r22,r24
4848 27de CD01 movw r24,r26
4849 27e0 0E94 0000 call __addsf3
4850 27e4 DC01 movw r26,r24
4851 27e6 CB01 movw r24,r22
4852 27e8 BC01 movw r22,r24
4853 27ea CD01 movw r24,r26
4854 27ec 0E94 0000 call __fixunssfsi
4855 27f0 DC01 movw r26,r24
4856 27f2 CB01 movw r24,r22
4857 27f4 8093 0000 sts GyroFaktorGier,r24
4858 27f8 8091 0000 lds r24,Parameter_Gyro_Gier_I
4859 27fc 8093 0000 sts IntegralFaktorGier,r24
4860 2800 8091 0000 lds r24,ExternControl+10
4861 2804 80FF sbrs r24,0
4862 2806 59C0 rjmp .L383
4863 2808 8091 0000 lds r24,Parameter_ExternalControl
4864 280c 8138 cpi r24,lo8(-127)
4865 280e 08F4 brsh .+2
4866 2810 54C0 rjmp .L383
4867 2812 8091 0000 lds r24,ExternControl+3
4868 2816 9927 clr r25
4869 2818 87FD sbrc r24,7
4870 281a 9095 com r25
4871 281c 292D mov r18,r9
4872 281e 3327 clr r19
4873 2820 829F mul r24,r18
4874 2822 A001 movw r20,r0
4875 2824 839F mul r24,r19
4876 2826 500D add r21,r0
4877 2828 929F mul r25,r18
4878 282a 500D add r21,r0
4879 282c 1124 clr r1
4880 282e C40E add r12,r20
4881 2830 D51E adc r13,r21
4882 2832 D092 0000 sts (StickNick)+1,r13
4883 2836 C092 0000 sts StickNick,r12
4884 283a 8091 0000 lds r24,ExternControl+4
4885 283e 9927 clr r25
4886 2840 87FD sbrc r24,7
4887 2842 9095 com r25
4888 2844 829F mul r24,r18
4889 2846 B001 movw r22,r0
4890 2848 839F mul r24,r19
4891 284a 700D add r23,r0
4892 284c 929F mul r25,r18
4893 284e 700D add r23,r0
4894 2850 1124 clr r1
4895 2852 060F add r16,r22
4896 2854 171F adc r17,r23
4897 2856 1093 0000 sts (StickRoll)+1,r17
4898 285a 0093 0000 sts StickRoll,r16
4899 285e 8091 0000 lds r24,ExternControl+5
4900 2862 282F mov r18,r24
4901 2864 3327 clr r19
4902 2866 27FD sbrc r18,7
4903 2868 3095 com r19
4904 286a 8091 0000 lds r24,StickGier
4905 286e 9091 0000 lds r25,(StickGier)+1
4906 2872 820F add r24,r18
4907 2874 931F adc r25,r19
4908 2876 9093 0000 sts (StickGier)+1,r25
4909 287a 8093 0000 sts StickGier,r24
4910 287e 8091 0000 lds r24,ExternControl+7
4911 2882 282F mov r18,r24
4912 2884 3327 clr r19
4913 2886 27FD sbrc r18,7
4914 2888 3095 com r19
4915 288a 8091 0000 lds r24,EE_Parameter+18
4916 288e 9927 clr r25
4917 2890 289F mul r18,r24
4918 2892 D001 movw r26,r0
4919 2894 299F mul r18,r25
4920 2896 B00D add r27,r0
4921 2898 389F mul r19,r24
4922 289a B00D add r27,r0
4923 289c 1124 clr r1
4924 289e B093 0000 sts (ExternHoehenValue)+1,r27
4925 28a2 A093 0000 sts ExternHoehenValue,r26
4926 28a6 8091 0000 lds r24,ExternControl+6
4927 28aa 9927 clr r25
4928 28ac 8E15 cp r24,r14
4929 28ae 9F05 cpc r25,r15
4930 28b0 24F4 brge .L383
4931 28b2 9093 0000 sts (StickGas)+1,r25
4932 28b6 8093 0000 sts StickGas,r24
4933 .L383:
4934 28ba 8091 0000 lds r24,StickGas
4935 28be 9091 0000 lds r25,(StickGas)+1
4936 28c2 97FF sbrs r25,7
4937 28c4 04C0 rjmp .L385
4938 28c6 1092 0000 sts (StickGas)+1,__zero_reg__
4939 28ca 1092 0000 sts StickGas,__zero_reg__
4940 .L385:
4941 28ce 8091 0000 lds r24,EE_Parameter+13
4942 28d2 82FF sbrs r24,2
4943 28d4 02C0 rjmp .L386
4944 28d6 1092 0000 sts IntegralFaktor,__zero_reg__
4945 .L386:
4946 28da 4091 0000 lds r20,StickNick
4947 28de 5091 0000 lds r21,(StickNick)+1
4948 28e2 CA01 movw r24,r20
4949 28e4 57FD sbrc r21,7
4950 28e6 0396 adiw r24,3
4951 .L388:
4952 28e8 9C01 movw r18,r24
4953 28ea 3595 asr r19
4954 28ec 2795 ror r18
4955 28ee 3595 asr r19
4956 28f0 2795 ror r18
4957 28f2 37FF sbrs r19,7
4958 28f4 03C0 rjmp .L389
4959 28f6 3095 com r19
4960 28f8 2195 neg r18
4961 28fa 3F4F sbci r19,lo8(-1)
4962 .L389:
4963 28fc 8091 0000 lds r24,MaxStickNick
4964 2900 9091 0000 lds r25,(MaxStickNick)+1
4965 2904 8217 cp r24,r18
4966 2906 9307 cpc r25,r19
4967 2908 B4F4 brge .L387
4968 290a CA01 movw r24,r20
4969 290c 57FF sbrs r21,7
4970 290e 03C0 rjmp .L390
4971 2910 9095 com r25
4972 2912 8195 neg r24
4973 2914 9F4F sbci r25,lo8(-1)
4974 .L390:
4975 2916 97FD sbrc r25,7
4976 2918 0396 adiw r24,3
4977 .L391:
4978 291a 9595 asr r25
4979 291c 8795 ror r24
4980 291e 9595 asr r25
4981 2920 8795 ror r24
4982 2922 9093 0000 sts (MaxStickNick)+1,r25
4983 2926 8093 0000 sts MaxStickNick,r24
4984 292a 8536 cpi r24,101
4985 292c 9105 cpc r25,__zero_reg__
4986 292e 44F0 brlt .L393
4987 2930 84E6 ldi r24,lo8(100)
4988 2932 90E0 ldi r25,hi8(100)
4989 2934 01C0 rjmp .L779
4990 .L387:
4991 2936 0197 sbiw r24,1
4992 .L779:
4993 2938 9093 0000 sts (MaxStickNick)+1,r25
4994 293c 8093 0000 sts MaxStickNick,r24
4995 .L393:
4996 2940 4091 0000 lds r20,StickRoll
4997 2944 5091 0000 lds r21,(StickRoll)+1
4998 2948 CA01 movw r24,r20
4999 294a 57FD sbrc r21,7
5000 294c 0396 adiw r24,3
5001 .L395:
5002 294e 9C01 movw r18,r24
5003 2950 3595 asr r19
5004 2952 2795 ror r18
5005 2954 3595 asr r19
5006 2956 2795 ror r18
5007 2958 37FF sbrs r19,7
5008 295a 03C0 rjmp .L396
5009 295c 3095 com r19
5010 295e 2195 neg r18
5011 2960 3F4F sbci r19,lo8(-1)
5012 .L396:
5013 2962 8091 0000 lds r24,MaxStickRoll
5014 2966 9091 0000 lds r25,(MaxStickRoll)+1
5015 296a 8217 cp r24,r18
5016 296c 9307 cpc r25,r19
5017 296e B4F4 brge .L394
5018 2970 CA01 movw r24,r20
5019 2972 57FF sbrs r21,7
5020 2974 03C0 rjmp .L397
5021 2976 9095 com r25
5022 2978 8195 neg r24
5023 297a 9F4F sbci r25,lo8(-1)
5024 .L397:
5025 297c 97FD sbrc r25,7
5026 297e 0396 adiw r24,3
5027 .L398:
5028 2980 9595 asr r25
5029 2982 8795 ror r24
5030 2984 9595 asr r25
5031 2986 8795 ror r24
5032 2988 9093 0000 sts (MaxStickRoll)+1,r25
5033 298c 8093 0000 sts MaxStickRoll,r24
5034 2990 8536 cpi r24,101
5035 2992 9105 cpc r25,__zero_reg__
5036 2994 44F0 brlt .L400
5037 2996 84E6 ldi r24,lo8(100)
5038 2998 90E0 ldi r25,hi8(100)
5039 299a 01C0 rjmp .L780
5040 .L394:
5041 299c 0197 sbiw r24,1
5042 .L780:
5043 299e 9093 0000 sts (MaxStickRoll)+1,r25
5044 29a2 8093 0000 sts MaxStickRoll,r24
5045 .L400:
5046 29a6 8091 0000 lds r24,FCFlags
5047 29aa 84FF sbrs r24,4
5048 29ac 08C0 rjmp .L401
5049 29ae 1092 0000 sts (MaxStickNick)+1,__zero_reg__
5050 29b2 1092 0000 sts MaxStickNick,__zero_reg__
5051 29b6 1092 0000 sts (MaxStickRoll)+1,__zero_reg__
5052 29ba 1092 0000 sts MaxStickRoll,__zero_reg__
5053 .L401:
5054 29be EB2D mov r30,r11
5055 29c0 FF27 clr r31
5056 29c2 EE0F add r30,r30
5057 29c4 FF1F adc r31,r31
5058 29c6 E050 subi r30,lo8(-(PPM_in))
5059 29c8 F040 sbci r31,hi8(-(PPM_in))
5060 29ca 4091 0000 lds r20,EE_Parameter+58
5061 29ce 242F mov r18,r20
5062 29d0 3327 clr r19
5063 29d2 8081 ld r24,Z
5064 29d4 9181 ldd r25,Z+1
5065 29d6 2817 cp r18,r24
5066 29d8 3907 cpc r19,r25
5067 29da 44F4 brge .L402
5068 29dc 8091 0000 lds r24,EE_Parameter+97
5069 29e0 82FF sbrs r24,2
5070 29e2 04C0 rjmp .L402
5071 29e4 81E0 ldi r24,lo8(1)
5072 29e6 8093 0000 sts Looping_Links,r24
5073 29ea 13C0 rjmp .L403
5074 .L402:
5075 29ec EB2D mov r30,r11
5076 29ee FF27 clr r31
5077 29f0 EE0F add r30,r30
5078 29f2 FF1F adc r31,r31
5079 29f4 E050 subi r30,lo8(-(PPM_in))
5080 29f6 F040 sbci r31,hi8(-(PPM_in))
5081 29f8 842F mov r24,r20
5082 29fa 9927 clr r25
5083 29fc 2091 0000 lds r18,EE_Parameter+59
5084 2a00 821B sub r24,r18
5085 2a02 9109 sbc r25,__zero_reg__
5086 2a04 2081 ld r18,Z
5087 2a06 3181 ldd r19,Z+1
5088 2a08 2817 cp r18,r24
5089 2a0a 3907 cpc r19,r25
5090 2a0c 14F4 brge .L403
5091 2a0e 1092 0000 sts Looping_Links,__zero_reg__
5092 .L403:
5093 2a12 4091 0000 lds r20,EE_Parameter+2
5094 2a16 E42F mov r30,r20
5095 2a18 FF27 clr r31
5096 2a1a EE0F add r30,r30
5097 2a1c FF1F adc r31,r31
5098 2a1e E050 subi r30,lo8(-(PPM_in))
5099 2a20 F040 sbci r31,hi8(-(PPM_in))
5100 2a22 5091 0000 lds r21,EE_Parameter+58
5101 2a26 852F mov r24,r21
5102 2a28 9927 clr r25
5103 2a2a 2227 clr r18
5104 2a2c 3327 clr r19
5105 2a2e 281B sub r18,r24
5106 2a30 390B sbc r19,r25
5107 2a32 8081 ld r24,Z
5108 2a34 9181 ldd r25,Z+1
5109 2a36 8217 cp r24,r18
5110 2a38 9307 cpc r25,r19
5111 2a3a 44F4 brge .L405
5112 2a3c 8091 0000 lds r24,EE_Parameter+97
5113 2a40 83FF sbrs r24,3
5114 2a42 04C0 rjmp .L405
5115 2a44 81E0 ldi r24,lo8(1)
5116 2a46 8093 0000 sts Looping_Rechts,r24
5117 2a4a 16C0 rjmp .L406
5118 .L405:
5119 2a4c 8091 0000 lds r24,Looping_Rechts
5120 2a50 8823 tst r24
5121 2a52 91F0 breq .L406
5122 2a54 E42F mov r30,r20
5123 2a56 FF27 clr r31
5124 2a58 EE0F add r30,r30
5125 2a5a FF1F adc r31,r31
5126 2a5c E050 subi r30,lo8(-(PPM_in))
5127 2a5e F040 sbci r31,hi8(-(PPM_in))
5128 2a60 8091 0000 lds r24,EE_Parameter+59
5129 2a64 9927 clr r25
5130 2a66 851B sub r24,r21
5131 2a68 9109 sbc r25,__zero_reg__
5132 2a6a 2081 ld r18,Z
5133 2a6c 3181 ldd r19,Z+1
5134 2a6e 8217 cp r24,r18
5135 2a70 9307 cpc r25,r19
5136 2a72 14F4 brge .L406
5137 2a74 1092 0000 sts Looping_Rechts,__zero_reg__
5138 .L406:
5139 2a78 EA2D mov r30,r10
5140 2a7a FF27 clr r31
5141 2a7c EE0F add r30,r30
5142 2a7e FF1F adc r31,r31
5143 2a80 E050 subi r30,lo8(-(PPM_in))
5144 2a82 F040 sbci r31,hi8(-(PPM_in))
5145 2a84 4091 0000 lds r20,EE_Parameter+58
5146 2a88 242F mov r18,r20
5147 2a8a 3327 clr r19
5148 2a8c 8081 ld r24,Z
5149 2a8e 9181 ldd r25,Z+1
5150 2a90 2817 cp r18,r24
5151 2a92 3907 cpc r19,r25
5152 2a94 44F4 brge .L409
5153 2a96 8091 0000 lds r24,EE_Parameter+97
5154 2a9a 80FF sbrs r24,0
5155 2a9c 04C0 rjmp .L409
5156 2a9e 81E0 ldi r24,lo8(1)
5157 2aa0 8093 0000 sts Looping_Oben,r24
5158 2aa4 17C0 rjmp .L410
5159 .L409:
5160 2aa6 8091 0000 lds r24,Looping_Oben
5161 2aaa 8823 tst r24
5162 2aac 99F0 breq .L410
5163 2aae EA2D mov r30,r10
5164 2ab0 FF27 clr r31
5165 2ab2 EE0F add r30,r30
5166 2ab4 FF1F adc r31,r31
5167 2ab6 E050 subi r30,lo8(-(PPM_in))
5168 2ab8 F040 sbci r31,hi8(-(PPM_in))
5169 2aba 842F mov r24,r20
5170 2abc 9927 clr r25
5171 2abe 2091 0000 lds r18,EE_Parameter+59
5172 2ac2 821B sub r24,r18
5173 2ac4 9109 sbc r25,__zero_reg__
5174 2ac6 2081 ld r18,Z
5175 2ac8 3181 ldd r19,Z+1
5176 2aca 2817 cp r18,r24
5177 2acc 3907 cpc r19,r25
5178 2ace 14F4 brge .L410
5179 2ad0 1092 0000 sts Looping_Oben,__zero_reg__
5180 .L410:
5181 2ad4 4091 0000 lds r20,EE_Parameter+1
5182 2ad8 E42F mov r30,r20
5183 2ada FF27 clr r31
5184 2adc EE0F add r30,r30
5185 2ade FF1F adc r31,r31
5186 2ae0 E050 subi r30,lo8(-(PPM_in))
5187 2ae2 F040 sbci r31,hi8(-(PPM_in))
5188 2ae4 5091 0000 lds r21,EE_Parameter+58
5189 2ae8 852F mov r24,r21
5190 2aea 9927 clr r25
5191 2aec 2227 clr r18
5192 2aee 3327 clr r19
5193 2af0 281B sub r18,r24
5194 2af2 390B sbc r19,r25
5195 2af4 8081 ld r24,Z
5196 2af6 9181 ldd r25,Z+1
5197 2af8 8217 cp r24,r18
5198 2afa 9307 cpc r25,r19
5199 2afc 44F4 brge .L413
5200 2afe 8091 0000 lds r24,EE_Parameter+97
5201 2b02 81FF sbrs r24,1
5202 2b04 04C0 rjmp .L413
5203 2b06 81E0 ldi r24,lo8(1)
5204 2b08 8093 0000 sts Looping_Unten,r24
5205 2b0c 16C0 rjmp .L414
5206 .L413:
5207 2b0e 8091 0000 lds r24,Looping_Unten
5208 2b12 8823 tst r24
5209 2b14 91F0 breq .L414
5210 2b16 E42F mov r30,r20
5211 2b18 FF27 clr r31
5212 2b1a EE0F add r30,r30
5213 2b1c FF1F adc r31,r31
5214 2b1e E050 subi r30,lo8(-(PPM_in))
5215 2b20 F040 sbci r31,hi8(-(PPM_in))
5216 2b22 8091 0000 lds r24,EE_Parameter+59
5217 2b26 9927 clr r25
5218 2b28 851B sub r24,r21
5219 2b2a 9109 sbc r25,__zero_reg__
5220 2b2c 2081 ld r18,Z
5221 2b2e 3181 ldd r19,Z+1
5222 2b30 8217 cp r24,r18
5223 2b32 9307 cpc r25,r19
5224 2b34 14F4 brge .L414
5225 2b36 1092 0000 sts Looping_Unten,__zero_reg__
5226 .L414:
5227 2b3a 8091 0000 lds r24,Looping_Links
5228 2b3e 8823 tst r24
5229 2b40 19F4 brne .L418
5230 2b42 8091 0000 lds r24,Looping_Rechts
5231 2b46 8111 cpse r24,__zero_reg__
5232 .L418:
5233 2b48 81E0 ldi r24,lo8(1)
5234 .L417:
5235 2b4a 8093 0000 sts Looping_Roll,r24
5236 2b4e 8091 0000 lds r24,Looping_Oben
5237 2b52 8823 tst r24
5238 2b54 21F4 brne .L421
5239 2b56 8091 0000 lds r24,Looping_Unten
5240 2b5a 8823 tst r24
5241 2b5c 51F0 breq .L420
5242 .L421:
5243 2b5e 81E0 ldi r24,lo8(1)
5244 2b60 8093 0000 sts Looping_Nick,r24
5245 2b64 1092 0000 sts Looping_Roll,__zero_reg__
5246 2b68 1092 0000 sts Looping_Links,__zero_reg__
5247 2b6c 1092 0000 sts Looping_Rechts,__zero_reg__
5248 2b70 02C0 rjmp .L367
5249 .L420:
5250 2b72 8093 0000 sts Looping_Nick,r24
5251 .L367:
5252 2b76 8091 0000 lds r24,Looping_Roll
5253 2b7a 8823 tst r24
5254 2b7c 21F4 brne .L424
5255 2b7e 8091 0000 lds r24,Looping_Nick
5256 2b82 8823 tst r24
5257 2b84 69F0 breq .L423
5258 .L424:
5259 2b86 8091 0000 lds r24,EE_Parameter+57
5260 2b8a 9927 clr r25
5261 2b8c E8A1 ldd r30,Y+32
5262 2b8e F9A1 ldd r31,Y+33
5263 2b90 8E17 cp r24,r30
5264 2b92 9F07 cpc r25,r31
5265 2b94 14F4 brge .L425
5266 2b96 99A3 std Y+33,r25
5267 2b98 88A3 std Y+32,r24
5268 .L425:
5269 2b9a 81E0 ldi r24,lo8(1)
5270 2b9c 8093 0000 sts TrichterFlug,r24
5271 .L423:
5272 2ba0 8091 0000 lds r24,FCFlags
5273 2ba4 84FF sbrs r24,4
5274 2ba6 1AC0 rjmp .L426
5275 2ba8 1092 0000 sts (StickGier)+1,__zero_reg__
5276 2bac 1092 0000 sts StickGier,__zero_reg__
5277 2bb0 1092 0000 sts (StickNick)+1,__zero_reg__
5278 2bb4 1092 0000 sts StickNick,__zero_reg__
5279 2bb8 1092 0000 sts (StickRoll)+1,__zero_reg__
5280 2bbc 1092 0000 sts StickRoll,__zero_reg__
5281 2bc0 9AE5 ldi r25,lo8(90)
5282 2bc2 9093 0000 sts GyroFaktor,r25
5283 2bc6 88E7 ldi r24,lo8(120)
5284 2bc8 8093 0000 sts IntegralFaktor,r24
5285 2bcc 9093 0000 sts GyroFaktorGier,r25
5286 2bd0 8093 0000 sts IntegralFaktorGier,r24
5287 2bd4 1092 0000 sts Looping_Roll,__zero_reg__
5288 2bd8 1092 0000 sts Looping_Nick,__zero_reg__
5289 .L426:
5290 2bdc 8091 0000 lds r24,MittelIntegralNick
5291 2be0 9091 0000 lds r25,(MittelIntegralNick)+1
5292 2be4 A091 0000 lds r26,(MittelIntegralNick)+2
5293 2be8 B091 0000 lds r27,(MittelIntegralNick)+3
5294 2bec 2091 0000 lds r18,IntegralNick
5295 2bf0 3091 0000 lds r19,(IntegralNick)+1
5296 2bf4 4091 0000 lds r20,(IntegralNick)+2
5297 2bf8 5091 0000 lds r21,(IntegralNick)+3
5298 2bfc 820F add r24,r18
5299 2bfe 931F adc r25,r19
5300 2c00 A41F adc r26,r20
5301 2c02 B51F adc r27,r21
5302 2c04 8093 0000 sts MittelIntegralNick,r24
5303 2c08 9093 0000 sts (MittelIntegralNick)+1,r25
5304 2c0c A093 0000 sts (MittelIntegralNick)+2,r26
5305 2c10 B093 0000 sts (MittelIntegralNick)+3,r27
5306 2c14 8091 0000 lds r24,MittelIntegralRoll
5307 2c18 9091 0000 lds r25,(MittelIntegralRoll)+1
5308 2c1c A091 0000 lds r26,(MittelIntegralRoll)+2
5309 2c20 B091 0000 lds r27,(MittelIntegralRoll)+3
5310 2c24 2090 0000 lds r2,IntegralRoll
5311 2c28 3090 0000 lds r3,(IntegralRoll)+1
5312 2c2c 4090 0000 lds r4,(IntegralRoll)+2
5313 2c30 5090 0000 lds r5,(IntegralRoll)+3
5314 2c34 820D add r24,r2
5315 2c36 931D adc r25,r3
5316 2c38 A41D adc r26,r4
5317 2c3a B51D adc r27,r5
5318 2c3c 8093 0000 sts MittelIntegralRoll,r24
5319 2c40 9093 0000 sts (MittelIntegralRoll)+1,r25
5320 2c44 A093 0000 sts (MittelIntegralRoll)+2,r26
5321 2c48 B093 0000 sts (MittelIntegralRoll)+3,r27
5322 2c4c 8091 0000 lds r24,MittelIntegralNick2
5323 2c50 9091 0000 lds r25,(MittelIntegralNick2)+1
5324 2c54 A091 0000 lds r26,(MittelIntegralNick2)+2
5325 2c58 B091 0000 lds r27,(MittelIntegralNick2)+3
5326 2c5c E090 0000 lds r14,IntegralNick2
5327 2c60 F090 0000 lds r15,(IntegralNick2)+1
5328 2c64 0091 0000 lds r16,(IntegralNick2)+2
5329 2c68 1091 0000 lds r17,(IntegralNick2)+3
5330 2c6c EAA2 std Y+34,r14
5331 2c6e FBA2 std Y+35,r15
5332 2c70 0CA3 std Y+36,r16
5333 2c72 1DA3 std Y+37,r17
5334 2c74 8E0D add r24,r14
5335 2c76 9F1D adc r25,r15
5336 2c78 A01F adc r26,r16
5337 2c7a B11F adc r27,r17
5338 2c7c 8093 0000 sts MittelIntegralNick2,r24
5339 2c80 9093 0000 sts (MittelIntegralNick2)+1,r25
5340 2c84 A093 0000 sts (MittelIntegralNick2)+2,r26
5341 2c88 B093 0000 sts (MittelIntegralNick2)+3,r27
5342 2c8c 8091 0000 lds r24,MittelIntegralRoll2
5343 2c90 9091 0000 lds r25,(MittelIntegralRoll2)+1
5344 2c94 A091 0000 lds r26,(MittelIntegralRoll2)+2
5345 2c98 B091 0000 lds r27,(MittelIntegralRoll2)+3
5346 2c9c E090 0000 lds r14,IntegralRoll2
5347 2ca0 F090 0000 lds r15,(IntegralRoll2)+1
5348 2ca4 0091 0000 lds r16,(IntegralRoll2)+2
5349 2ca8 1091 0000 lds r17,(IntegralRoll2)+3
5350 2cac EEA2 std Y+38,r14
5351 2cae FFA2 std Y+39,r15
5352 2cb0 08A7 std Y+40,r16
5353 2cb2 19A7 std Y+41,r17
5354 2cb4 8E0D add r24,r14
5355 2cb6 9F1D adc r25,r15
5356 2cb8 A01F adc r26,r16
5357 2cba B11F adc r27,r17
5358 2cbc 8093 0000 sts MittelIntegralRoll2,r24
5359 2cc0 9093 0000 sts (MittelIntegralRoll2)+1,r25
5360 2cc4 A093 0000 sts (MittelIntegralRoll2)+2,r26
5361 2cc8 B093 0000 sts (MittelIntegralRoll2)+3,r27
5362 2ccc F090 0000 lds r15,Looping_Nick
5363 2cd0 FAA6 std Y+42,r15
5364 2cd2 FF20 tst r15
5365 2cd4 29F4 brne .L428
5366 2cd6 8091 0000 lds r24,Looping_Roll
5367 2cda 8823 tst r24
5368 2cdc 09F4 brne .+2
5369 2cde 60C0 rjmp .L775
5370 .L428:
5371 2ce0 1092 0000 sts IntegralAccNick,__zero_reg__
5372 2ce4 1092 0000 sts (IntegralAccNick)+1,__zero_reg__
5373 2ce8 1092 0000 sts (IntegralAccNick)+2,__zero_reg__
5374 2cec 1092 0000 sts (IntegralAccNick)+3,__zero_reg__
5375 2cf0 1092 0000 sts IntegralAccRoll,__zero_reg__
5376 2cf4 1092 0000 sts (IntegralAccRoll)+1,__zero_reg__
5377 2cf8 1092 0000 sts (IntegralAccRoll)+2,__zero_reg__
5378 2cfc 1092 0000 sts (IntegralAccRoll)+3,__zero_reg__
5379 2d00 1092 0000 sts MittelIntegralNick,__zero_reg__
5380 2d04 1092 0000 sts (MittelIntegralNick)+1,__zero_reg__
5381 2d08 1092 0000 sts (MittelIntegralNick)+2,__zero_reg__
5382 2d0c 1092 0000 sts (MittelIntegralNick)+3,__zero_reg__
5383 2d10 1092 0000 sts MittelIntegralRoll,__zero_reg__
5384 2d14 1092 0000 sts (MittelIntegralRoll)+1,__zero_reg__
5385 2d18 1092 0000 sts (MittelIntegralRoll)+2,__zero_reg__
5386 2d1c 1092 0000 sts (MittelIntegralRoll)+3,__zero_reg__
5387 2d20 1092 0000 sts MittelIntegralNick2,__zero_reg__
5388 2d24 1092 0000 sts (MittelIntegralNick2)+1,__zero_reg__
5389 2d28 1092 0000 sts (MittelIntegralNick2)+2,__zero_reg__
5390 2d2c 1092 0000 sts (MittelIntegralNick2)+3,__zero_reg__
5391 2d30 1092 0000 sts MittelIntegralRoll2,__zero_reg__
5392 2d34 1092 0000 sts (MittelIntegralRoll2)+1,__zero_reg__
5393 2d38 1092 0000 sts (MittelIntegralRoll2)+2,__zero_reg__
5394 2d3c 1092 0000 sts (MittelIntegralRoll2)+3,__zero_reg__
5395 2d40 8091 0000 lds r24,Mess_IntegralNick
5396 2d44 9091 0000 lds r25,(Mess_IntegralNick)+1
5397 2d48 A091 0000 lds r26,(Mess_IntegralNick)+2
5398 2d4c B091 0000 lds r27,(Mess_IntegralNick)+3
5399 2d50 8093 0000 sts Mess_IntegralNick2,r24
5400 2d54 9093 0000 sts (Mess_IntegralNick2)+1,r25
5401 2d58 A093 0000 sts (Mess_IntegralNick2)+2,r26
5402 2d5c B093 0000 sts (Mess_IntegralNick2)+3,r27
5403 2d60 8091 0000 lds r24,Mess_IntegralRoll
5404 2d64 9091 0000 lds r25,(Mess_IntegralRoll)+1
5405 2d68 A091 0000 lds r26,(Mess_IntegralRoll)+2
5406 2d6c B091 0000 lds r27,(Mess_IntegralRoll)+3
5407 2d70 8093 0000 sts Mess_IntegralRoll2,r24
5408 2d74 9093 0000 sts (Mess_IntegralRoll2)+1,r25
5409 2d78 A093 0000 sts (Mess_IntegralRoll2)+2,r26
5410 2d7c B093 0000 sts (Mess_IntegralRoll2)+3,r27
5411 2d80 1092 0000 sts (ZaehlMessungen)+1,__zero_reg__
5412 2d84 1092 0000 sts ZaehlMessungen,__zero_reg__
5413 2d88 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__
5414 2d8c 1092 0000 sts LageKorrekturNick,__zero_reg__
5415 2d90 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__
5416 2d94 1092 0000 sts LageKorrekturRoll,__zero_reg__
5417 2d98 0AA5 ldd r16,Y+42
5418 2d9a 0023 tst r16
5419 2d9c 09F0 breq .+2
5420 2d9e F2C1 rjmp .L429
5421 .L775:
5422 2da0 8091 0000 lds r24,Looping_Roll
5423 2da4 8823 tst r24
5424 2da6 09F0 breq .+2
5425 2da8 EDC1 rjmp .L429
5426 2daa 8091 0000 lds r24,Aktuell_az
5427 2dae 9091 0000 lds r25,(Aktuell_az)+1
5428 2db2 8150 subi r24,lo8(513)
5429 2db4 9240 sbci r25,hi8(513)
5430 2db6 2CF4 brge .L430
5431 2db8 8091 0000 lds r24,MotorenEin
5432 2dbc 8823 tst r24
5433 2dbe 09F4 brne .+2
5434 2dc0 E1C1 rjmp .L429
5435 .L430:
5436 2dc2 9090 0000 lds r9,FromNaviCtrl_Value
5437 2dc6 A090 0000 lds r10,EE_Parameter+28
5438 2dca 6091 0000 lds r22,Mittelwert_AccNick
5439 2dce 7091 0000 lds r23,(Mittelwert_AccNick)+1
5440 2dd2 7BAB std Y+51,r23
5441 2dd4 6AAB std Y+50,r22
5442 2dd6 8091 0000 lds r24,Mittelwert_AccRoll
5443 2dda 9091 0000 lds r25,(Mittelwert_AccRoll)+1
5444 2dde 9DAB std Y+53,r25
5445 2de0 8CAB std Y+52,r24
5446 2de2 9FEF ldi r25,lo8(-1)
5447 2de4 9916 cp r9,r25
5448 2de6 09F4 brne .+2
5449 2de8 D9C0 rjmp .L431
5450 2dea BB24 clr r11
5451 2dec CC24 clr r12
5452 2dee DD24 clr r13
5453 2df0 CA01 movw r24,r20
5454 2df2 B901 movw r22,r18
5455 2df4 A601 movw r20,r12
5456 2df6 9501 movw r18,r10
5457 2df8 0E94 0000 call __divmodsi4
5458 2dfc 7901 movw r14,r18
5459 2dfe 8A01 movw r16,r20
5460 2e00 EAA9 ldd r30,Y+50
5461 2e02 FBA9 ldd r31,Y+51
5462 2e04 CF01 movw r24,r30
5463 2e06 AA27 clr r26
5464 2e08 97FD sbrc r25,7
5465 2e0a A095 com r26
5466 2e0c BA2F mov r27,r26
5467 2e0e E81A sub r14,r24
5468 2e10 F90A sbc r15,r25
5469 2e12 0A0B sbc r16,r26
5470 2e14 1B0B sbc r17,r27
5471 2e16 C201 movw r24,r4
5472 2e18 B101 movw r22,r2
5473 2e1a A601 movw r20,r12
5474 2e1c 9501 movw r18,r10
5475 2e1e 0E94 0000 call __divmodsi4
5476 2e22 5901 movw r10,r18
5477 2e24 6A01 movw r12,r20
5478 2e26 2CA9 ldd r18,Y+52
5479 2e28 3DA9 ldd r19,Y+53
5480 2e2a C901 movw r24,r18
5481 2e2c AA27 clr r26
5482 2e2e 97FD sbrc r25,7
5483 2e30 A095 com r26
5484 2e32 BA2F mov r27,r26
5485 2e34 A81A sub r10,r24
5486 2e36 B90A sbc r11,r25
5487 2e38 CA0A sbc r12,r26
5488 2e3a DB0A sbc r13,r27
5489 2e3c 292C mov r2,r9
5490 2e3e 3324 clr r3
5491 2e40 27FC sbrc r2,7
5492 2e42 3094 com r3
5493 2e44 432C mov r4,r3
5494 2e46 532C mov r5,r3
5495 2e48 C801 movw r24,r16
5496 2e4a B701 movw r22,r14
5497 2e4c A201 movw r20,r4
5498 2e4e 9101 movw r18,r2
5499 2e50 0E94 0000 call __mulsi3
5500 2e54 97FF sbrs r25,7
5501 2e56 04C0 rjmp .L432
5502 2e58 6150 subi r22,lo8(-(511))
5503 2e5a 7E4F sbci r23,hi8(-(511))
5504 2e5c 8F4F sbci r24,hlo8(-(511))
5505 2e5e 9F4F sbci r25,hhi8(-(511))
5506 .L432:
5507 2e60 3B01 movw r6,r22
5508 2e62 4C01 movw r8,r24
5509 2e64 09E0 ldi r16,9
5510 2e66 9594 1: asr r9
5511 2e68 8794 ror r8
5512 2e6a 7794 ror r7
5513 2e6c 6794 ror r6
5514 2e6e 0A95 dec r16
5515 2e70 D1F7 brne 1b
5516 2e72 C601 movw r24,r12
5517 2e74 B501 movw r22,r10
5518 2e76 A201 movw r20,r4
5519 2e78 9101 movw r18,r2
5520 2e7a 0E94 0000 call __mulsi3
5521 2e7e 97FF sbrs r25,7
5522 2e80 04C0 rjmp .L433
5523 2e82 6150 subi r22,lo8(-(511))
5524 2e84 7E4F sbci r23,hi8(-(511))
5525 2e86 8F4F sbci r24,hlo8(-(511))
5526 2e88 9F4F sbci r25,hhi8(-(511))
5527 .L433:
5528 2e8a 5B01 movw r10,r22
5529 2e8c 6C01 movw r12,r24
5530 2e8e 19E0 ldi r17,9
5531 2e90 D594 1: asr r13
5532 2e92 C794 ror r12
5533 2e94 B794 ror r11
5534 2e96 A794 ror r10
5535 2e98 1A95 dec r17
5536 2e9a D1F7 brne 1b
5537 2e9c 8091 0000 lds r24,MaxStickNick
5538 2ea0 9091 0000 lds r25,(MaxStickNick)+1
5539 2ea4 8134 cpi r24,65
5540 2ea6 9105 cpc r25,__zero_reg__
5541 2ea8 3CF4 brge .L435
5542 2eaa 8091 0000 lds r24,MaxStickRoll
5543 2eae 9091 0000 lds r25,(MaxStickRoll)+1
5544 2eb2 8134 cpi r24,65
5545 2eb4 9105 cpc r25,__zero_reg__
5546 2eb6 D4F0 brlt .L434
5547 .L435:
5548 2eb8 D401 movw r26,r8
5549 2eba C301 movw r24,r6
5550 2ebc 97FE sbrs r9,7
5551 2ebe 03C0 rjmp .L436
5552 2ec0 0196 adiw r24,1
5553 2ec2 A11D adc r26,__zero_reg__
5554 2ec4 B11D adc r27,__zero_reg__
5555 .L436:
5556 2ec6 3C01 movw r6,r24
5557 2ec8 4D01 movw r8,r26
5558 2eca 9594 asr r9
5559 2ecc 8794 ror r8
5560 2ece 7794 ror r7
5561 2ed0 6794 ror r6
5562 2ed2 D601 movw r26,r12
5563 2ed4 C501 movw r24,r10
5564 2ed6 D7FE sbrs r13,7
5565 2ed8 03C0 rjmp .L437
5566 2eda 0196 adiw r24,1
5567 2edc A11D adc r26,__zero_reg__
5568 2ede B11D adc r27,__zero_reg__
5569 .L437:
5570 2ee0 5C01 movw r10,r24
5571 2ee2 6D01 movw r12,r26
5572 2ee4 D594 asr r13
5573 2ee6 C794 ror r12
5574 2ee8 B794 ror r11
5575 2eea A794 ror r10
5576 .L434:
5577 2eec 8091 0000 lds r24,EE_Parameter+4
5578 2ef0 E82F mov r30,r24
5579 2ef2 FF27 clr r31
5580 2ef4 EE0F add r30,r30
5581 2ef6 FF1F adc r31,r31
5582 2ef8 E050 subi r30,lo8(-(PPM_in))
5583 2efa F040 sbci r31,hi8(-(PPM_in))
5584 2efc 8081 ld r24,Z
5585 2efe 9181 ldd r25,Z+1
5586 2f00 0190 ld __tmp_reg__,Z+
5587 2f02 F081 ld r31,Z
5588 2f04 E02D mov r30,__tmp_reg__
5589 2f06 F7FF sbrs r31,7
5590 2f08 03C0 rjmp .L439
5591 2f0a F095 com r31
5592 2f0c E195 neg r30
5593 2f0e FF4F sbci r31,lo8(-1)
5594 .L439:
5595 2f10 7A97 sbiw r30,26
5596 2f12 A4F0 brlt .L438
5597 2f14 C401 movw r24,r8
5598 2f16 B301 movw r22,r6
5599 2f18 23E0 ldi r18,lo8(3)
5600 2f1a 30E0 ldi r19,hi8(3)
5601 2f1c 40E0 ldi r20,hlo8(3)
5602 2f1e 50E0 ldi r21,hhi8(3)
5603 2f20 0E94 0000 call __divmodsi4
5604 2f24 3901 movw r6,r18
5605 2f26 4A01 movw r8,r20
5606 2f28 C601 movw r24,r12
5607 2f2a B501 movw r22,r10
5608 2f2c 23E0 ldi r18,lo8(3)
5609 2f2e 30E0 ldi r19,hi8(3)
5610 2f30 40E0 ldi r20,hlo8(3)
5611 2f32 50E0 ldi r21,hhi8(3)
5612 2f34 0E94 0000 call __divmodsi4
5613 2f38 5901 movw r10,r18
5614 2f3a 6A01 movw r12,r20
5615 .L438:
5616 2f3c 8091 0000 lds r24,FromNaviCtrl_Value+2
5617 2f40 282F mov r18,r24
5618 2f42 3327 clr r19
5619 2f44 27FD sbrc r18,7
5620 2f46 3095 com r19
5621 2f48 432F mov r20,r19
5622 2f4a 532F mov r21,r19
5623 2f4c 2615 cp r18,r6
5624 2f4e 3705 cpc r19,r7
5625 2f50 4805 cpc r20,r8
5626 2f52 5905 cpc r21,r9
5627 2f54 14F4 brge .L440
5628 2f56 3901 movw r6,r18
5629 2f58 4A01 movw r8,r20
5630 .L440:
5631 2f5a 9927 clr r25
5632 2f5c 87FD sbrc r24,7
5633 2f5e 9095 com r25
5634 2f60 9095 com r25
5635 2f62 8195 neg r24
5636 2f64 9F4F sbci r25,lo8(-1)
5637 2f66 AA27 clr r26
5638 2f68 97FD sbrc r25,7
5639 2f6a A095 com r26
5640 2f6c BA2F mov r27,r26
5641 2f6e 6816 cp r6,r24
5642 2f70 7906 cpc r7,r25
5643 2f72 8A06 cpc r8,r26
5644 2f74 9B06 cpc r9,r27
5645 2f76 14F4 brge .L441
5646 2f78 3C01 movw r6,r24
5647 2f7a 4D01 movw r8,r26
5648 .L441:
5649 2f7c 2A15 cp r18,r10
5650 2f7e 3B05 cpc r19,r11
5651 2f80 4C05 cpc r20,r12
5652 2f82 5D05 cpc r21,r13
5653 2f84 14F4 brge .L442
5654 2f86 5901 movw r10,r18
5655 2f88 6A01 movw r12,r20
5656 .L442:
5657 2f8a A816 cp r10,r24
5658 2f8c B906 cpc r11,r25
5659 2f8e CA06 cpc r12,r26
5660 2f90 DB06 cpc r13,r27
5661 2f92 0CF0 brlt .+2
5662 2f94 CFC0 rjmp .L444
5663 2f96 5C01 movw r10,r24
5664 2f98 6D01 movw r12,r26
5665 2f9a CCC0 rjmp .L444
5666 .L431:
5667 2f9c EA2C mov r14,r10
5668 2f9e FF24 clr r15
5669 2fa0 0027 clr r16
5670 2fa2 1127 clr r17
5671 2fa4 CA01 movw r24,r20
5672 2fa6 B901 movw r22,r18
5673 2fa8 A801 movw r20,r16
5674 2faa 9701 movw r18,r14
5675 2fac 0E94 0000 call __divmodsi4
5676 2fb0 3901 movw r6,r18
5677 2fb2 4A01 movw r8,r20
5678 2fb4 4AA9 ldd r20,Y+50
5679 2fb6 5BA9 ldd r21,Y+51
5680 2fb8 CA01 movw r24,r20
5681 2fba AA27 clr r26
5682 2fbc 97FD sbrc r25,7
5683 2fbe A095 com r26
5684 2fc0 BA2F mov r27,r26
5685 2fc2 681A sub r6,r24
5686 2fc4 790A sbc r7,r25
5687 2fc6 8A0A sbc r8,r26
5688 2fc8 9B0A sbc r9,r27
5689 2fca C201 movw r24,r4
5690 2fcc B101 movw r22,r2
5691 2fce A801 movw r20,r16
5692 2fd0 9701 movw r18,r14
5693 2fd2 0E94 0000 call __divmodsi4
5694 2fd6 5901 movw r10,r18
5695 2fd8 6A01 movw r12,r20
5696 2fda 6CA9 ldd r22,Y+52
5697 2fdc 7DA9 ldd r23,Y+53
5698 2fde CB01 movw r24,r22
5699 2fe0 AA27 clr r26
5700 2fe2 97FD sbrc r25,7
5701 2fe4 A095 com r26
5702 2fe6 BA2F mov r27,r26
5703 2fe8 A81A sub r10,r24
5704 2fea B90A sbc r11,r25
5705 2fec CA0A sbc r12,r26
5706 2fee DB0A sbc r13,r27
5707 2ff0 D401 movw r26,r8
5708 2ff2 C301 movw r24,r6
5709 2ff4 97FE sbrs r9,7
5710 2ff6 03C0 rjmp .L445
5711 2ff8 0F96 adiw r24,15
5712 2ffa A11D adc r26,__zero_reg__
5713 2ffc B11D adc r27,__zero_reg__
5714 .L445:
5715 2ffe 3C01 movw r6,r24
5716 3000 4D01 movw r8,r26
5717 3002 F4E0 ldi r31,4
5718 3004 9594 1: asr r9
5719 3006 8794 ror r8
5720 3008 7794 ror r7
5721 300a 6794 ror r6
5722 300c FA95 dec r31
5723 300e D1F7 brne 1b
5724 3010 D601 movw r26,r12
5725 3012 C501 movw r24,r10
5726 3014 D7FE sbrs r13,7
5727 3016 03C0 rjmp .L446
5728 3018 0F96 adiw r24,15
5729 301a A11D adc r26,__zero_reg__
5730 301c B11D adc r27,__zero_reg__
5731 .L446:
5732 301e 5C01 movw r10,r24
5733 3020 6D01 movw r12,r26
5734 3022 E4E0 ldi r30,4
5735 3024 D594 1: asr r13
5736 3026 C794 ror r12
5737 3028 B794 ror r11
5738 302a A794 ror r10
5739 302c EA95 dec r30
5740 302e D1F7 brne 1b
5741 3030 8091 0000 lds r24,MaxStickNick
5742 3034 9091 0000 lds r25,(MaxStickNick)+1
5743 3038 8134 cpi r24,65
5744 303a 9105 cpc r25,__zero_reg__
5745 303c 3CF4 brge .L448
5746 303e 8091 0000 lds r24,MaxStickRoll
5747 3042 9091 0000 lds r25,(MaxStickRoll)+1
5748 3046 8134 cpi r24,65
5749 3048 9105 cpc r25,__zero_reg__
5750 304a A4F0 brlt .L447
5751 .L448:
5752 304c C401 movw r24,r8
5753 304e B301 movw r22,r6
5754 3050 23E0 ldi r18,lo8(3)
5755 3052 30E0 ldi r19,hi8(3)
5756 3054 40E0 ldi r20,hlo8(3)
5757 3056 50E0 ldi r21,hhi8(3)
5758 3058 0E94 0000 call __divmodsi4
5759 305c 3901 movw r6,r18
5760 305e 4A01 movw r8,r20
5761 3060 C601 movw r24,r12
5762 3062 B501 movw r22,r10
5763 3064 23E0 ldi r18,lo8(3)
5764 3066 30E0 ldi r19,hi8(3)
5765 3068 40E0 ldi r20,hlo8(3)
5766 306a 50E0 ldi r21,hhi8(3)
5767 306c 0E94 0000 call __divmodsi4
5768 3070 5901 movw r10,r18
5769 3072 6A01 movw r12,r20
5770 .L447:
5771 3074 8091 0000 lds r24,EE_Parameter+4
5772 3078 E82F mov r30,r24
5773 307a FF27 clr r31
5774 307c EE0F add r30,r30
5775 307e FF1F adc r31,r31
5776 3080 E050 subi r30,lo8(-(PPM_in))
5777 3082 F040 sbci r31,hi8(-(PPM_in))
5778 3084 8081 ld r24,Z
5779 3086 9181 ldd r25,Z+1
5780 3088 0190 ld __tmp_reg__,Z+
5781 308a F081 ld r31,Z
5782 308c E02D mov r30,__tmp_reg__
5783 308e F7FF sbrs r31,7
5784 3090 03C0 rjmp .L450
5785 3092 F095 com r31
5786 3094 E195 neg r30
5787 3096 FF4F sbci r31,lo8(-1)
5788 .L450:
5789 3098 7A97 sbiw r30,26
5790 309a A4F0 brlt .L449
5791 309c C401 movw r24,r8
5792 309e B301 movw r22,r6
5793 30a0 23E0 ldi r18,lo8(3)
5794 30a2 30E0 ldi r19,hi8(3)
5795 30a4 40E0 ldi r20,hlo8(3)
5796 30a6 50E0 ldi r21,hhi8(3)
5797 30a8 0E94 0000 call __divmodsi4
5798 30ac 3901 movw r6,r18
5799 30ae 4A01 movw r8,r20
5800 30b0 C601 movw r24,r12
5801 30b2 B501 movw r22,r10
5802 30b4 23E0 ldi r18,lo8(3)
5803 30b6 30E0 ldi r19,hi8(3)
5804 30b8 40E0 ldi r20,hlo8(3)
5805 30ba 50E0 ldi r21,hhi8(3)
5806 30bc 0E94 0000 call __divmodsi4
5807 30c0 5901 movw r10,r18
5808 30c2 6A01 movw r12,r20
5809 .L449:
5810 30c4 71E2 ldi r23,lo8(33)
5811 30c6 6716 cp r6,r23
5812 30c8 7104 cpc r7,__zero_reg__
5813 30ca 8104 cpc r8,__zero_reg__
5814 30cc 9104 cpc r9,__zero_reg__
5815 30ce 2CF0 brlt .L451
5816 30d0 70E2 ldi r23,lo8(32)
5817 30d2 672E mov r6,r23
5818 30d4 712C mov r7,__zero_reg__
5819 30d6 812C mov r8,__zero_reg__
5820 30d8 912C mov r9,__zero_reg__
5821 .L451:
5822 30da 80EE ldi r24,lo8(-32)
5823 30dc 6816 cp r6,r24
5824 30de 8FEF ldi r24,hi8(-32)
5825 30e0 7806 cpc r7,r24
5826 30e2 8FEF ldi r24,hlo8(-32)
5827 30e4 8806 cpc r8,r24
5828 30e6 8FEF ldi r24,hhi8(-32)
5829 30e8 9806 cpc r9,r24
5830 30ea 44F4 brge .L452
5831 30ec 60EE ldi r22,lo8(-32)
5832 30ee 662E mov r6,r22
5833 30f0 6FEF ldi r22,hi8(-32)
5834 30f2 762E mov r7,r22
5835 30f4 6FEF ldi r22,hlo8(-32)
5836 30f6 862E mov r8,r22
5837 30f8 6FEF ldi r22,hhi8(-32)
5838 30fa 962E mov r9,r22
5839 .L452:
5840 30fc 91E2 ldi r25,lo8(33)
5841 30fe A916 cp r10,r25
5842 3100 B104 cpc r11,__zero_reg__
5843 3102 C104 cpc r12,__zero_reg__
5844 3104 D104 cpc r13,__zero_reg__
5845 3106 2CF0 brlt .L453
5846 3108 50E2 ldi r21,lo8(32)
5847 310a A52E mov r10,r21
5848 310c B12C mov r11,__zero_reg__
5849 310e C12C mov r12,__zero_reg__
5850 3110 D12C mov r13,__zero_reg__
5851 .L453:
5852 3112 A0EE ldi r26,lo8(-32)
5853 3114 AA16 cp r10,r26
5854 3116 AFEF ldi r26,hi8(-32)
5855 3118 BA06 cpc r11,r26
5856 311a AFEF ldi r26,hlo8(-32)
5857 311c CA06 cpc r12,r26
5858 311e AFEF ldi r26,hhi8(-32)
5859 3120 DA06 cpc r13,r26
5860 3122 44F4 brge .L444
5861 3124 40EE ldi r20,lo8(-32)
5862 3126 A42E mov r10,r20
5863 3128 4FEF ldi r20,hi8(-32)
5864 312a B42E mov r11,r20
5865 312c 4FEF ldi r20,hlo8(-32)
5866 312e C42E mov r12,r20
5867 3130 4FEF ldi r20,hhi8(-32)
5868 3132 D42E mov r13,r20
5869 .L444:
5870 3134 8091 0000 lds r24,Mess_IntegralNick
5871 3138 9091 0000 lds r25,(Mess_IntegralNick)+1
5872 313c A091 0000 lds r26,(Mess_IntegralNick)+2
5873 3140 B091 0000 lds r27,(Mess_IntegralNick)+3
5874 3144 8619 sub r24,r6
5875 3146 9709 sbc r25,r7
5876 3148 A809 sbc r26,r8
5877 314a B909 sbc r27,r9
5878 314c 8093 0000 sts Mess_IntegralNick,r24
5879 3150 9093 0000 sts (Mess_IntegralNick)+1,r25
5880 3154 A093 0000 sts (Mess_IntegralNick)+2,r26
5881 3158 B093 0000 sts (Mess_IntegralNick)+3,r27
5882 315c 8091 0000 lds r24,Mess_IntegralRoll
5883 3160 9091 0000 lds r25,(Mess_IntegralRoll)+1
5884 3164 A091 0000 lds r26,(Mess_IntegralRoll)+2
5885 3168 B091 0000 lds r27,(Mess_IntegralRoll)+3
5886 316c 8A19 sub r24,r10
5887 316e 9B09 sbc r25,r11
5888 3170 AC09 sbc r26,r12
5889 3172 BD09 sbc r27,r13
5890 3174 8093 0000 sts Mess_IntegralRoll,r24
5891 3178 9093 0000 sts (Mess_IntegralRoll)+1,r25
5892 317c A093 0000 sts (Mess_IntegralRoll)+2,r26
5893 3180 B093 0000 sts (Mess_IntegralRoll)+3,r27
5894 .L429:
5895 3184 8091 0000 lds r24,ZaehlMessungen
5896 3188 9091 0000 lds r25,(ZaehlMessungen)+1
5897 318c 8F3F cpi r24,255
5898 318e 9105 cpc r25,__zero_reg__
5899 3190 09F0 breq .+2
5900 3192 08F4 brsh .+2
5901 3194 C4C5 rjmp .L455
5902 3196 BAA5 ldd r27,Y+42
5903 3198 BB23 tst r27
5904 319a 09F0 breq .+2
5905 319c 4EC5 rjmp .L456
5906 319e 8091 0000 lds r24,Looping_Roll
5907 31a2 8823 tst r24
5908 31a4 09F0 breq .+2
5909 31a6 49C5 rjmp .L456
5910 31a8 8091 0000 lds r24,TrichterFlug
5911 31ac 8823 tst r24
5912 31ae 09F0 breq .+2
5913 31b0 44C5 rjmp .L456
5914 31b2 E091 0000 lds r30,EE_Parameter+66
5915 31b6 EBA7 std Y+43,r30
5916 31b8 EE23 tst r30
5917 31ba 09F4 brne .+2
5918 31bc 3EC5 rjmp .L456
5919 31be 8091 0000 lds r24,MittelIntegralNick
5920 31c2 9091 0000 lds r25,(MittelIntegralNick)+1
5921 31c6 A091 0000 lds r26,(MittelIntegralNick)+2
5922 31ca B091 0000 lds r27,(MittelIntegralNick)+3
5923 31ce B7FF sbrs r27,7
5924 31d0 04C0 rjmp .L457
5925 31d2 8150 subi r24,lo8(-(255))
5926 31d4 9F4F sbci r25,hi8(-(255))
5927 31d6 AF4F sbci r26,hlo8(-(255))
5928 31d8 BF4F sbci r27,hhi8(-(255))
5929 .L457:
5930 31da E92E mov r14,r25
5931 31dc FA2E mov r15,r26
5932 31de 0B2F mov r16,r27
5933 31e0 1127 clr r17
5934 31e2 07FD sbrc r16,7
5935 31e4 1A95 dec r17
5936 31e6 E092 0000 sts MittelIntegralNick,r14
5937 31ea F092 0000 sts (MittelIntegralNick)+1,r15
5938 31ee 0093 0000 sts (MittelIntegralNick)+2,r16
5939 31f2 1093 0000 sts (MittelIntegralNick)+3,r17
5940 31f6 8091 0000 lds r24,MittelIntegralRoll
5941 31fa 9091 0000 lds r25,(MittelIntegralRoll)+1
5942 31fe A091 0000 lds r26,(MittelIntegralRoll)+2
5943 3202 B091 0000 lds r27,(MittelIntegralRoll)+3
5944 3206 B7FF sbrs r27,7
5945 3208 04C0 rjmp .L458
5946 320a 8150 subi r24,lo8(-(255))
5947 320c 9F4F sbci r25,hi8(-(255))
5948 320e AF4F sbci r26,hlo8(-(255))
5949 3210 BF4F sbci r27,hhi8(-(255))
5950 .L458:
5951 3212 892F mov r24,r25
5952 3214 9A2F mov r25,r26
5953 3216 AB2F mov r26,r27
5954 3218 BB27 clr r27
5955 321a A7FD sbrc r26,7
5956 321c BA95 dec r27
5957 321e 8CA7 std Y+44,r24
5958 3220 9DA7 std Y+45,r25
5959 3222 AEA7 std Y+46,r26
5960 3224 BFA7 std Y+47,r27
5961 3226 8093 0000 sts MittelIntegralRoll,r24
5962 322a 9093 0000 sts (MittelIntegralRoll)+1,r25
5963 322e A093 0000 sts (MittelIntegralRoll)+2,r26
5964 3232 B093 0000 sts (MittelIntegralRoll)+3,r27
5965 3236 8091 0000 lds r24,EE_Parameter+28
5966 323a A82E mov r10,r24
5967 323c BB24 clr r11
5968 323e CC24 clr r12
5969 3240 DD24 clr r13
5970 3242 2091 0000 lds r18,IntegralAccNick
5971 3246 3091 0000 lds r19,(IntegralAccNick)+1
5972 324a 4091 0000 lds r20,(IntegralAccNick)+2
5973 324e 5091 0000 lds r21,(IntegralAccNick)+3
5974 3252 C601 movw r24,r12
5975 3254 B501 movw r22,r10
5976 3256 0E94 0000 call __mulsi3
5977 325a 97FF sbrs r25,7
5978 325c 04C0 rjmp .L459
5979 325e 6150 subi r22,lo8(-(255))
5980 3260 7F4F sbci r23,hi8(-(255))
5981 3262 8F4F sbci r24,hlo8(-(255))
5982 3264 9F4F sbci r25,hhi8(-(255))
5983 .L459:
5984 3266 672E mov r6,r23
5985 3268 782E mov r7,r24
5986 326a 892E mov r8,r25
5987 326c 9924 clr r9
5988 326e 87FC sbrc r8,7
5989 3270 9A94 dec r9
5990 3272 6092 0000 sts IntegralAccNick,r6
5991 3276 7092 0000 sts (IntegralAccNick)+1,r7
5992 327a 8092 0000 sts (IntegralAccNick)+2,r8
5993 327e 9092 0000 sts (IntegralAccNick)+3,r9
5994 3282 2091 0000 lds r18,IntegralAccRoll
5995 3286 3091 0000 lds r19,(IntegralAccRoll)+1
5996 328a 4091 0000 lds r20,(IntegralAccRoll)+2
5997 328e 5091 0000 lds r21,(IntegralAccRoll)+3
5998 3292 C601 movw r24,r12
5999 3294 B501 movw r22,r10
6000 3296 0E94 0000 call __mulsi3
6001 329a 97FF sbrs r25,7
6002 329c 04C0 rjmp .L460
6003 329e 6150 subi r22,lo8(-(255))
6004 32a0 7F4F sbci r23,hi8(-(255))
6005 32a2 8F4F sbci r24,hlo8(-(255))
6006 32a4 9F4F sbci r25,hhi8(-(255))
6007 .L460:
6008 32a6 272E mov r2,r23
6009 32a8 382E mov r3,r24
6010 32aa 492E mov r4,r25
6011 32ac 5524 clr r5
6012 32ae 47FC sbrc r4,7
6013 32b0 5A94 dec r5
6014 32b2 2092 0000 sts IntegralAccRoll,r2
6015 32b6 3092 0000 sts (IntegralAccRoll)+1,r3
6016 32ba 4092 0000 sts (IntegralAccRoll)+2,r4
6017 32be 5092 0000 sts (IntegralAccRoll)+3,r5
6018 32c2 8091 0000 lds r24,IntegralAccZ
6019 32c6 9091 0000 lds r25,(IntegralAccZ)+1
6020 32ca A091 0000 lds r26,(IntegralAccZ)+2
6021 32ce B091 0000 lds r27,(IntegralAccZ)+3
6022 32d2 B7FF sbrs r27,7
6023 32d4 04C0 rjmp .L461
6024 32d6 8150 subi r24,lo8(-(255))
6025 32d8 9F4F sbci r25,hi8(-(255))
6026 32da AF4F sbci r26,hlo8(-(255))
6027 32dc BF4F sbci r27,hhi8(-(255))
6028 .L461:
6029 32de 892F mov r24,r25
6030 32e0 9A2F mov r25,r26
6031 32e2 AB2F mov r26,r27
6032 32e4 BB27 clr r27
6033 32e6 A7FD sbrc r26,7
6034 32e8 BA95 dec r27
6035 32ea 8093 0000 sts IntegralAccZ,r24
6036 32ee 9093 0000 sts (IntegralAccZ)+1,r25
6037 32f2 A093 0000 sts (IntegralAccZ)+2,r26
6038 32f6 B093 0000 sts (IntegralAccZ)+3,r27
6039 32fa D801 movw r26,r16
6040 32fc C701 movw r24,r14
6041 32fe 8619 sub r24,r6
6042 3300 9709 sbc r25,r7
6043 3302 A809 sbc r26,r8
6044 3304 B909 sbc r27,r9
6045 3306 8093 0000 sts IntegralFehlerNick.3,r24
6046 330a 9093 0000 sts (IntegralFehlerNick.3)+1,r25
6047 330e A093 0000 sts (IntegralFehlerNick.3)+2,r26
6048 3312 B093 0000 sts (IntegralFehlerNick.3)+3,r27
6049 3316 2091 0000 lds r18,EE_Parameter+65
6050 331a E22E mov r14,r18
6051 331c FF24 clr r15
6052 331e 0027 clr r16
6053 3320 1127 clr r17
6054 3322 BC01 movw r22,r24
6055 3324 CD01 movw r24,r26
6056 3326 A801 movw r20,r16
6057 3328 9701 movw r18,r14
6058 332a 0E94 0000 call __divmodsi4
6059 332e 5901 movw r10,r18
6060 3330 6A01 movw r12,r20
6061 3332 2093 0000 sts ausgleichNick.11,r18
6062 3336 3093 0000 sts (ausgleichNick.11)+1,r19
6063 333a 4093 0000 sts (ausgleichNick.11)+2,r20
6064 333e 5093 0000 sts (ausgleichNick.11)+3,r21
6065 3342 8CA5 ldd r24,Y+44
6066 3344 9DA5 ldd r25,Y+45
6067 3346 AEA5 ldd r26,Y+46
6068 3348 BFA5 ldd r27,Y+47
6069 334a 8219 sub r24,r2
6070 334c 9309 sbc r25,r3
6071 334e A409 sbc r26,r4
6072 3350 B509 sbc r27,r5
6073 3352 8093 0000 sts IntegralFehlerRoll.4,r24
6074 3356 9093 0000 sts (IntegralFehlerRoll.4)+1,r25
6075 335a A093 0000 sts (IntegralFehlerRoll.4)+2,r26
6076 335e B093 0000 sts (IntegralFehlerRoll.4)+3,r27
6077 3362 BC01 movw r22,r24
6078 3364 CD01 movw r24,r26
6079 3366 A801 movw r20,r16
6080 3368 9701 movw r18,r14
6081 336a 0E94 0000 call __divmodsi4
6082 336e 2093 0000 sts ausgleichRoll.12,r18
6083 3372 3093 0000 sts (ausgleichRoll.12)+1,r19
6084 3376 4093 0000 sts (ausgleichRoll.12)+2,r20
6085 337a 5093 0000 sts (ausgleichRoll.12)+3,r21
6086 337e D601 movw r26,r12
6087 3380 C501 movw r24,r10
6088 3382 D7FE sbrs r13,7
6089 3384 04C0 rjmp .L462
6090 3386 8150 subi r24,lo8(-(255))
6091 3388 9F4F sbci r25,hi8(-(255))
6092 338a AF4F sbci r26,hlo8(-(255))
6093 338c BF4F sbci r27,hhi8(-(255))
6094 .L462:
6095 338e 892F mov r24,r25
6096 3390 9A2F mov r25,r26
6097 3392 AB2F mov r26,r27
6098 3394 BB27 clr r27
6099 3396 A7FD sbrc r26,7
6100 3398 BA95 dec r27
6101 339a 9093 0000 sts (LageKorrekturNick)+1,r25
6102 339e 8093 0000 sts LageKorrekturNick,r24
6103 33a2 57FF sbrs r21,7
6104 33a4 04C0 rjmp .L463
6105 33a6 2150 subi r18,lo8(-(255))
6106 33a8 3F4F sbci r19,hi8(-(255))
6107 33aa 4F4F sbci r20,hlo8(-(255))
6108 33ac 5F4F sbci r21,hhi8(-(255))
6109 .L463:
6110 33ae BB27 clr r27
6111 33b0 57FD sbrc r21,7
6112 33b2 BA95 dec r27
6113 33b4 A52F mov r26,r21
6114 33b6 942F mov r25,r20
6115 33b8 832F mov r24,r19
6116 33ba 9093 0000 sts (LageKorrekturRoll)+1,r25
6117 33be 8093 0000 sts LageKorrekturRoll,r24
6118 33c2 8091 0000 lds r24,MaxStickNick
6119 33c6 9091 0000 lds r25,(MaxStickNick)+1
6120 33ca 8134 cpi r24,65
6121 33cc 9105 cpc r25,__zero_reg__
6122 33ce DCF4 brge .L465
6123 33d0 8091 0000 lds r24,MaxStickRoll
6124 33d4 9091 0000 lds r25,(MaxStickRoll)+1
6125 33d8 8134 cpi r24,65
6126 33da 9105 cpc r25,__zero_reg__
6127 33dc A4F4 brge .L465
6128 33de 8091 0000 lds r24,EE_Parameter+4
6129 33e2 E82F mov r30,r24
6130 33e4 FF27 clr r31
6131 33e6 EE0F add r30,r30
6132 33e8 FF1F adc r31,r31
6133 33ea E050 subi r30,lo8(-(PPM_in))
6134 33ec F040 sbci r31,hi8(-(PPM_in))
6135 33ee 8081 ld r24,Z
6136 33f0 9181 ldd r25,Z+1
6137 33f2 0190 ld __tmp_reg__,Z+
6138 33f4 F081 ld r31,Z
6139 33f6 E02D mov r30,__tmp_reg__
6140 33f8 F7FF sbrs r31,7
6141 33fa 03C0 rjmp .L466
6142 33fc F095 com r31
6143 33fe E195 neg r30
6144 3400 FF4F sbci r31,lo8(-1)
6145 .L466:
6146 3402 7A97 sbiw r30,26
6147 3404 E4F0 brlt .L464
6148 .L465:
6149 3406 8091 0000 lds r24,FromNaviCtrl_Value
6150 340a 8F3F cpi r24,lo8(-1)
6151 340c C1F4 brne .L464
6152 340e 8091 0000 lds r24,LageKorrekturNick
6153 3412 9091 0000 lds r25,(LageKorrekturNick)+1
6154 3416 97FD sbrc r25,7
6155 3418 0196 adiw r24,1
6156 .L467:
6157 341a 9595 asr r25
6158 341c 8795 ror r24
6159 341e 9093 0000 sts (LageKorrekturNick)+1,r25
6160 3422 8093 0000 sts LageKorrekturNick,r24
6161 3426 8091 0000 lds r24,LageKorrekturRoll
6162 342a 9091 0000 lds r25,(LageKorrekturRoll)+1
6163 342e 97FD sbrc r25,7
6164 3430 0196 adiw r24,1
6165 .L468:
6166 3432 9595 asr r25
6167 3434 8795 ror r24
6168 3436 9093 0000 sts (LageKorrekturRoll)+1,r25
6169 343a 8093 0000 sts LageKorrekturRoll,r24
6170 .L464:
6171 343e 8091 0000 lds r24,MittelIntegralNick2
6172 3442 9091 0000 lds r25,(MittelIntegralNick2)+1
6173 3446 A091 0000 lds r26,(MittelIntegralNick2)+2
6174 344a B091 0000 lds r27,(MittelIntegralNick2)+3
6175 344e B7FF sbrs r27,7
6176 3450 04C0 rjmp .L469
6177 3452 8150 subi r24,lo8(-(255))
6178 3454 9F4F sbci r25,hi8(-(255))
6179 3456 AF4F sbci r26,hlo8(-(255))
6180 3458 BF4F sbci r27,hhi8(-(255))
6181 .L469:
6182 345a 892F mov r24,r25
6183 345c 9A2F mov r25,r26
6184 345e AB2F mov r26,r27
6185 3460 BB27 clr r27
6186 3462 A7FD sbrc r26,7
6187 3464 BA95 dec r27
6188 3466 8093 0000 sts MittelIntegralNick2,r24
6189 346a 9093 0000 sts (MittelIntegralNick2)+1,r25
6190 346e A093 0000 sts (MittelIntegralNick2)+2,r26
6191 3472 B093 0000 sts (MittelIntegralNick2)+3,r27
6192 3476 8091 0000 lds r24,MittelIntegralRoll2
6193 347a 9091 0000 lds r25,(MittelIntegralRoll2)+1
6194 347e A091 0000 lds r26,(MittelIntegralRoll2)+2
6195 3482 B091 0000 lds r27,(MittelIntegralRoll2)+3
6196 3486 B7FF sbrs r27,7
6197 3488 04C0 rjmp .L470
6198 348a 8150 subi r24,lo8(-(255))
6199 348c 9F4F sbci r25,hi8(-(255))
6200 348e AF4F sbci r26,hlo8(-(255))
6201 3490 BF4F sbci r27,hhi8(-(255))
6202 .L470:
6203 3492 892F mov r24,r25
6204 3494 9A2F mov r25,r26
6205 3496 AB2F mov r26,r27
6206 3498 BB27 clr r27
6207 349a A7FD sbrc r26,7
6208 349c BA95 dec r27
6209 349e 8093 0000 sts MittelIntegralRoll2,r24
6210 34a2 9093 0000 sts (MittelIntegralRoll2)+1,r25
6211 34a6 A093 0000 sts (MittelIntegralRoll2)+2,r26
6212 34aa B093 0000 sts (MittelIntegralRoll2)+3,r27
6213 34ae 8091 0000 lds r24,IntegralNick
6214 34b2 9091 0000 lds r25,(IntegralNick)+1
6215 34b6 A091 0000 lds r26,(IntegralNick)+2
6216 34ba B091 0000 lds r27,(IntegralNick)+3
6217 34be 2AA1 ldd r18,Y+34
6218 34c0 3BA1 ldd r19,Y+35
6219 34c2 4CA1 ldd r20,Y+36
6220 34c4 5DA1 ldd r21,Y+37
6221 34c6 281B sub r18,r24
6222 34c8 390B sbc r19,r25
6223 34ca 4A0B sbc r20,r26
6224 34cc 5B0B sbc r21,r27
6225 34ce 2093 0000 sts tmp_long.1,r18
6226 34d2 3093 0000 sts (tmp_long.1)+1,r19
6227 34d6 4093 0000 sts (tmp_long.1)+2,r20
6228 34da 5093 0000 sts (tmp_long.1)+3,r21
6229 34de 8091 0000 lds r24,IntegralRoll
6230 34e2 9091 0000 lds r25,(IntegralRoll)+1
6231 34e6 A091 0000 lds r26,(IntegralRoll)+2
6232 34ea B091 0000 lds r27,(IntegralRoll)+3
6233 34ee EEA0 ldd r14,Y+38
6234 34f0 FFA0 ldd r15,Y+39
6235 34f2 08A5 ldd r16,Y+40
6236 34f4 19A5 ldd r17,Y+41
6237 34f6 E81A sub r14,r24
6238 34f8 F90A sbc r15,r25
6239 34fa 0A0B sbc r16,r26
6240 34fc 1B0B sbc r17,r27
6241 34fe E092 0000 sts tmp_long2.2,r14
6242 3502 F092 0000 sts (tmp_long2.2)+1,r15
6243 3506 0093 0000 sts (tmp_long2.2)+2,r16
6244 350a 1093 0000 sts (tmp_long2.2)+3,r17
6245 350e 2093 0000 sts IntegralFehlerNick.3,r18
6246 3512 3093 0000 sts (IntegralFehlerNick.3)+1,r19
6247 3516 4093 0000 sts (IntegralFehlerNick.3)+2,r20
6248 351a 5093 0000 sts (IntegralFehlerNick.3)+3,r21
6249 351e E092 0000 sts IntegralFehlerRoll.4,r14
6250 3522 F092 0000 sts (IntegralFehlerRoll.4)+1,r15
6251 3526 0093 0000 sts (IntegralFehlerRoll.4)+2,r16
6252 352a 1093 0000 sts (IntegralFehlerRoll.4)+3,r17
6253 352e 8091 0000 lds r24,Mess_IntegralNick2
6254 3532 9091 0000 lds r25,(Mess_IntegralNick2)+1
6255 3536 A091 0000 lds r26,(Mess_IntegralNick2)+2
6256 353a B091 0000 lds r27,(Mess_IntegralNick2)+3
6257 353e 821B sub r24,r18
6258 3540 930B sbc r25,r19
6259 3542 A40B sbc r26,r20
6260 3544 B50B sbc r27,r21
6261 3546 8093 0000 sts Mess_IntegralNick2,r24
6262 354a 9093 0000 sts (Mess_IntegralNick2)+1,r25
6263 354e A093 0000 sts (Mess_IntegralNick2)+2,r26
6264 3552 B093 0000 sts (Mess_IntegralNick2)+3,r27
6265 3556 8091 0000 lds r24,Mess_IntegralRoll2
6266 355a 9091 0000 lds r25,(Mess_IntegralRoll2)+1
6267 355e A091 0000 lds r26,(Mess_IntegralRoll2)+2
6268 3562 B091 0000 lds r27,(Mess_IntegralRoll2)+3
6269 3566 8E19 sub r24,r14
6270 3568 9F09 sbc r25,r15
6271 356a A00B sbc r26,r16
6272 356c B10B sbc r27,r17
6273 356e 8093 0000 sts Mess_IntegralRoll2,r24
6274 3572 9093 0000 sts (Mess_IntegralRoll2)+1,r25
6275 3576 A093 0000 sts (Mess_IntegralRoll2)+2,r26
6276 357a B093 0000 sts (Mess_IntegralRoll2)+3,r27
6277 357e FBA5 ldd r31,Y+43
6278 3580 FF23 tst r31
6279 3582 E1F0 breq .L471
6280 3584 2091 0000 lds r18,GierGyroFehler
6281 3588 3091 0000 lds r19,(GierGyroFehler)+1
6282 358c 2138 cpi r18,129
6283 358e 3105 cpc r19,__zero_reg__
6284 3590 4CF0 brlt .L472
6285 3592 8091 0000 lds r24,AdNeutralGier
6286 3596 9091 0000 lds r25,(AdNeutralGier)+1
6287 359a 0196 adiw r24,1
6288 359c 9093 0000 sts (AdNeutralGier)+1,r25
6289 35a0 8093 0000 sts AdNeutralGier,r24
6290 .L472:
6291 35a4 2058 subi r18,lo8(-128)
6292 35a6 3F4F sbci r19,hi8(-128)
6293 35a8 4CF4 brge .L471
6294 35aa 8091 0000 lds r24,AdNeutralGier
6295 35ae 9091 0000 lds r25,(AdNeutralGier)+1
6296 35b2 0197 sbiw r24,1
6297 35b4 9093 0000 sts (AdNeutralGier)+1,r25
6298 35b8 8093 0000 sts AdNeutralGier,r24
6299 .L471:
6300 35bc 1092 0000 sts (GierGyroFehler)+1,__zero_reg__
6301 35c0 1092 0000 sts GierGyroFehler,__zero_reg__
6302 35c4 81E0 ldi r24,lo8(1)
6303 35c6 90E0 ldi r25,hi8(1)
6304 35c8 9093 0000 sts (cnt.15)+1,r25
6305 35cc 8093 0000 sts cnt.15,r24
6306 35d0 A090 0000 lds r10,IntegralFehlerNick.3
6307 35d4 B090 0000 lds r11,(IntegralFehlerNick.3)+1
6308 35d8 C090 0000 lds r12,(IntegralFehlerNick.3)+2
6309 35dc D090 0000 lds r13,(IntegralFehlerNick.3)+3
6310 35e0 D601 movw r26,r12
6311 35e2 C501 movw r24,r10
6312 35e4 D7FE sbrs r13,7
6313 35e6 07C0 rjmp .L475
6314 35e8 8827 clr r24
6315 35ea 9927 clr r25
6316 35ec DC01 movw r26,r24
6317 35ee 8A19 sub r24,r10
6318 35f0 9B09 sbc r25,r11
6319 35f2 AC09 sbc r26,r12
6320 35f4 BD09 sbc r27,r13
6321 .L475:
6322 35f6 8150 subi r24,lo8(513)
6323 35f8 9240 sbci r25,hi8(513)
6324 35fa A040 sbci r26,hlo8(513)
6325 35fc B040 sbci r27,hhi8(513)
6326 35fe 34F0 brlt .L474
6327 3600 84E0 ldi r24,lo8(4)
6328 3602 90E0 ldi r25,hi8(4)
6329 3604 9093 0000 sts (cnt.15)+1,r25
6330 3608 8093 0000 sts cnt.15,r24
6331 .L474:
6332 360c 8091 0000 lds r24,MittelIntegralNick_Alt.20
6333 3610 9091 0000 lds r25,(MittelIntegralNick_Alt.20)+1
6334 3614 A091 0000 lds r26,(MittelIntegralNick_Alt.20)+2
6335 3618 B091 0000 lds r27,(MittelIntegralNick_Alt.20)+3
6336 361c 2091 0000 lds r18,MittelIntegralNick
6337 3620 3091 0000 lds r19,(MittelIntegralNick)+1
6338 3624 4091 0000 lds r20,(MittelIntegralNick)+2
6339 3628 5091 0000 lds r21,(MittelIntegralNick)+3
6340 362c 821B sub r24,r18
6341 362e 930B sbc r25,r19
6342 3630 A40B sbc r26,r20
6343 3632 B50B sbc r27,r21
6344 3634 815E subi r24,lo8(-(19999))
6345 3636 914B sbci r25,hi8(-(19999))
6346 3638 AF4F sbci r26,hlo8(-(19999))
6347 363a BF4F sbci r27,hhi8(-(19999))
6348 363c 8F53 subi r24,lo8(39999)
6349 363e 9C49 sbci r25,hi8(39999)
6350 3640 A040 sbci r26,hlo8(39999)
6351 3642 B040 sbci r27,hhi8(39999)
6352 3644 28F0 brlo .L477
6353 3646 8091 0000 lds r24,FromNaviCtrl_Value+1
6354 364a 8931 cpi r24,lo8(25)
6355 364c 0CF4 brge .+2
6356 364e FFC0 rjmp .L476
6357 .L477:
6358 3650 31E0 ldi r19,lo8(4097)
6359 3652 A316 cp r10,r19
6360 3654 30E1 ldi r19,hi8(4097)
6361 3656 B306 cpc r11,r19
6362 3658 30E0 ldi r19,hlo8(4097)
6363 365a C306 cpc r12,r19
6364 365c 30E0 ldi r19,hhi8(4097)
6365 365e D306 cpc r13,r19
6366 3660 0CF4 brge .+2
6367 3662 73C0 rjmp .L478
6368 3664 8091 0000 lds r24,last_n_p.16
6369 3668 8823 tst r24
6370 366a 09F4 brne .+2
6371 366c 6AC0 rjmp .L479
6372 366e D601 movw r26,r12
6373 3670 C501 movw r24,r10
6374 3672 D7FE sbrs r13,7
6375 3674 07C0 rjmp .L480
6376 3676 8827 clr r24
6377 3678 9927 clr r25
6378 367a DC01 movw r26,r24
6379 367c 8A19 sub r24,r10
6380 367e 9B09 sbc r25,r11
6381 3680 AC09 sbc r26,r12
6382 3682 BD09 sbc r27,r13
6383 .L480:
6384 3684 9C01 movw r18,r24
6385 3686 AD01 movw r20,r26
6386 3688 B7FF sbrs r27,7
6387 368a 04C0 rjmp .L481
6388 368c 2150 subi r18,lo8(-(511))
6389 368e 3E4F sbci r19,hi8(-(511))
6390 3690 4F4F sbci r20,hlo8(-(511))
6391 3692 5F4F sbci r21,hhi8(-(511))
6392 .L481:
6393 3694 09E0 ldi r16,9
6394 3696 5595 1: asr r21
6395 3698 4795 ror r20
6396 369a 3795 ror r19
6397 369c 2795 ror r18
6398 369e 0A95 dec r16
6399 36a0 D1F7 brne 1b
6400 36a2 8091 0000 lds r24,cnt.15
6401 36a6 9091 0000 lds r25,(cnt.15)+1
6402 36aa 820F add r24,r18
6403 36ac 931F adc r25,r19
6404 36ae 9093 0000 sts (cnt.15)+1,r25
6405 36b2 8093 0000 sts cnt.15,r24
6406 36b6 D601 movw r26,r12
6407 36b8 C501 movw r24,r10
6408 36ba D7FE sbrs r13,7
6409 36bc 03C0 rjmp .L482
6410 36be 0796 adiw r24,7
6411 36c0 A11D adc r26,__zero_reg__
6412 36c2 B11D adc r27,__zero_reg__
6413 .L482:
6414 36c4 13E0 ldi r17,3
6415 36c6 B595 1: asr r27
6416 36c8 A795 ror r26
6417 36ca 9795 ror r25
6418 36cc 8795 ror r24
6419 36ce 1A95 dec r17
6420 36d0 D1F7 brne 1b
6421 36d2 8093 0000 sts ausgleichNick.11,r24
6422 36d6 9093 0000 sts (ausgleichNick.11)+1,r25
6423 36da A093 0000 sts (ausgleichNick.11)+2,r26
6424 36de B093 0000 sts (ausgleichNick.11)+3,r27
6425 36e2 8958 subi r24,lo8(5001)
6426 36e4 9341 sbci r25,hi8(5001)
6427 36e6 A040 sbci r26,hlo8(5001)
6428 36e8 B040 sbci r27,hhi8(5001)
6429 36ea 64F0 brlt .L483
6430 36ec 88E8 ldi r24,lo8(5000)
6431 36ee 93E1 ldi r25,hi8(5000)
6432 36f0 A0E0 ldi r26,hlo8(5000)
6433 36f2 B0E0 ldi r27,hhi8(5000)
6434 36f4 8093 0000 sts ausgleichNick.11,r24
6435 36f8 9093 0000 sts (ausgleichNick.11)+1,r25
6436 36fc A093 0000 sts (ausgleichNick.11)+2,r26
6437 3700 B093 0000 sts (ausgleichNick.11)+3,r27
6438 .L483:
6439 3704 2091 0000 lds r18,ausgleichNick.11
6440 3708 3091 0000 lds r19,(ausgleichNick.11)+1
6441 370c 4091 0000 lds r20,(ausgleichNick.11)+2
6442 3710 5091 0000 lds r21,(ausgleichNick.11)+3
6443 3714 57FF sbrs r21,7
6444 3716 04C0 rjmp .L484
6445 3718 2150 subi r18,lo8(-(255))
6446 371a 3F4F sbci r19,hi8(-(255))
6447 371c 4F4F sbci r20,hlo8(-(255))
6448 371e 5F4F sbci r21,hhi8(-(255))
6449 .L484:
6450 3720 232F mov r18,r19
6451 3722 342F mov r19,r20
6452 3724 452F mov r20,r21
6453 3726 5527 clr r21
6454 3728 47FD sbrc r20,7
6455 372a 5A95 dec r21
6456 372c 8091 0000 lds r24,LageKorrekturNick
6457 3730 9091 0000 lds r25,(LageKorrekturNick)+1
6458 3734 820F add r24,r18
6459 3736 931F adc r25,r19
6460 3738 9093 0000 sts (LageKorrekturNick)+1,r25
6461 373c 8093 0000 sts LageKorrekturNick,r24
6462 3740 06C0 rjmp .L486
6463 .L479:
6464 3742 81E0 ldi r24,lo8(1)
6465 3744 8093 0000 sts last_n_p.16,r24
6466 3748 02C0 rjmp .L486
6467 .L478:
6468 374a 1092 0000 sts last_n_p.16,__zero_reg__
6469 .L486:
6470 374e 50E0 ldi r21,lo8(-4096)
6471 3750 A516 cp r10,r21
6472 3752 50EF ldi r21,hi8(-4096)
6473 3754 B506 cpc r11,r21
6474 3756 5FEF ldi r21,hlo8(-4096)
6475 3758 C506 cpc r12,r21
6476 375a 5FEF ldi r21,hhi8(-4096)
6477 375c D506 cpc r13,r21
6478 375e 0CF0 brlt .+2
6479 3760 73C0 rjmp .L487
6480 3762 8091 0000 lds r24,last_n_n.17
6481 3766 8823 tst r24
6482 3768 09F4 brne .+2
6483 376a 6AC0 rjmp .L488
6484 376c D601 movw r26,r12
6485 376e C501 movw r24,r10
6486 3770 D7FE sbrs r13,7
6487 3772 07C0 rjmp .L489
6488 3774 8827 clr r24
6489 3776 9927 clr r25
6490 3778 DC01 movw r26,r24
6491 377a 8A19 sub r24,r10
6492 377c 9B09 sbc r25,r11
6493 377e AC09 sbc r26,r12
6494 3780 BD09 sbc r27,r13
6495 .L489:
6496 3782 9C01 movw r18,r24
6497 3784 AD01 movw r20,r26
6498 3786 B7FF sbrs r27,7
6499 3788 04C0 rjmp .L490
6500 378a 2150 subi r18,lo8(-(511))
6501 378c 3E4F sbci r19,hi8(-(511))
6502 378e 4F4F sbci r20,hlo8(-(511))
6503 3790 5F4F sbci r21,hhi8(-(511))
6504 .L490:
6505 3792 F9E0 ldi r31,9
6506 3794 5595 1: asr r21
6507 3796 4795 ror r20
6508 3798 3795 ror r19
6509 379a 2795 ror r18
6510 379c FA95 dec r31
6511 379e D1F7 brne 1b
6512 37a0 8091 0000 lds r24,cnt.15
6513 37a4 9091 0000 lds r25,(cnt.15)+1
6514 37a8 820F add r24,r18
6515 37aa 931F adc r25,r19
6516 37ac 9093 0000 sts (cnt.15)+1,r25
6517 37b0 8093 0000 sts cnt.15,r24
6518 37b4 D601 movw r26,r12
6519 37b6 C501 movw r24,r10
6520 37b8 D7FE sbrs r13,7
6521 37ba 03C0 rjmp .L491
6522 37bc 0796 adiw r24,7
6523 37be A11D adc r26,__zero_reg__
6524 37c0 B11D adc r27,__zero_reg__
6525 .L491:
6526 37c2 E3E0 ldi r30,3
6527 37c4 B595 1: asr r27
6528 37c6 A795 ror r26
6529 37c8 9795 ror r25
6530 37ca 8795 ror r24
6531 37cc EA95 dec r30
6532 37ce D1F7 brne 1b
6533 37d0 8093 0000 sts ausgleichNick.11,r24
6534 37d4 9093 0000 sts (ausgleichNick.11)+1,r25
6535 37d8 A093 0000 sts (ausgleichNick.11)+2,r26
6536 37dc B093 0000 sts (ausgleichNick.11)+3,r27
6537 37e0 8857 subi r24,lo8(-5000)
6538 37e2 9C4E sbci r25,hi8(-5000)
6539 37e4 AF4F sbci r26,hlo8(-5000)
6540 37e6 BF4F sbci r27,hhi8(-5000)
6541 37e8 64F4 brge .L492
6542 37ea 88E7 ldi r24,lo8(-5000)
6543 37ec 9CEE ldi r25,hi8(-5000)
6544 37ee AFEF ldi r26,hlo8(-5000)
6545 37f0 BFEF ldi r27,hhi8(-5000)
6546 37f2 8093 0000 sts ausgleichNick.11,r24
6547 37f6 9093 0000 sts (ausgleichNick.11)+1,r25
6548 37fa A093 0000 sts (ausgleichNick.11)+2,r26
6549 37fe B093 0000 sts (ausgleichNick.11)+3,r27
6550 .L492:
6551 3802 2091 0000 lds r18,ausgleichNick.11
6552 3806 3091 0000 lds r19,(ausgleichNick.11)+1
6553 380a 4091 0000 lds r20,(ausgleichNick.11)+2
6554 380e 5091 0000 lds r21,(ausgleichNick.11)+3
6555 3812 57FF sbrs r21,7
6556 3814 04C0 rjmp .L493
6557 3816 2150 subi r18,lo8(-(255))
6558 3818 3F4F sbci r19,hi8(-(255))
6559 381a 4F4F sbci r20,hlo8(-(255))
6560 381c 5F4F sbci r21,hhi8(-(255))
6561 .L493:
6562 381e 232F mov r18,r19
6563 3820 342F mov r19,r20
6564 3822 452F mov r20,r21
6565 3824 5527 clr r21
6566 3826 47FD sbrc r20,7
6567 3828 5A95 dec r21
6568 382a 8091 0000 lds r24,LageKorrekturNick
6569 382e 9091 0000 lds r25,(LageKorrekturNick)+1
6570 3832 820F add r24,r18
6571 3834 931F adc r25,r19
6572 3836 9093 0000 sts (LageKorrekturNick)+1,r25
6573 383a 8093 0000 sts LageKorrekturNick,r24
6574 383e 11C0 rjmp .L496
6575 .L488:
6576 3840 81E0 ldi r24,lo8(1)
6577 3842 8093 0000 sts last_n_n.17,r24
6578 3846 0DC0 rjmp .L496
6579 .L487:
6580 3848 1092 0000 sts last_n_n.17,__zero_reg__
6581 384c 0AC0 rjmp .L496
6582 .L476:
6583 384e 1092 0000 sts (cnt.15)+1,__zero_reg__
6584 3852 1092 0000 sts cnt.15,__zero_reg__
6585 3856 88EE ldi r24,lo8(1000)
6586 3858 93E0 ldi r25,hi8(1000)
6587 385a 9093 0000 sts (KompassSignalSchlecht)+1,r25
6588 385e 8093 0000 sts KompassSignalSchlecht,r24
6589 .L496:
6590 3862 7BA5 ldd r23,Y+43
6591 3864 272F mov r18,r23
6592 3866 3327 clr r19
6593 3868 8091 0000 lds r24,cnt.15
6594 386c 9091 0000 lds r25,(cnt.15)+1
6595 3870 2817 cp r18,r24
6596 3872 3907 cpc r19,r25
6597 3874 24F4 brge .L497
6598 3876 3093 0000 sts (cnt.15)+1,r19
6599 387a 2093 0000 sts cnt.15,r18
6600 .L497:
6601 387e E091 0000 lds r30,FromNaviCtrl_Value+1
6602 3882 EE23 tst r30
6603 3884 79F0 breq .L498
6604 3886 2E2F mov r18,r30
6605 3888 3327 clr r19
6606 388a 27FD sbrc r18,7
6607 388c 3095 com r19
6608 388e 8091 0000 lds r24,cnt.15
6609 3892 9091 0000 lds r25,(cnt.15)+1
6610 3896 2817 cp r18,r24
6611 3898 3907 cpc r19,r25
6612 389a 24F4 brge .L498
6613 389c 3093 0000 sts (cnt.15)+1,r19
6614 38a0 2093 0000 sts cnt.15,r18
6615 .L498:
6616 38a4 4091 0000 lds r20,IntegralFehlerNick.3
6617 38a8 5091 0000 lds r21,(IntegralFehlerNick.3)+1
6618 38ac 6091 0000 lds r22,(IntegralFehlerNick.3)+2
6619 38b0 7091 0000 lds r23,(IntegralFehlerNick.3)+3
6620 38b4 4138 cpi r20,lo8(129)
6621 38b6 5105 cpc r21,__zero_reg__
6622 38b8 6105 cpc r22,__zero_reg__
6623 38ba 7105 cpc r23,__zero_reg__
6624 38bc 74F0 brlt .L500
6625 38be 8091 0000 lds r24,AdNeutralNick
6626 38c2 9091 0000 lds r25,(AdNeutralNick)+1
6627 38c6 2091 0000 lds r18,cnt.15
6628 38ca 3091 0000 lds r19,(cnt.15)+1
6629 38ce 820F add r24,r18
6630 38d0 931F adc r25,r19
6631 38d2 9093 0000 sts (AdNeutralNick)+1,r25
6632 38d6 8093 0000 sts AdNeutralNick,r24
6633 .L500:
6634 38da 4058 subi r20,lo8(-128)
6635 38dc 5F4F sbci r21,hi8(-128)
6636 38de 6F4F sbci r22,hlo8(-128)
6637 38e0 7F4F sbci r23,hhi8(-128)
6638 38e2 74F4 brge .L501
6639 38e4 8091 0000 lds r24,AdNeutralNick
6640 38e8 9091 0000 lds r25,(AdNeutralNick)+1
6641 38ec 2091 0000 lds r18,cnt.15
6642 38f0 3091 0000 lds r19,(cnt.15)+1
6643 38f4 821B sub r24,r18
6644 38f6 930B sbc r25,r19
6645 38f8 9093 0000 sts (AdNeutralNick)+1,r25
6646 38fc 8093 0000 sts AdNeutralNick,r24
6647 .L501:
6648 3900 81E0 ldi r24,lo8(1)
6649 3902 90E0 ldi r25,hi8(1)
6650 3904 9093 0000 sts (cnt.15)+1,r25
6651 3908 8093 0000 sts cnt.15,r24
6652 390c A090 0000 lds r10,IntegralFehlerRoll.4
6653 3910 B090 0000 lds r11,(IntegralFehlerRoll.4)+1
6654 3914 C090 0000 lds r12,(IntegralFehlerRoll.4)+2
6655 3918 D090 0000 lds r13,(IntegralFehlerRoll.4)+3
6656 391c D601 movw r26,r12
6657 391e C501 movw r24,r10
6658 3920 D7FE sbrs r13,7
6659 3922 07C0 rjmp .L503
6660 3924 8827 clr r24
6661 3926 9927 clr r25
6662 3928 DC01 movw r26,r24
6663 392a 8A19 sub r24,r10
6664 392c 9B09 sbc r25,r11
6665 392e AC09 sbc r26,r12
6666 3930 BD09 sbc r27,r13
6667 .L503:
6668 3932 8150 subi r24,lo8(513)
6669 3934 9240 sbci r25,hi8(513)
6670 3936 A040 sbci r26,hlo8(513)
6671 3938 B040 sbci r27,hhi8(513)
6672 393a 34F0 brlt .L502
6673 393c 84E0 ldi r24,lo8(4)
6674 393e 90E0 ldi r25,hi8(4)
6675 3940 9093 0000 sts (cnt.15)+1,r25
6676 3944 8093 0000 sts cnt.15,r24
6677 .L502:
6678 3948 8091 0000 lds r24,MittelIntegralRoll_Alt.21
6679 394c 9091 0000 lds r25,(MittelIntegralRoll_Alt.21)+1
6680 3950 A091 0000 lds r26,(MittelIntegralRoll_Alt.21)+2
6681 3954 B091 0000 lds r27,(MittelIntegralRoll_Alt.21)+3
6682 3958 2091 0000 lds r18,MittelIntegralRoll
6683 395c 3091 0000 lds r19,(MittelIntegralRoll)+1
6684 3960 4091 0000 lds r20,(MittelIntegralRoll)+2
6685 3964 5091 0000 lds r21,(MittelIntegralRoll)+3
6686 3968 821B sub r24,r18
6687 396a 930B sbc r25,r19
6688 396c A40B sbc r26,r20
6689 396e B50B sbc r27,r21
6690 3970 815E subi r24,lo8(-(19999))
6691 3972 914B sbci r25,hi8(-(19999))
6692 3974 AF4F sbci r26,hlo8(-(19999))
6693 3976 BF4F sbci r27,hhi8(-(19999))
6694 3978 8F53 subi r24,lo8(39999)
6695 397a 9C49 sbci r25,hi8(39999)
6696 397c A040 sbci r26,hlo8(39999)
6697 397e B040 sbci r27,hhi8(39999)
6698 3980 18F0 brlo .L505
6699 3982 E931 cpi r30,lo8(25)
6700 3984 0CF4 brge .+2
6701 3986 FFC0 rjmp .L504
6702 .L505:
6703 3988 11E0 ldi r17,lo8(4097)
6704 398a A116 cp r10,r17
6705 398c 10E1 ldi r17,hi8(4097)
6706 398e B106 cpc r11,r17
6707 3990 10E0 ldi r17,hlo8(4097)
6708 3992 C106 cpc r12,r17
6709 3994 10E0 ldi r17,hhi8(4097)
6710 3996 D106 cpc r13,r17
6711 3998 0CF4 brge .+2
6712 399a 73C0 rjmp .L506
6713 399c 8091 0000 lds r24,last_r_p.18
6714 39a0 8823 tst r24
6715 39a2 09F4 brne .+2
6716 39a4 6AC0 rjmp .L507
6717 39a6 D601 movw r26,r12
6718 39a8 C501 movw r24,r10
6719 39aa D7FE sbrs r13,7
6720 39ac 07C0 rjmp .L508
6721 39ae 8827 clr r24
6722 39b0 9927 clr r25
6723 39b2 DC01 movw r26,r24
6724 39b4 8A19 sub r24,r10
6725 39b6 9B09 sbc r25,r11
6726 39b8 AC09 sbc r26,r12
6727 39ba BD09 sbc r27,r13
6728 .L508:
6729 39bc 9C01 movw r18,r24
6730 39be AD01 movw r20,r26
6731 39c0 B7FF sbrs r27,7
6732 39c2 04C0 rjmp .L509
6733 39c4 2150 subi r18,lo8(-(511))
6734 39c6 3E4F sbci r19,hi8(-(511))
6735 39c8 4F4F sbci r20,hlo8(-(511))
6736 39ca 5F4F sbci r21,hhi8(-(511))
6737 .L509:
6738 39cc 69E0 ldi r22,9
6739 39ce 5595 1: asr r21
6740 39d0 4795 ror r20
6741 39d2 3795 ror r19
6742 39d4 2795 ror r18
6743 39d6 6A95 dec r22
6744 39d8 D1F7 brne 1b
6745 39da 8091 0000 lds r24,cnt.15
6746 39de 9091 0000 lds r25,(cnt.15)+1
6747 39e2 820F add r24,r18
6748 39e4 931F adc r25,r19
6749 39e6 9093 0000 sts (cnt.15)+1,r25
6750 39ea 8093 0000 sts cnt.15,r24
6751 39ee D601 movw r26,r12
6752 39f0 C501 movw r24,r10
6753 39f2 D7FE sbrs r13,7
6754 39f4 03C0 rjmp .L510
6755 39f6 0796 adiw r24,7
6756 39f8 A11D adc r26,__zero_reg__
6757 39fa B11D adc r27,__zero_reg__
6758 .L510:
6759 39fc 23E0 ldi r18,3
6760 39fe B595 1: asr r27
6761 3a00 A795 ror r26
6762 3a02 9795 ror r25
6763 3a04 8795 ror r24
6764 3a06 2A95 dec r18
6765 3a08 D1F7 brne 1b
6766 3a0a 8093 0000 sts ausgleichRoll.12,r24
6767 3a0e 9093 0000 sts (ausgleichRoll.12)+1,r25
6768 3a12 A093 0000 sts (ausgleichRoll.12)+2,r26
6769 3a16 B093 0000 sts (ausgleichRoll.12)+3,r27
6770 3a1a 8958 subi r24,lo8(5001)
6771 3a1c 9341 sbci r25,hi8(5001)
6772 3a1e A040 sbci r26,hlo8(5001)
6773 3a20 B040 sbci r27,hhi8(5001)
6774 3a22 64F0 brlt .L511
6775 3a24 88E8 ldi r24,lo8(5000)
6776 3a26 93E1 ldi r25,hi8(5000)
6777 3a28 A0E0 ldi r26,hlo8(5000)
6778 3a2a B0E0 ldi r27,hhi8(5000)
6779 3a2c 8093 0000 sts ausgleichRoll.12,r24
6780 3a30 9093 0000 sts (ausgleichRoll.12)+1,r25
6781 3a34 A093 0000 sts (ausgleichRoll.12)+2,r26
6782 3a38 B093 0000 sts (ausgleichRoll.12)+3,r27
6783 .L511:
6784 3a3c 2091 0000 lds r18,ausgleichRoll.12
6785 3a40 3091 0000 lds r19,(ausgleichRoll.12)+1
6786 3a44 4091 0000 lds r20,(ausgleichRoll.12)+2
6787 3a48 5091 0000 lds r21,(ausgleichRoll.12)+3
6788 3a4c 57FF sbrs r21,7
6789 3a4e 04C0 rjmp .L512
6790 3a50 2150 subi r18,lo8(-(255))
6791 3a52 3F4F sbci r19,hi8(-(255))
6792 3a54 4F4F sbci r20,hlo8(-(255))
6793 3a56 5F4F sbci r21,hhi8(-(255))
6794 .L512:
6795 3a58 232F mov r18,r19
6796 3a5a 342F mov r19,r20
6797 3a5c 452F mov r20,r21
6798 3a5e 5527 clr r21
6799 3a60 47FD sbrc r20,7
6800 3a62 5A95 dec r21
6801 3a64 8091 0000 lds r24,LageKorrekturRoll
6802 3a68 9091 0000 lds r25,(LageKorrekturRoll)+1
6803 3a6c 820F add r24,r18
6804 3a6e 931F adc r25,r19
6805 3a70 9093 0000 sts (LageKorrekturRoll)+1,r25
6806 3a74 8093 0000 sts LageKorrekturRoll,r24
6807 3a78 06C0 rjmp .L514
6808 .L507:
6809 3a7a 81E0 ldi r24,lo8(1)
6810 3a7c 8093 0000 sts last_r_p.18,r24
6811 3a80 02C0 rjmp .L514
6812 .L506:
6813 3a82 1092 0000 sts last_r_p.18,__zero_reg__
6814 .L514:
6815 3a86 30E0 ldi r19,lo8(-4096)
6816 3a88 A316 cp r10,r19
6817 3a8a 30EF ldi r19,hi8(-4096)
6818 3a8c B306 cpc r11,r19
6819 3a8e 3FEF ldi r19,hlo8(-4096)
6820 3a90 C306 cpc r12,r19
6821 3a92 3FEF ldi r19,hhi8(-4096)
6822 3a94 D306 cpc r13,r19
6823 3a96 0CF0 brlt .+2
6824 3a98 73C0 rjmp .L515
6825 3a9a 8091 0000 lds r24,last_r_n.19
6826 3a9e 8823 tst r24
6827 3aa0 09F4 brne .+2
6828 3aa2 6AC0 rjmp .L516
6829 3aa4 D601 movw r26,r12
6830 3aa6 C501 movw r24,r10
6831 3aa8 D7FE sbrs r13,7
6832 3aaa 07C0 rjmp .L517
6833 3aac 8827 clr r24
6834 3aae 9927 clr r25
6835 3ab0 DC01 movw r26,r24
6836 3ab2 8A19 sub r24,r10
6837 3ab4 9B09 sbc r25,r11
6838 3ab6 AC09 sbc r26,r12
6839 3ab8 BD09 sbc r27,r13
6840 .L517:
6841 3aba 9C01 movw r18,r24
6842 3abc AD01 movw r20,r26
6843 3abe B7FF sbrs r27,7
6844 3ac0 04C0 rjmp .L518
6845 3ac2 2150 subi r18,lo8(-(511))
6846 3ac4 3E4F sbci r19,hi8(-(511))
6847 3ac6 4F4F sbci r20,hlo8(-(511))
6848 3ac8 5F4F sbci r21,hhi8(-(511))
6849 .L518:
6850 3aca 09E0 ldi r16,9
6851 3acc 5595 1: asr r21
6852 3ace 4795 ror r20
6853 3ad0 3795 ror r19
6854 3ad2 2795 ror r18
6855 3ad4 0A95 dec r16
6856 3ad6 D1F7 brne 1b
6857 3ad8 8091 0000 lds r24,cnt.15
6858 3adc 9091 0000 lds r25,(cnt.15)+1
6859 3ae0 820F add r24,r18
6860 3ae2 931F adc r25,r19
6861 3ae4 9093 0000 sts (cnt.15)+1,r25
6862 3ae8 8093 0000 sts cnt.15,r24
6863 3aec D601 movw r26,r12
6864 3aee C501 movw r24,r10
6865 3af0 D7FE sbrs r13,7
6866 3af2 03C0 rjmp .L519
6867 3af4 0796 adiw r24,7
6868 3af6 A11D adc r26,__zero_reg__
6869 3af8 B11D adc r27,__zero_reg__
6870 .L519:
6871 3afa 13E0 ldi r17,3
6872 3afc B595 1: asr r27
6873 3afe A795 ror r26
6874 3b00 9795 ror r25
6875 3b02 8795 ror r24
6876 3b04 1A95 dec r17
6877 3b06 D1F7 brne 1b
6878 3b08 8093 0000 sts ausgleichRoll.12,r24
6879 3b0c 9093 0000 sts (ausgleichRoll.12)+1,r25
6880 3b10 A093 0000 sts (ausgleichRoll.12)+2,r26
6881 3b14 B093 0000 sts (ausgleichRoll.12)+3,r27
6882 3b18 8857 subi r24,lo8(-5000)
6883 3b1a 9C4E sbci r25,hi8(-5000)
6884 3b1c AF4F sbci r26,hlo8(-5000)
6885 3b1e BF4F sbci r27,hhi8(-5000)
6886 3b20 64F4 brge .L520
6887 3b22 88E7 ldi r24,lo8(-5000)
6888 3b24 9CEE ldi r25,hi8(-5000)
6889 3b26 AFEF ldi r26,hlo8(-5000)
6890 3b28 BFEF ldi r27,hhi8(-5000)
6891 3b2a 8093 0000 sts ausgleichRoll.12,r24
6892 3b2e 9093 0000 sts (ausgleichRoll.12)+1,r25
6893 3b32 A093 0000 sts (ausgleichRoll.12)+2,r26
6894 3b36 B093 0000 sts (ausgleichRoll.12)+3,r27
6895 .L520:
6896 3b3a 2091 0000 lds r18,ausgleichRoll.12
6897 3b3e 3091 0000 lds r19,(ausgleichRoll.12)+1
6898 3b42 4091 0000 lds r20,(ausgleichRoll.12)+2
6899 3b46 5091 0000 lds r21,(ausgleichRoll.12)+3
6900 3b4a 57FF sbrs r21,7
6901 3b4c 04C0 rjmp .L521
6902 3b4e 2150 subi r18,lo8(-(255))
6903 3b50 3F4F sbci r19,hi8(-(255))
6904 3b52 4F4F sbci r20,hlo8(-(255))
6905 3b54 5F4F sbci r21,hhi8(-(255))
6906 .L521:
6907 3b56 232F mov r18,r19
6908 3b58 342F mov r19,r20
6909 3b5a 452F mov r20,r21
6910 3b5c 5527 clr r21
6911 3b5e 47FD sbrc r20,7
6912 3b60 5A95 dec r21
6913 3b62 8091 0000 lds r24,LageKorrekturRoll
6914 3b66 9091 0000 lds r25,(LageKorrekturRoll)+1
6915 3b6a 820F add r24,r18
6916 3b6c 931F adc r25,r19
6917 3b6e 9093 0000 sts (LageKorrekturRoll)+1,r25
6918 3b72 8093 0000 sts LageKorrekturRoll,r24
6919 3b76 11C0 rjmp .L524
6920 .L516:
6921 3b78 81E0 ldi r24,lo8(1)
6922 3b7a 8093 0000 sts last_r_n.19,r24
6923 3b7e 0DC0 rjmp .L524
6924 .L515:
6925 3b80 1092 0000 sts last_r_n.19,__zero_reg__
6926 3b84 0AC0 rjmp .L524
6927 .L504:
6928 3b86 1092 0000 sts (cnt.15)+1,__zero_reg__
6929 3b8a 1092 0000 sts cnt.15,__zero_reg__
6930 3b8e 88EE ldi r24,lo8(1000)
6931 3b90 93E0 ldi r25,hi8(1000)
6932 3b92 9093 0000 sts (KompassSignalSchlecht)+1,r25
6933 3b96 8093 0000 sts KompassSignalSchlecht,r24
6934 .L524:
6935 3b9a 5BA5 ldd r21,Y+43
6936 3b9c 252F mov r18,r21
6937 3b9e 3327 clr r19
6938 3ba0 8091 0000 lds r24,cnt.15
6939 3ba4 9091 0000 lds r25,(cnt.15)+1
6940 3ba8 2817 cp r18,r24
6941 3baa 3907 cpc r19,r25
6942 3bac 24F4 brge .L525
6943 3bae 3093 0000 sts (cnt.15)+1,r19
6944 3bb2 2093 0000 sts cnt.15,r18
6945 .L525:
6946 3bb6 8091 0000 lds r24,FromNaviCtrl_Value+1
6947 3bba 8823 tst r24
6948 3bbc 79F0 breq .L526
6949 3bbe 282F mov r18,r24
6950 3bc0 3327 clr r19
6951 3bc2 27FD sbrc r18,7
6952 3bc4 3095 com r19
6953 3bc6 8091 0000 lds r24,cnt.15
6954 3bca 9091 0000 lds r25,(cnt.15)+1
6955 3bce 2817 cp r18,r24
6956 3bd0 3907 cpc r19,r25
6957 3bd2 24F4 brge .L526
6958 3bd4 3093 0000 sts (cnt.15)+1,r19
6959 3bd8 2093 0000 sts cnt.15,r18
6960 .L526:
6961 3bdc 4091 0000 lds r20,IntegralFehlerRoll.4
6962 3be0 5091 0000 lds r21,(IntegralFehlerRoll.4)+1
6963 3be4 6091 0000 lds r22,(IntegralFehlerRoll.4)+2
6964 3be8 7091 0000 lds r23,(IntegralFehlerRoll.4)+3
6965 3bec 4138 cpi r20,lo8(129)
6966 3bee 5105 cpc r21,__zero_reg__
6967 3bf0 6105 cpc r22,__zero_reg__
6968 3bf2 7105 cpc r23,__zero_reg__
6969 3bf4 74F0 brlt .L528
6970 3bf6 8091 0000 lds r24,AdNeutralRoll
6971 3bfa 9091 0000 lds r25,(AdNeutralRoll)+1
6972 3bfe 2091 0000 lds r18,cnt.15
6973 3c02 3091 0000 lds r19,(cnt.15)+1
6974 3c06 820F add r24,r18
6975 3c08 931F adc r25,r19
6976 3c0a 9093 0000 sts (AdNeutralRoll)+1,r25
6977 3c0e 8093 0000 sts AdNeutralRoll,r24
6978 .L528:
6979 3c12 4058 subi r20,lo8(-128)
6980 3c14 5F4F sbci r21,hi8(-128)
6981 3c16 6F4F sbci r22,hlo8(-128)
6982 3c18 7F4F sbci r23,hhi8(-128)
6983 3c1a CCF4 brge .L530
6984 3c1c 8091 0000 lds r24,AdNeutralRoll
6985 3c20 9091 0000 lds r25,(AdNeutralRoll)+1
6986 3c24 2091 0000 lds r18,cnt.15
6987 3c28 3091 0000 lds r19,(cnt.15)+1
6988 3c2c 821B sub r24,r18
6989 3c2e 930B sbc r25,r19
6990 3c30 9093 0000 sts (AdNeutralRoll)+1,r25
6991 3c34 8093 0000 sts AdNeutralRoll,r24
6992 3c38 0AC0 rjmp .L530
6993 .L456:
6994 3c3a 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__
6995 3c3e 1092 0000 sts LageKorrekturRoll,__zero_reg__
6996 3c42 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__
6997 3c46 1092 0000 sts LageKorrekturNick,__zero_reg__
6998 3c4a 1092 0000 sts TrichterFlug,__zero_reg__
6999 .L530:
7000 3c4e 8091 0000 lds r24,IntegralFaktor
7001 3c52 8823 tst r24
7002 3c54 41F4 brne .L531
7003 3c56 1092 0000 sts (LageKorrekturRoll)+1,__zero_reg__
7004 3c5a 1092 0000 sts LageKorrekturRoll,__zero_reg__
7005 3c5e 1092 0000 sts (LageKorrekturNick)+1,__zero_reg__
7006 3c62 1092 0000 sts LageKorrekturNick,__zero_reg__
7007 .L531:
7008 3c66 8091 0000 lds r24,MittelIntegralNick
7009 3c6a 9091 0000 lds r25,(MittelIntegralNick)+1
7010 3c6e A091 0000 lds r26,(MittelIntegralNick)+2
7011 3c72 B091 0000 lds r27,(MittelIntegralNick)+3
7012 3c76 8093 0000 sts MittelIntegralNick_Alt.20,r24
7013 3c7a 9093 0000 sts (MittelIntegralNick_Alt.20)+1,r25
7014 3c7e A093 0000 sts (MittelIntegralNick_Alt.20)+2,r26
7015 3c82 B093 0000 sts (MittelIntegralNick_Alt.20)+3,r27
7016 3c86 8091 0000 lds r24,MittelIntegralRoll
7017 3c8a 9091 0000 lds r25,(MittelIntegralRoll)+1
7018 3c8e A091 0000 lds r26,(MittelIntegralRoll)+2
7019 3c92 B091 0000 lds r27,(MittelIntegralRoll)+3
7020 3c96 8093 0000 sts MittelIntegralRoll_Alt.21,r24
7021 3c9a 9093 0000 sts (MittelIntegralRoll_Alt.21)+1,r25
7022 3c9e A093 0000 sts (MittelIntegralRoll_Alt.21)+2,r26
7023 3ca2 B093 0000 sts (MittelIntegralRoll_Alt.21)+3,r27
7024 3ca6 1092 0000 sts IntegralAccNick,__zero_reg__
7025 3caa 1092 0000 sts (IntegralAccNick)+1,__zero_reg__
7026 3cae 1092 0000 sts (IntegralAccNick)+2,__zero_reg__
7027 3cb2 1092 0000 sts (IntegralAccNick)+3,__zero_reg__
7028 3cb6 1092 0000 sts IntegralAccRoll,__zero_reg__
7029 3cba 1092 0000 sts (IntegralAccRoll)+1,__zero_reg__
7030 3cbe 1092 0000 sts (IntegralAccRoll)+2,__zero_reg__
7031 3cc2 1092 0000 sts (IntegralAccRoll)+3,__zero_reg__
7032 3cc6 1092 0000 sts IntegralAccZ,__zero_reg__
7033 3cca 1092 0000 sts (IntegralAccZ)+1,__zero_reg__
7034 3cce 1092 0000 sts (IntegralAccZ)+2,__zero_reg__
7035 3cd2 1092 0000 sts (IntegralAccZ)+3,__zero_reg__
7036 3cd6 1092 0000 sts MittelIntegralNick,__zero_reg__
7037 3cda 1092 0000 sts (MittelIntegralNick)+1,__zero_reg__
7038 3cde 1092 0000 sts (MittelIntegralNick)+2,__zero_reg__
7039 3ce2 1092 0000 sts (MittelIntegralNick)+3,__zero_reg__
7040 3ce6 1092 0000 sts MittelIntegralRoll,__zero_reg__
7041 3cea 1092 0000 sts (MittelIntegralRoll)+1,__zero_reg__
7042 3cee 1092 0000 sts (MittelIntegralRoll)+2,__zero_reg__
7043 3cf2 1092 0000 sts (MittelIntegralRoll)+3,__zero_reg__
7044 3cf6 1092 0000 sts MittelIntegralNick2,__zero_reg__
7045 3cfa 1092 0000 sts (MittelIntegralNick2)+1,__zero_reg__
7046 3cfe 1092 0000 sts (MittelIntegralNick2)+2,__zero_reg__
7047 3d02 1092 0000 sts (MittelIntegralNick2)+3,__zero_reg__
7048 3d06 1092 0000 sts MittelIntegralRoll2,__zero_reg__
7049 3d0a 1092 0000 sts (MittelIntegralRoll2)+1,__zero_reg__
7050 3d0e 1092 0000 sts (MittelIntegralRoll2)+2,__zero_reg__
7051 3d12 1092 0000 sts (MittelIntegralRoll2)+3,__zero_reg__
7052 3d16 1092 0000 sts (ZaehlMessungen)+1,__zero_reg__
7053 3d1a 1092 0000 sts ZaehlMessungen,__zero_reg__
7054 .L455:
7055 3d1e 0091 0000 lds r16,StickGier
7056 3d22 1091 0000 lds r17,(StickGier)+1
7057 3d26 C801 movw r24,r16
7058 3d28 17FF sbrs r17,7
7059 3d2a 04C0 rjmp .L533
7060 3d2c 8827 clr r24
7061 3d2e 9927 clr r25
7062 3d30 801B sub r24,r16
7063 3d32 910B sbc r25,r17
7064 .L533:
7065 3d34 4097 sbiw r24,16
7066 3d36 6CF0 brlt .L532
7067 3d38 88EE ldi r24,lo8(1000)
7068 3d3a 93E0 ldi r25,hi8(1000)
7069 3d3c 9093 0000 sts (KompassSignalSchlecht)+1,r25
7070 3d40 8093 0000 sts KompassSignalSchlecht,r24
7071 3d44 8091 0000 lds r24,EE_Parameter+13
7072 3d48 84FD sbrc r24,4
7073 3d4a 03C0 rjmp .L532
7074 3d4c 81E0 ldi r24,lo8(1)
7075 3d4e 8093 0000 sts NeueKompassRichtungMerken.10,r24
7076 .L532:
7077 3d52 F090 0000 lds r15,EE_Parameter+25
7078 3d56 AF2C mov r10,r15
7079 3d58 BB24 clr r11
7080 3d5a CC24 clr r12
7081 3d5c DD24 clr r13
7082 3d5e B801 movw r22,r16
7083 3d60 8827 clr r24
7084 3d62 77FD sbrc r23,7
7085 3d64 8095 com r24
7086 3d66 982F mov r25,r24
7087 3d68 9801 movw r18,r16
7088 3d6a 17FF sbrs r17,7
7089 3d6c 04C0 rjmp .L535
7090 3d6e 2227 clr r18
7091 3d70 3327 clr r19
7092 3d72 201B sub r18,r16
7093 3d74 310B sbc r19,r17
7094 .L535:
7095 3d76 4427 clr r20
7096 3d78 37FD sbrc r19,7
7097 3d7a 4095 com r20
7098 3d7c 542F mov r21,r20
7099 3d7e 0E94 0000 call __mulsi3
7100 3d82 9B01 movw r18,r22
7101 3d84 AC01 movw r20,r24
7102 3d86 C601 movw r24,r12
7103 3d88 B501 movw r22,r10
7104 3d8a 0E94 0000 call __mulsi3
7105 3d8e 97FF sbrs r25,7
7106 3d90 04C0 rjmp .L536
7107 3d92 6150 subi r22,lo8(-(511))
7108 3d94 7E4F sbci r23,hi8(-(511))
7109 3d96 8F4F sbci r24,hlo8(-(511))
7110 3d98 9F4F sbci r25,hhi8(-(511))
7111 .L536:
7112 3d9a F9E0 ldi r31,9
7113 3d9c 9595 1: asr r25
7114 3d9e 8795 ror r24
7115 3da0 7795 ror r23
7116 3da2 6795 ror r22
7117 3da4 FA95 dec r31
7118 3da6 D1F7 brne 1b
7119 3da8 9B01 movw r18,r22
7120 3daa 8F2D mov r24,r15
7121 3dac 9927 clr r25
7122 3dae 809F mul r24,r16
7123 3db0 D001 movw r26,r0
7124 3db2 819F mul r24,r17
7125 3db4 B00D add r27,r0
7126 3db6 909F mul r25,r16
7127 3db8 B00D add r27,r0
7128 3dba 1124 clr r1
7129 3dbc CD01 movw r24,r26
7130 3dbe B7FD sbrc r27,7
7131 3dc0 0396 adiw r24,3
7132 .L537:
7133 3dc2 9595 asr r25
7134 3dc4 8795 ror r24
7135 3dc6 9595 asr r25
7136 3dc8 8795 ror r24
7137 3dca 280F add r18,r24
7138 3dcc 391F adc r19,r25
7139 3dce 4427 clr r20
7140 3dd0 37FD sbrc r19,7
7141 3dd2 4095 com r20
7142 3dd4 542F mov r21,r20
7143 3dd6 2093 0000 sts sollGier.0,r18
7144 3dda 3093 0000 sts (sollGier.0)+1,r19
7145 3dde 4093 0000 sts (sollGier.0)+2,r20
7146 3de2 5093 0000 sts (sollGier.0)+3,r21
7147 3de6 8091 0000 lds r24,Mess_Integral_Gier
7148 3dea 9091 0000 lds r25,(Mess_Integral_Gier)+1
7149 3dee A091 0000 lds r26,(Mess_Integral_Gier)+2
7150 3df2 B091 0000 lds r27,(Mess_Integral_Gier)+3
7151 3df6 821B sub r24,r18
7152 3df8 930B sbc r25,r19
7153 3dfa A40B sbc r26,r20
7154 3dfc B50B sbc r27,r21
7155 3dfe 8093 0000 sts Mess_Integral_Gier,r24
7156 3e02 9093 0000 sts (Mess_Integral_Gier)+1,r25
7157 3e06 A093 0000 sts (Mess_Integral_Gier)+2,r26
7158 3e0a B093 0000 sts (Mess_Integral_Gier)+3,r27
7159 3e0e 8155 subi r24,lo8(50001)
7160 3e10 934C sbci r25,hi8(50001)
7161 3e12 A040 sbci r26,hlo8(50001)
7162 3e14 B040 sbci r27,hhi8(50001)
7163 3e16 64F0 brlt .L538
7164 3e18 80E5 ldi r24,lo8(50000)
7165 3e1a 93EC ldi r25,hi8(50000)
7166 3e1c A0E0 ldi r26,hlo8(50000)
7167 3e1e B0E0 ldi r27,hhi8(50000)
7168 3e20 8093 0000 sts Mess_Integral_Gier,r24
7169 3e24 9093 0000 sts (Mess_Integral_Gier)+1,r25
7170 3e28 A093 0000 sts (Mess_Integral_Gier)+2,r26
7171 3e2c B093 0000 sts (Mess_Integral_Gier)+3,r27
7172 .L538:
7173 3e30 8091 0000 lds r24,Mess_Integral_Gier
7174 3e34 9091 0000 lds r25,(Mess_Integral_Gier)+1
7175 3e38 A091 0000 lds r26,(Mess_Integral_Gier)+2
7176 3e3c B091 0000 lds r27,(Mess_Integral_Gier)+3
7177 3e40 805B subi r24,lo8(-50000)
7178 3e42 9C43 sbci r25,hi8(-50000)
7179 3e44 AF4F sbci r26,hlo8(-50000)
7180 3e46 BF4F sbci r27,hhi8(-50000)
7181 3e48 64F4 brge .L539
7182 3e4a 80EB ldi r24,lo8(-50000)
7183 3e4c 9CE3 ldi r25,hi8(-50000)
7184 3e4e AFEF ldi r26,hlo8(-50000)
7185 3e50 BFEF ldi r27,hhi8(-50000)
7186 3e52 8093 0000 sts Mess_Integral_Gier,r24
7187 3e56 9093 0000 sts (Mess_Integral_Gier)+1,r25
7188 3e5a A093 0000 sts (Mess_Integral_Gier)+2,r26
7189 3e5e B093 0000 sts (Mess_Integral_Gier)+3,r27
7190 .L539:
7191 3e62 A090 0000 lds r10,KompassValue
7192 3e66 B090 0000 lds r11,(KompassValue)+1
7193 3e6a A114 cp r10,__zero_reg__
7194 3e6c B104 cpc r11,__zero_reg__
7195 3e6e 09F4 brne .+2
7196 3e70 78C1 rjmp .L540
7197 3e72 8091 0000 lds r24,EE_Parameter+13
7198 3e76 83FF sbrs r24,3
7199 3e78 74C1 rjmp .L540
7200 3e7a 8091 0000 lds r24,IntegralNick
7201 3e7e 9091 0000 lds r25,(IntegralNick)+1
7202 3e82 A091 0000 lds r26,(IntegralNick)+2
7203 3e86 B091 0000 lds r27,(IntegralNick)+3
7204 3e8a B7FF sbrs r27,7
7205 3e8c 04C0 rjmp .L541
7206 3e8e 8150 subi r24,lo8(-(511))
7207 3e90 9E4F sbci r25,hi8(-(511))
7208 3e92 AF4F sbci r26,hlo8(-(511))
7209 3e94 BF4F sbci r27,hhi8(-(511))
7210 .L541:
7211 3e96 79E0 ldi r23,9
7212 3e98 B595 1: asr r27
7213 3e9a A795 ror r26
7214 3e9c 9795 ror r25
7215 3e9e 8795 ror r24
7216 3ea0 7A95 dec r23
7217 3ea2 D1F7 brne 1b
7218 3ea4 6C01 movw r12,r24
7219 3ea6 97FF sbrs r25,7
7220 3ea8 04C0 rjmp .L542
7221 3eaa D094 com r13
7222 3eac C194 neg r12
7223 3eae D108 sbc r13,__zero_reg__
7224 3eb0 D394 inc r13
7225 .L542:
7226 3eb2 8091 0000 lds r24,IntegralRoll
7227 3eb6 9091 0000 lds r25,(IntegralRoll)+1
7228 3eba A091 0000 lds r26,(IntegralRoll)+2
7229 3ebe B091 0000 lds r27,(IntegralRoll)+3
7230 3ec2 B7FF sbrs r27,7
7231 3ec4 04C0 rjmp .L543
7232 3ec6 8150 subi r24,lo8(-(511))
7233 3ec8 9E4F sbci r25,hi8(-(511))
7234 3eca AF4F sbci r26,hlo8(-(511))
7235 3ecc BF4F sbci r27,hhi8(-(511))
7236 .L543:
7237 3ece 69E0 ldi r22,9
7238 3ed0 B595 1: asr r27
7239 3ed2 A795 ror r26
7240 3ed4 9795 ror r25
7241 3ed6 8795 ror r24
7242 3ed8 6A95 dec r22
7243 3eda D1F7 brne 1b
7244 3edc BC01 movw r22,r24
7245 3ede 97FF sbrs r25,7
7246 3ee0 03C0 rjmp .L544
7247 3ee2 7095 com r23
7248 3ee4 6195 neg r22
7249 3ee6 7F4F sbci r23,lo8(-1)
7250 .L544:
7251 3ee8 C616 cp r12,r22
7252 3eea D706 cpc r13,r23
7253 3eec 0CF4 brge .L545
7254 3eee 6B01 movw r12,r22
7255 .L545:
7256 3ef0 B601 movw r22,r12
7257 3ef2 D7FE sbrs r13,7
7258 3ef4 02C0 rjmp .L546
7259 3ef6 695F subi r22,lo8(-(7))
7260 3ef8 7F4F sbci r23,hi8(-(7))
7261 .L546:
7262 3efa 2B01 movw r4,r22
7263 3efc 53E0 ldi r21,3
7264 3efe 5594 1: asr r5
7265 3f00 4794 ror r4
7266 3f02 5A95 dec r21
7267 3f04 E1F7 brne 1b
7268 3f06 42E0 ldi r20,lo8(2)
7269 3f08 E42E mov r14,r20
7270 3f0a F12C mov r15,__zero_reg__
7271 3f0c 4E0C add r4,r14
7272 3f0e 5F1C adc r5,r15
7273 3f10 0CE1 ldi r16,lo8(540)
7274 3f12 12E0 ldi r17,hi8(540)
7275 3f14 A00E add r10,r16
7276 3f16 B11E adc r11,r17
7277 3f18 7501 movw r14,r10
7278 3f1a 0027 clr r16
7279 3f1c F7FC sbrc r15,7
7280 3f1e 0095 com r16
7281 3f20 102F mov r17,r16
7282 3f22 24EE ldi r18,lo8(-540)
7283 3f24 3DEF ldi r19,hi8(-540)
7284 3f26 A20E add r10,r18
7285 3f28 B31E adc r11,r19
7286 3f2a 8091 0000 lds r24,ErsatzKompass
7287 3f2e 9091 0000 lds r25,(ErsatzKompass)+1
7288 3f32 A091 0000 lds r26,(ErsatzKompass)+2
7289 3f36 B091 0000 lds r27,(ErsatzKompass)+3
7290 3f3a 6090 0000 lds r6,GIER_GRAD_FAKTOR
7291 3f3e 7090 0000 lds r7,(GIER_GRAD_FAKTOR)+1
7292 3f42 8090 0000 lds r8,(GIER_GRAD_FAKTOR)+2
7293 3f46 9090 0000 lds r9,(GIER_GRAD_FAKTOR)+3
7294 3f4a BC01 movw r22,r24
7295 3f4c CD01 movw r24,r26
7296 3f4e A401 movw r20,r8
7297 3f50 9301 movw r18,r6
7298 3f52 0E94 0000 call __divmodsi4
7299 3f56 E21A sub r14,r18
7300 3f58 F30A sbc r15,r19
7301 3f5a 040B sbc r16,r20
7302 3f5c 150B sbc r17,r21
7303 3f5e C801 movw r24,r16
7304 3f60 B701 movw r22,r14
7305 3f62 28E6 ldi r18,lo8(360)
7306 3f64 31E0 ldi r19,hi8(360)
7307 3f66 40E0 ldi r20,hlo8(360)
7308 3f68 50E0 ldi r21,hhi8(360)
7309 3f6a 0E94 0000 call __divmodsi4
7310 3f6e DC01 movw r26,r24
7311 3f70 CB01 movw r24,r22
7312 3f72 3CE4 ldi r19,lo8(-180)
7313 3f74 E32E mov r14,r19
7314 3f76 3FEF ldi r19,hi8(-180)
7315 3f78 F32E mov r15,r19
7316 3f7a E80E add r14,r24
7317 3f7c F91E adc r15,r25
7318 3f7e 0091 0000 lds r16,KompassSignalSchlecht
7319 3f82 1091 0000 lds r17,(KompassSignalSchlecht)+1
7320 3f86 0115 cp r16,__zero_reg__
7321 3f88 1105 cpc r17,__zero_reg__
7322 3f8a 89F5 brne .L547
7323 3f8c 39E1 ldi r19,lo8(25)
7324 3f8e C316 cp r12,r19
7325 3f90 D104 cpc r13,__zero_reg__
7326 3f92 6CF5 brge .L547
7327 3f94 8091 0000 lds r24,GierGyroFehler
7328 3f98 9091 0000 lds r25,(GierGyroFehler)+1
7329 3f9c 8E0D add r24,r14
7330 3f9e 9F1D adc r25,r15
7331 3fa0 9093 0000 sts (GierGyroFehler)+1,r25
7332 3fa4 8093 0000 sts GierGyroFehler,r24
7333 3fa8 8091 0000 lds r24,NeueKompassRichtungMerken.10
7334 3fac 8823 tst r24
7335 3fae F9F0 breq .L547
7336 3fb0 C501 movw r24,r10
7337 3fb2 AA27 clr r26
7338 3fb4 97FD sbrc r25,7
7339 3fb6 A095 com r26
7340 3fb8 BA2F mov r27,r26
7341 3fba BC01 movw r22,r24
7342 3fbc CD01 movw r24,r26
7343 3fbe A401 movw r20,r8
7344 3fc0 9301 movw r18,r6
7345 3fc2 0E94 0000 call __mulsi3
7346 3fc6 DC01 movw r26,r24
7347 3fc8 CB01 movw r24,r22
7348 3fca 8093 0000 sts ErsatzKompass,r24
7349 3fce 9093 0000 sts (ErsatzKompass)+1,r25
7350 3fd2 A093 0000 sts (ErsatzKompass)+2,r26
7351 3fd6 B093 0000 sts (ErsatzKompass)+3,r27
7352 3fda BC01 movw r22,r24
7353 3fdc CD01 movw r24,r26
7354 3fde 0E94 0000 call __divmodsi4
7355 3fe2 3093 0000 sts (KompassStartwert)+1,r19
7356 3fe6 2093 0000 sts KompassStartwert,r18
7357 3fea 1092 0000 sts NeueKompassRichtungMerken.10,__zero_reg__
7358 .L547:
7359 3fee C701 movw r24,r14
7360 3ff0 24E0 ldi r18,4
7361 3ff2 880F 1: lsl r24
7362 3ff4 991F rol r25
7363 3ff6 2A95 dec r18
7364 3ff8 E1F7 brne 1b
7365 3ffa B201 movw r22,r4
7366 3ffc 0E94 0000 call __divmodhi4
7367 4000 CB01 movw r24,r22
7368 4002 AA27 clr r26
7369 4004 97FD sbrc r25,7
7370 4006 A095 com r26
7371 4008 BA2F mov r27,r26
7372 400a 2091 0000 lds r18,ErsatzKompass
7373 400e 3091 0000 lds r19,(ErsatzKompass)+1
7374 4012 4091 0000 lds r20,(ErsatzKompass)+2
7375 4016 5091 0000 lds r21,(ErsatzKompass)+3
7376 401a 280F add r18,r24
7377 401c 391F adc r19,r25
7378 401e 4A1F adc r20,r26
7379 4020 5B1F adc r21,r27
7380 4022 2093 0000 sts ErsatzKompass,r18
7381 4026 3093 0000 sts (ErsatzKompass)+1,r19
7382 402a 4093 0000 sts (ErsatzKompass)+2,r20
7383 402e 5093 0000 sts (ErsatzKompass)+3,r21
7384 4032 F090 0000 lds r15,Parameter_KompassWirkung
7385 4036 6F2D mov r22,r15
7386 4038 7727 clr r23
7387 403a C69E mul r12,r22
7388 403c C001 movw r24,r0
7389 403e C79E mul r12,r23
7390 4040 900D add r25,r0
7391 4042 D69E mul r13,r22
7392 4044 900D add r25,r0
7393 4046 1124 clr r1
7394 4048 97FD sbrc r25,7
7395 404a 4F96 adiw r24,31
7396 .L549:
7397 404c 6C01 movw r12,r24
7398 404e 95E0 ldi r25,5
7399 4050 D594 1: asr r13
7400 4052 C794 ror r12
7401 4054 9A95 dec r25
7402 4056 E1F7 brne 1b
7403 4058 6C19 sub r22,r12
7404 405a 7D09 sbc r23,r13
7405 405c 6B01 movw r12,r22
7406 405e 77FD sbrc r23,7
7407 4060 7AC0 rjmp .L550
7408 4062 0115 cp r16,__zero_reg__
7409 4064 1105 cpc r17,__zero_reg__
7410 4066 09F0 breq .+2
7411 4068 6FC0 rjmp .L776
7412 406a 0091 0000 lds r16,MaxStickNick
7413 406e 1091 0000 lds r17,(MaxStickNick)+1
7414 4072 8091 0000 lds r24,MaxStickRoll
7415 4076 9091 0000 lds r25,(MaxStickRoll)+1
7416 407a 080F add r16,r24
7417 407c 191F adc r17,r25
7418 407e 17FF sbrs r17,7
7419 4080 02C0 rjmp .L552
7420 4082 095F subi r16,lo8(-(7))
7421 4084 1F4F sbci r17,hi8(-(7))
7422 .L552:
7423 4086 83E0 ldi r24,3
7424 4088 1595 1: asr r17
7425 408a 0795 ror r16
7426 408c 8A95 dec r24
7427 408e E1F7 brne 1b
7428 4090 005C subi r16,lo8(-(64))
7429 4092 1F4F sbci r17,hi8(-(64))
7430 4094 CA01 movw r24,r20
7431 4096 B901 movw r22,r18
7432 4098 A401 movw r20,r8
7433 409a 9301 movw r18,r6
7434 409c 0E94 0000 call __divmodsi4
7435 40a0 DA01 movw r26,r20
7436 40a2 C901 movw r24,r18
7437 40a4 2091 0000 lds r18,KompassStartwert
7438 40a8 3091 0000 lds r19,(KompassStartwert)+1
7439 40ac 4427 clr r20
7440 40ae 37FD sbrc r19,7
7441 40b0 4095 com r20
7442 40b2 542F mov r21,r20
7443 40b4 821B sub r24,r18
7444 40b6 930B sbc r25,r19
7445 40b8 A40B sbc r26,r20
7446 40ba B50B sbc r27,r21
7447 40bc 845E subi r24,lo8(-(540))
7448 40be 9D4F sbci r25,hi8(-(540))
7449 40c0 AF4F sbci r26,hlo8(-(540))
7450 40c2 BF4F sbci r27,hhi8(-(540))
7451 40c4 BC01 movw r22,r24
7452 40c6 CD01 movw r24,r26
7453 40c8 28E6 ldi r18,lo8(360)
7454 40ca 31E0 ldi r19,hi8(360)
7455 40cc 40E0 ldi r20,hlo8(360)
7456 40ce 50E0 ldi r21,hhi8(360)
7457 40d0 0E94 0000 call __divmodsi4
7458 40d4 DC01 movw r26,r24
7459 40d6 CB01 movw r24,r22
7460 40d8 845B subi r24,lo8(-(-180))
7461 40da 9040 sbci r25,hi8(-(-180))
7462 40dc 8C9D mul r24,r12
7463 40de A001 movw r20,r0
7464 40e0 8D9D mul r24,r13
7465 40e2 500D add r21,r0
7466 40e4 9C9D mul r25,r12
7467 40e6 500D add r21,r0
7468 40e8 1124 clr r1
7469 40ea CA01 movw r24,r20
7470 40ec B801 movw r22,r16
7471 40ee 0E94 0000 call __divmodhi4
7472 40f2 83E0 ldi r24,lo8(3)
7473 40f4 F89E mul r15,r24
7474 40f6 6001 movw r12,r0
7475 40f8 1124 clr r1
7476 40fa C616 cp r12,r22
7477 40fc D706 cpc r13,r23
7478 40fe 14F4 brge .L553
7479 4100 B601 movw r22,r12
7480 4102 08C0 rjmp .L554
7481 .L553:
7482 4104 8827 clr r24
7483 4106 9927 clr r25
7484 4108 8C19 sub r24,r12
7485 410a 9D09 sbc r25,r13
7486 410c 6817 cp r22,r24
7487 410e 7907 cpc r23,r25
7488 4110 0CF4 brge .L554
7489 4112 BC01 movw r22,r24
7490 .L554:
7491 4114 9B01 movw r18,r22
7492 4116 4427 clr r20
7493 4118 37FD sbrc r19,7
7494 411a 4095 com r20
7495 411c 542F mov r21,r20
7496 411e 8091 0000 lds r24,Mess_Integral_Gier
7497 4122 9091 0000 lds r25,(Mess_Integral_Gier)+1
7498 4126 A091 0000 lds r26,(Mess_Integral_Gier)+2
7499 412a B091 0000 lds r27,(Mess_Integral_Gier)+3
7500 412e 820F add r24,r18
7501 4130 931F adc r25,r19
7502 4132 A41F adc r26,r20
7503 4134 B51F adc r27,r21
7504 4136 8093 0000 sts Mess_Integral_Gier,r24
7505 413a 9093 0000 sts (Mess_Integral_Gier)+1,r25
7506 413e A093 0000 sts (Mess_Integral_Gier)+2,r26
7507 4142 B093 0000 sts (Mess_Integral_Gier)+3,r27
7508 4146 0DC0 rjmp .L540
7509 .L776:
7510 4148 0150 subi r16,lo8(-(-1))
7511 414a 1040 sbci r17,hi8(-(-1))
7512 414c 1093 0000 sts (KompassSignalSchlecht)+1,r17
7513 4150 0093 0000 sts KompassSignalSchlecht,r16
7514 4154 06C0 rjmp .L540
7515 .L550:
7516 4156 84EF ldi r24,lo8(500)
7517 4158 91E0 ldi r25,hi8(500)
7518 415a 9093 0000 sts (KompassSignalSchlecht)+1,r25
7519 415e 8093 0000 sts KompassSignalSchlecht,r24
7520 .L540:
7521 4162 8091 0000 lds r24,TrichterFlug
7522 4166 8823 tst r24
7523 4168 81F0 breq .L558
7524 416a 1092 0000 sts SummeRoll,__zero_reg__
7525 416e 1092 0000 sts (SummeRoll)+1,__zero_reg__
7526 4172 1092 0000 sts (SummeRoll)+2,__zero_reg__
7527 4176 1092 0000 sts (SummeRoll)+3,__zero_reg__
7528 417a 1092 0000 sts SummeNick,__zero_reg__
7529 417e 1092 0000 sts (SummeNick)+1,__zero_reg__
7530 4182 1092 0000 sts (SummeNick)+2,__zero_reg__
7531 4186 1092 0000 sts (SummeNick)+3,__zero_reg__
7532 .L558:
7533 418a 7090 0000 lds r7,Looping_Nick
7534 418e 7720 tst r7
7535 4190 F1F4 brne .L559
7536 4192 8091 0000 lds r24,IntegralFaktor
7537 4196 282F mov r18,r24
7538 4198 3327 clr r19
7539 419a 4427 clr r20
7540 419c 5527 clr r21
7541 419e 8091 0000 lds r24,IntegralNick
7542 41a2 9091 0000 lds r25,(IntegralNick)+1
7543 41a6 A091 0000 lds r26,(IntegralNick)+2
7544 41aa B091 0000 lds r27,(IntegralNick)+3
7545 41ae BC01 movw r22,r24
7546 41b0 CD01 movw r24,r26
7547 41b2 0E94 0000 call __mulsi3
7548 41b6 DC01 movw r26,r24
7549 41b8 CB01 movw r24,r22
7550 41ba BC01 movw r22,r24
7551 41bc CD01 movw r24,r26
7552 41be 28EF ldi r18,lo8(11000)
7553 41c0 3AE2 ldi r19,hi8(11000)
7554 41c2 40E0 ldi r20,hlo8(11000)
7555 41c4 50E0 ldi r21,hhi8(11000)
7556 41c6 0E94 0000 call __divmodsi4
7557 41ca 2901 movw r4,r18
7558 41cc 02C0 rjmp .L560
7559 .L559:
7560 41ce 4424 clr r4
7561 41d0 5524 clr r5
7562 .L560:
7563 41d2 9090 0000 lds r9,Looping_Roll
7564 41d6 9920 tst r9
7565 41d8 F1F4 brne .L561
7566 41da 8091 0000 lds r24,IntegralFaktor
7567 41de 282F mov r18,r24
7568 41e0 3327 clr r19
7569 41e2 4427 clr r20
7570 41e4 5527 clr r21
7571 41e6 8091 0000 lds r24,IntegralRoll
7572 41ea 9091 0000 lds r25,(IntegralRoll)+1
7573 41ee A091 0000 lds r26,(IntegralRoll)+2
7574 41f2 B091 0000 lds r27,(IntegralRoll)+3
7575 41f6 BC01 movw r22,r24
7576 41f8 CD01 movw r24,r26
7577 41fa 0E94 0000 call __mulsi3
7578 41fe DC01 movw r26,r24
7579 4200 CB01 movw r24,r22
7580 4202 BC01 movw r22,r24
7581 4204 CD01 movw r24,r26
7582 4206 28EF ldi r18,lo8(11000)
7583 4208 3AE2 ldi r19,hi8(11000)
7584 420a 40E0 ldi r20,hlo8(11000)
7585 420c 50E0 ldi r21,hhi8(11000)
7586 420e 0E94 0000 call __divmodsi4
7587 4212 1901 movw r2,r18
7588 4214 02C0 rjmp .L562
7589 .L561:
7590 4216 2224 clr r2
7591 4218 3324 clr r3
7592 .L562:
7593 421a 8091 0000 lds r24,TrimNick
7594 421e 9091 0000 lds r25,(TrimNick)+1
7595 4222 893C cpi r24,201
7596 4224 9105 cpc r25,__zero_reg__
7597 4226 1CF0 brlt .L563
7598 4228 88EC ldi r24,lo8(200)
7599 422a 90E0 ldi r25,hi8(200)
7600 422c 05C0 rjmp .L781
7601 .L563:
7602 422e 8853 subi r24,lo8(-200)
7603 4230 9F4F sbci r25,hi8(-200)
7604 4232 34F4 brge .L564
7605 4234 88E3 ldi r24,lo8(-200)
7606 4236 9FEF ldi r25,hi8(-200)
7607 .L781:
7608 4238 9093 0000 sts (TrimNick)+1,r25
7609 423c 8093 0000 sts TrimNick,r24
7610 .L564:
7611 4240 8091 0000 lds r24,TrimRoll
7612 4244 9091 0000 lds r25,(TrimRoll)+1
7613 4248 893C cpi r24,201
7614 424a 9105 cpc r25,__zero_reg__
7615 424c 1CF0 brlt .L566
7616 424e 88EC ldi r24,lo8(200)
7617 4250 90E0 ldi r25,hi8(200)
7618 4252 05C0 rjmp .L782
7619 .L566:
7620 4254 8853 subi r24,lo8(-200)
7621 4256 9F4F sbci r25,hi8(-200)
7622 4258 34F4 brge .L567
7623 425a 88E3 ldi r24,lo8(-200)
7624 425c 9FEF ldi r25,hi8(-200)
7625 .L782:
7626 425e 9093 0000 sts (TrimRoll)+1,r25
7627 4262 8093 0000 sts TrimRoll,r24
7628 .L567:
7629 4266 8091 0000 lds r24,MesswertNick
7630 426a 9091 0000 lds r25,(MesswertNick)+1
7631 426e AA27 clr r26
7632 4270 97FD sbrc r25,7
7633 4272 A095 com r26
7634 4274 BA2F mov r27,r26
7635 4276 2091 0000 lds r18,GyroFaktor
7636 427a A22E mov r10,r18
7637 427c BB24 clr r11
7638 427e CC24 clr r12
7639 4280 DD24 clr r13
7640 4282 BC01 movw r22,r24
7641 4284 CD01 movw r24,r26
7642 4286 A601 movw r20,r12
7643 4288 9501 movw r18,r10
7644 428a 0E94 0000 call __mulsi3
7645 428e 9B01 movw r18,r22
7646 4290 AC01 movw r20,r24
7647 4292 8091 0000 lds r24,TrimNick
7648 4296 9091 0000 lds r25,(TrimNick)+1
7649 429a AA27 clr r26
7650 429c 97FD sbrc r25,7
7651 429e A095 com r26
7652 42a0 BA2F mov r27,r26
7653 42a2 17E0 ldi r17,7
7654 42a4 880F 1: lsl r24
7655 42a6 991F rol r25
7656 42a8 AA1F rol r26
7657 42aa BB1F rol r27
7658 42ac 1A95 dec r17
7659 42ae D1F7 brne 1b
7660 42b0 280F add r18,r24
7661 42b2 391F adc r19,r25
7662 42b4 4A1F adc r20,r26
7663 42b6 5B1F adc r21,r27
7664 42b8 57FF sbrs r21,7
7665 42ba 04C0 rjmp .L569
7666 42bc 215C subi r18,lo8(-(63))
7667 42be 3F4F sbci r19,hi8(-(63))
7668 42c0 4F4F sbci r20,hlo8(-(63))
7669 42c2 5F4F sbci r21,hhi8(-(63))
7670 .L569:
7671 42c4 A6E0 ldi r26,6
7672 42c6 5595 1: asr r21
7673 42c8 4795 ror r20
7674 42ca 3795 ror r19
7675 42cc 2795 ror r18
7676 42ce AA95 dec r26
7677 42d0 D1F7 brne 1b
7678 42d2 7201 movw r14,r4
7679 42d4 E20E add r14,r18
7680 42d6 F31E adc r15,r19
7681 42d8 F092 0000 sts (MesswertNick)+1,r15
7682 42dc E092 0000 sts MesswertNick,r14
7683 42e0 8091 0000 lds r24,MesswertRoll
7684 42e4 9091 0000 lds r25,(MesswertRoll)+1
7685 42e8 AA27 clr r26
7686 42ea 97FD sbrc r25,7
7687 42ec A095 com r26
7688 42ee BA2F mov r27,r26
7689 42f0 BC01 movw r22,r24
7690 42f2 CD01 movw r24,r26
7691 42f4 A601 movw r20,r12
7692 42f6 9501 movw r18,r10
7693 42f8 0E94 0000 call __mulsi3
7694 42fc 9B01 movw r18,r22
7695 42fe AC01 movw r20,r24
7696 4300 8091 0000 lds r24,TrimRoll
7697 4304 9091 0000 lds r25,(TrimRoll)+1
7698 4308 AA27 clr r26
7699 430a 97FD sbrc r25,7
7700 430c A095 com r26
7701 430e BA2F mov r27,r26
7702 4310 F7E0 ldi r31,7
7703 4312 880F 1: lsl r24
7704 4314 991F rol r25
7705 4316 AA1F rol r26
7706 4318 BB1F rol r27
7707 431a FA95 dec r31
7708 431c D1F7 brne 1b
7709 431e 280F add r18,r24
7710 4320 391F adc r19,r25
7711 4322 4A1F adc r20,r26
7712 4324 5B1F adc r21,r27
7713 4326 57FF sbrs r21,7
7714 4328 04C0 rjmp .L570
7715 432a 215C subi r18,lo8(-(63))
7716 432c 3F4F sbci r19,hi8(-(63))
7717 432e 4F4F sbci r20,hlo8(-(63))
7718 4330 5F4F sbci r21,hhi8(-(63))
7719 .L570:
7720 4332 E6E0 ldi r30,6
7721 4334 5595 1: asr r21
7722 4336 4795 ror r20
7723 4338 3795 ror r19
7724 433a 2795 ror r18
7725 433c EA95 dec r30
7726 433e D1F7 brne 1b
7727 4340 8101 movw r16,r2
7728 4342 020F add r16,r18
7729 4344 131F adc r17,r19
7730 4346 1093 0000 sts (MesswertRoll)+1,r17
7731 434a 0093 0000 sts MesswertRoll,r16
7732 434e 8091 0000 lds r24,MesswertGier
7733 4352 9091 0000 lds r25,(MesswertGier)+1
7734 4356 880F add r24,r24
7735 4358 991F adc r25,r25
7736 435a AA27 clr r26
7737 435c 97FD sbrc r25,7
7738 435e A095 com r26
7739 4360 BA2F mov r27,r26
7740 4362 2091 0000 lds r18,GyroFaktorGier
7741 4366 3327 clr r19
7742 4368 4427 clr r20
7743 436a 5527 clr r21
7744 436c BC01 movw r22,r24
7745 436e CD01 movw r24,r26
7746 4370 0E94 0000 call __mulsi3
7747 4374 5B01 movw r10,r22
7748 4376 6C01 movw r12,r24
7749 4378 97FF sbrs r25,7
7750 437a 08C0 rjmp .L571
7751 437c 8FE3 ldi r24,lo8(63)
7752 437e 90E0 ldi r25,hi8(63)
7753 4380 A0E0 ldi r26,hlo8(63)
7754 4382 B0E0 ldi r27,hhi8(63)
7755 4384 A80E add r10,r24
7756 4386 B91E adc r11,r25
7757 4388 CA1E adc r12,r26
7758 438a DB1E adc r13,r27
7759 .L571:
7760 438c 76E0 ldi r23,6
7761 438e D594 1: asr r13
7762 4390 C794 ror r12
7763 4392 B794 ror r11
7764 4394 A794 ror r10
7765 4396 7A95 dec r23
7766 4398 D1F7 brne 1b
7767 439a 8091 0000 lds r24,IntegralFaktorGier
7768 439e 282F mov r18,r24
7769 43a0 3327 clr r19
7770 43a2 4427 clr r20
7771 43a4 5527 clr r21
7772 43a6 8091 0000 lds r24,Integral_Gier
7773 43aa 9091 0000 lds r25,(Integral_Gier)+1
7774 43ae A091 0000 lds r26,(Integral_Gier)+2
7775 43b2 B091 0000 lds r27,(Integral_Gier)+3
7776 43b6 BC01 movw r22,r24
7777 43b8 CD01 movw r24,r26
7778 43ba 0E94 0000 call __mulsi3
7779 43be DC01 movw r26,r24
7780 43c0 CB01 movw r24,r22
7781 43c2 BC01 movw r22,r24
7782 43c4 CD01 movw r24,r26
7783 43c6 20EF ldi r18,lo8(22000)
7784 43c8 35E5 ldi r19,hi8(22000)
7785 43ca 40E0 ldi r20,hlo8(22000)
7786 43cc 50E0 ldi r21,hhi8(22000)
7787 43ce 0E94 0000 call __divmodsi4
7788 43d2 B501 movw r22,r10
7789 43d4 620F add r22,r18
7790 43d6 731F adc r23,r19
7791 43d8 7093 0000 sts (MesswertGier)+1,r23
7792 43dc 6093 0000 sts MesswertGier,r22
7793 43e0 91E0 ldi r25,lo8(4097)
7794 43e2 E916 cp r14,r25
7795 43e4 90E1 ldi r25,hi8(4097)
7796 43e6 F906 cpc r15,r25
7797 43e8 34F0 brlt .L572
7798 43ea 80E0 ldi r24,lo8(4096)
7799 43ec 90E1 ldi r25,hi8(4096)
7800 43ee 9093 0000 sts (MesswertNick)+1,r25
7801 43f2 8093 0000 sts MesswertNick,r24
7802 .L572:
7803 43f6 8091 0000 lds r24,MesswertNick
7804 43fa 9091 0000 lds r25,(MesswertNick)+1
7805 43fe 8050 subi r24,lo8(-4096)
7806 4400 904F sbci r25,hi8(-4096)
7807 4402 34F4 brge .L573
7808 4404 80E0 ldi r24,lo8(-4096)
7809 4406 90EF ldi r25,hi8(-4096)
7810 4408 9093 0000 sts (MesswertNick)+1,r25
7811 440c 8093 0000 sts MesswertNick,r24
7812 .L573:
7813 4410 0150 subi r16,lo8(4097)
7814 4412 1041 sbci r17,hi8(4097)
7815 4414 34F0 brlt .L574
7816 4416 80E0 ldi r24,lo8(4096)
7817 4418 90E1 ldi r25,hi8(4096)
7818 441a 9093 0000 sts (MesswertRoll)+1,r25
7819 441e 8093 0000 sts MesswertRoll,r24
7820 .L574:
7821 4422 8091 0000 lds r24,MesswertRoll
7822 4426 9091 0000 lds r25,(MesswertRoll)+1
7823 442a 8050 subi r24,lo8(-4096)
7824 442c 904F sbci r25,hi8(-4096)
7825 442e 34F4 brge .L575
7826 4430 80E0 ldi r24,lo8(-4096)
7827 4432 90EF ldi r25,hi8(-4096)
7828 4434 9093 0000 sts (MesswertRoll)+1,r25
7829 4438 8093 0000 sts MesswertRoll,r24
7830 .L575:
7831 443c 6150 subi r22,lo8(4097)
7832 443e 7041 sbci r23,hi8(4097)
7833 4440 34F0 brlt .L576
7834 4442 80E0 ldi r24,lo8(4096)
7835 4444 90E1 ldi r25,hi8(4096)
7836 4446 9093 0000 sts (MesswertGier)+1,r25
7837 444a 8093 0000 sts MesswertGier,r24
7838 .L576:
7839 444e 8091 0000 lds r24,MesswertGier
7840 4452 9091 0000 lds r25,(MesswertGier)+1
7841 4456 8050 subi r24,lo8(-4096)
7842 4458 904F sbci r25,hi8(-4096)
7843 445a 34F4 brge .L577
7844 445c 80E0 ldi r24,lo8(-4096)
7845 445e 90EF ldi r25,hi8(-4096)
7846 4460 9093 0000 sts (MesswertGier)+1,r25
7847 4464 8093 0000 sts MesswertGier,r24
7848 .L577:
7849 4468 8091 0000 lds r24,BattLowVoltageWarning
7850 446c 482F mov r20,r24
7851 446e 5527 clr r21
7852 4470 8091 0000 lds r24,UBat
7853 4474 9091 0000 lds r25,(UBat)+1
7854 4478 4817 cp r20,r24
7855 447a 5907 cpc r21,r25
7856 447c 94F4 brge .L578
7857 447e 2091 0000 lds r18,UBat
7858 4482 3091 0000 lds r19,(UBat)+1
7859 4486 68A1 ldd r22,Y+32
7860 4488 79A1 ldd r23,Y+33
7861 448a 649F mul r22,r20
7862 448c C001 movw r24,r0
7863 448e 659F mul r22,r21
7864 4490 900D add r25,r0
7865 4492 749F mul r23,r20
7866 4494 900D add r25,r0
7867 4496 1124 clr r1
7868 4498 B901 movw r22,r18
7869 449a 0E94 0000 call __udivmodhi4
7870 449e 79A3 std Y+33,r23
7871 44a0 68A3 std Y+32,r22
7872 .L578:
7873 44a2 88A1 ldd r24,Y+32
7874 44a4 99A1 ldd r25,Y+33
7875 44a6 880F lsl r24
7876 44a8 991F rol r25
7877 44aa 880F lsl r24
7878 44ac 991F rol r25
7879 44ae 99A3 std Y+33,r25
7880 44b0 88A3 std Y+32,r24
7881 44b2 4091 0000 lds r20,EE_Parameter+13
7882 44b6 40FF sbrs r20,0
7883 44b8 92C6 rjmp .L579
7884 44ba 9920 tst r9
7885 44bc 09F0 breq .+2
7886 44be 8FC6 rjmp .L579
7887 44c0 7720 tst r7
7888 44c2 09F0 breq .+2
7889 44c4 8CC6 rjmp .L579
7890 44c6 CC24 clr r12
7891 44c8 DD24 clr r13
7892 44ca 4601 movw r8,r12
7893 44cc 8091 0000 lds r24,HoverGas
7894 44d0 9091 0000 lds r25,(HoverGas)+1
7895 44d4 9093 0000 sts (DebugOut+44)+1,r25
7896 44d8 8093 0000 sts DebugOut+44,r24
7897 44dc 2091 0000 lds r18,BaroExpandActive
7898 44e0 3091 0000 lds r19,(BaroExpandActive)+1
7899 44e4 2115 cp r18,__zero_reg__
7900 44e6 3105 cpc r19,__zero_reg__
7901 44e8 09F0 breq .+2
7902 44ea 3FC0 rjmp .L580
7903 44ec 8091 0000 lds r24,MessLuftdruck
7904 44f0 9091 0000 lds r25,(MessLuftdruck)+1
7905 44f4 8959 subi r24,lo8(921)
7906 44f6 9340 sbci r25,hi8(921)
7907 44f8 58F0 brlo .L581
7908 44fa 87B5 in r24,71-0x20
7909 44fc 853F cpi r24,lo8(-11)
7910 44fe 20F4 brsh .L582
7911 4500 8091 0000 lds r24,ExpandBaro
7912 4504 8150 subi r24,lo8(-(-1))
7913 4506 11C0 rjmp .L783
7914 .L582:
7915 4508 81E0 ldi r24,lo8(1)
7916 450a 8093 0000 sts BaroAtLowerLimit.30,r24
7917 450e 4EC0 rjmp .L589
7918 .L581:
7919 4510 8091 0000 lds r24,MessLuftdruck
7920 4514 9091 0000 lds r25,(MessLuftdruck)+1
7921 4518 8436 cpi r24,100
7922 451a 9105 cpc r25,__zero_reg__
7923 451c 08F5 brsh .L585
7924 451e 87B5 in r24,71-0x20
7925 4520 8B30 cpi r24,lo8(11)
7926 4522 D0F0 brlo .L586
7927 4524 8091 0000 lds r24,ExpandBaro
7928 4528 8F5F subi r24,lo8(-(1))
7929 .L783:
7930 452a 8093 0000 sts ExpandBaro,r24
7931 452e 9AE0 ldi r25,lo8(10)
7932 4530 8902 muls r24,r25
7933 4532 9001 movw r18,r0
7934 4534 1124 clr r1
7935 4536 8091 0000 lds r24,DruckOffsetSetting
7936 453a 821B sub r24,r18
7937 453c 87BD out 71-0x20,r24
7938 453e 8CE2 ldi r24,lo8(300)
7939 4540 91E0 ldi r25,hi8(300)
7940 4542 9093 0000 sts (beeptime)+1,r25
7941 4546 8093 0000 sts beeptime,r24
7942 454a 8EE5 ldi r24,lo8(350)
7943 454c 91E0 ldi r25,hi8(350)
7944 454e 9093 0000 sts (BaroExpandActive)+1,r25
7945 4552 8093 0000 sts BaroExpandActive,r24
7946 4556 2AC0 rjmp .L589
7947 .L586:
7948 4558 81E0 ldi r24,lo8(1)
7949 455a 8093 0000 sts BaroAtUpperLimit.29,r24
7950 455e 26C0 rjmp .L589
7951 .L585:
7952 4560 7092 0000 sts BaroAtUpperLimit.29,r7
7953 4564 7092 0000 sts BaroAtLowerLimit.30,r7
7954 4568 21C0 rjmp .L589
7955 .L580:
7956 456a 8091 0000 lds r24,HoehenWert
7957 456e 9091 0000 lds r25,(HoehenWert)+1
7958 4572 A091 0000 lds r26,(HoehenWert)+2
7959 4576 B091 0000 lds r27,(HoehenWert)+3
7960 457a 54E0 ldi r21,4
7961 457c 880F 1: lsl r24
7962 457e 991F rol r25
7963 4580 AA1F rol r26
7964 4582 BB1F rol r27
7965 4584 5A95 dec r21
7966 4586 D1F7 brne 1b
7967 4588 8093 0000 sts SummenHoehe,r24
7968 458c 9093 0000 sts (SummenHoehe)+1,r25
7969 4590 A093 0000 sts (SummenHoehe)+2,r26
7970 4594 B093 0000 sts (SummenHoehe)+3,r27
7971 4598 D092 0000 sts (VarioMeter)+1,r13
7972 459c C092 0000 sts VarioMeter,r12
7973 45a0 2150 subi r18,lo8(-(-1))
7974 45a2 3040 sbci r19,hi8(-(-1))
7975 45a4 3093 0000 sts (BaroExpandActive)+1,r19
7976 45a8 2093 0000 sts BaroExpandActive,r18
7977 .L589:
7978 45ac 2091 0000 lds r18,Parameter_MaxHoehe
7979 45b0 41FF sbrs r20,1
7980 45b2 24C0 rjmp .L590
7981 45b4 2233 cpi r18,lo8(50)
7982 45b6 D8F4 brsh .L591
7983 45b8 8091 0000 lds r24,delay.28
7984 45bc 8150 subi r24,lo8(-(-1))
7985 45be 8093 0000 sts delay.28,r24
7986 45c2 8F3F cpi r24,lo8(-1)
7987 45c4 D9F5 brne .L594
7988 45c6 1092 0000 sts HoehenReglerAktiv,__zero_reg__
7989 45ca 8091 0000 lds r24,HoehenWert
7990 45ce 9091 0000 lds r25,(HoehenWert)+1
7991 45d2 A091 0000 lds r26,(HoehenWert)+2
7992 45d6 B091 0000 lds r27,(HoehenWert)+3
7993 45da 8093 0000 sts SollHoehe,r24
7994 45de 9093 0000 sts (SollHoehe)+1,r25
7995 45e2 A093 0000 sts (SollHoehe)+2,r26
7996 45e6 B093 0000 sts (SollHoehe)+3,r27
7997 45ea 81E0 ldi r24,lo8(1)
7998 45ec 04C0 rjmp .L784
7999 .L591:
8000 45ee 81E0 ldi r24,lo8(1)
8001 45f0 8093 0000 sts HoehenReglerAktiv,r24
8002 45f4 88EC ldi r24,lo8(-56)
8003 .L784:
8004 45f6 8093 0000 sts delay.28,r24
8005 45fa 20C0 rjmp .L594
8006 .L590:
8007 45fc 8091 0000 lds r24,ExternHoehenValue
8008 4600 9091 0000 lds r25,(ExternHoehenValue)+1
8009 4604 820F add r24,r18
8010 4606 911D adc r25,__zero_reg__
8011 4608 2091 0000 lds r18,EE_Parameter+18
8012 460c 3327 clr r19
8013 460e 829F mul r24,r18
8014 4610 F001 movw r30,r0
8015 4612 839F mul r24,r19
8016 4614 F00D add r31,r0
8017 4616 929F mul r25,r18
8018 4618 F00D add r31,r0
8019 461a 1124 clr r1
8020 461c CF01 movw r24,r30
8021 461e AA27 clr r26
8022 4620 97FD sbrc r25,7
8023 4622 A095 com r26
8024 4624 BA2F mov r27,r26
8025 4626 8093 0000 sts SollHoehe,r24
8026 462a 9093 0000 sts (SollHoehe)+1,r25
8027 462e A093 0000 sts (SollHoehe)+2,r26
8028 4632 B093 0000 sts (SollHoehe)+3,r27
8029 4636 81E0 ldi r24,lo8(1)
8030 4638 8093 0000 sts HoehenReglerAktiv,r24
8031 .L594:
8032 463c 8091 0000 lds r24,IntegralNick
8033 4640 9091 0000 lds r25,(IntegralNick)+1
8034 4644 A091 0000 lds r26,(IntegralNick)+2
8035 4648 B091 0000 lds r27,(IntegralNick)+3
8036 464c E090 0000 lds r14,GIER_GRAD_FAKTOR
8037 4650 F090 0000 lds r15,(GIER_GRAD_FAKTOR)+1
8038 4654 0091 0000 lds r16,(GIER_GRAD_FAKTOR)+2
8039 4658 1091 0000 lds r17,(GIER_GRAD_FAKTOR)+3
8040 465c BC01 movw r22,r24
8041 465e CD01 movw r24,r26
8042 4660 A801 movw r20,r16
8043 4662 9701 movw r18,r14
8044 4664 0E94 0000 call __divmodsi4
8045 4668 5901 movw r10,r18
8046 466a 6A01 movw r12,r20
8047 466c 8091 0000 lds r24,IntegralRoll
8048 4670 9091 0000 lds r25,(IntegralRoll)+1
8049 4674 A091 0000 lds r26,(IntegralRoll)+2
8050 4678 B091 0000 lds r27,(IntegralRoll)+3
8051 467c BC01 movw r22,r24
8052 467e CD01 movw r24,r26
8053 4680 A801 movw r20,r16
8054 4682 9701 movw r18,r14
8055 4684 0E94 0000 call __divmodsi4
8056 4688 B901 movw r22,r18
8057 468a C501 movw r24,r10
8058 468c 0E94 0000 call ihypot
8059 4690 3C01 movw r6,r24
8060 4692 CC97 sbiw r24,60
8061 4694 1CF0 brlt .L595
8062 4696 4CE3 ldi r20,lo8(60)
8063 4698 642E mov r6,r20
8064 469a 712C mov r7,__zero_reg__
8065 .L595:
8066 469c C301 movw r24,r6
8067 469e 0E94 0000 call c_cos_8192
8068 46a2 3C01 movw r6,r24
8069 46a4 80E2 ldi r24,lo8(32)
8070 46a6 8093 0000 sts VarioCharacter,r24
8071 46aa 8091 0000 lds r24,HoehenReglerAktiv
8072 46ae 8823 tst r24
8073 46b0 09F4 brne .+2
8074 46b2 21C4 rjmp .L596
8075 46b4 8091 0000 lds r24,FCFlags
8076 46b8 9927 clr r25
8077 46ba 9C01 movw r18,r24
8078 46bc 2071 andi r18,lo8(16)
8079 46be 3070 andi r19,hi8(16)
8080 46c0 84FD sbrc r24,4
8081 46c2 19C4 rjmp .L596
8082 46c4 6091 0000 lds r22,EE_Parameter+99
8083 46c8 60FD sbrc r22,0
8084 46ca 04C0 rjmp .L598
8085 46cc 8091 0000 lds r24,EE_Parameter+13
8086 46d0 81FD sbrc r24,1
8087 46d2 07C0 rjmp .L597
8088 .L598:
8089 46d4 08A1 ldd r16,Y+32
8090 46d6 19A1 ldd r17,Y+33
8091 46d8 3093 0000 sts (HeightTrimming.22)+1,r19
8092 46dc 2093 0000 sts HeightTrimming.22,r18
8093 46e0 97C1 rjmp .L599
8094 .L597:
8095 46e2 8091 0000 lds r24,FCFlags
8096 46e6 81FF sbrs r24,1
8097 46e8 69C1 rjmp .L600
8098 46ea 4091 0000 lds r20,StickGasHover.24
8099 46ee 5091 0000 lds r21,(StickGasHover.24)+1
8100 46f2 CA01 movw r24,r20
8101 46f4 0F96 adiw r24,15
8102 46f6 2091 0000 lds r18,StickGas
8103 46fa 3091 0000 lds r19,(StickGas)+1
8104 46fe 8217 cp r24,r18
8105 4700 9307 cpc r25,r19
8106 4702 ACF5 brge .L601
8107 4704 8091 0000 lds r24,BaroAtUpperLimit.29
8108 4708 8823 tst r24
8109 470a 89F5 brne .L601
8110 470c 8091 0000 lds r24,HeightTrimmingFlag.31
8111 4710 81FF sbrs r24,1
8112 4712 13C0 rjmp .L602
8113 4714 8D7F andi r24,lo8(-3)
8114 4716 8093 0000 sts HeightTrimmingFlag.31,r24
8115 471a 8091 0000 lds r24,HoehenWert
8116 471e 9091 0000 lds r25,(HoehenWert)+1
8117 4722 A091 0000 lds r26,(HoehenWert)+2
8118 4726 B091 0000 lds r27,(HoehenWert)+3
8119 472a 8093 0000 sts SollHoehe,r24
8120 472e 9093 0000 sts (SollHoehe)+1,r25
8121 4732 A093 0000 sts (SollHoehe)+2,r26
8122 4736 B093 0000 sts (SollHoehe)+3,r27
8123 .L602:
8124 473a 8091 0000 lds r24,HeightTrimmingFlag.31
8125 473e 8160 ori r24,lo8(1)
8126 4740 8093 0000 sts HeightTrimmingFlag.31,r24
8127 4744 241B sub r18,r20
8128 4746 350B sbc r19,r21
8129 4748 2F50 subi r18,lo8(-(-15))
8130 474a 3040 sbci r19,hi8(-(-15))
8131 474c 37FF sbrs r19,7
8132 474e 03C0 rjmp .L603
8133 4750 3095 com r19
8134 4752 2195 neg r18
8135 4754 3F4F sbci r19,lo8(-1)
8136 .L603:
8137 4756 8091 0000 lds r24,HeightTrimming.22
8138 475a 9091 0000 lds r25,(HeightTrimming.22)+1
8139 475e 820F add r24,r18
8140 4760 931F adc r25,r19
8141 4762 9093 0000 sts (HeightTrimming.22)+1,r25
8142 4766 8093 0000 sts HeightTrimming.22,r24
8143 476a 8BE2 ldi r24,lo8(43)
8144 476c 6EC0 rjmp .L785
8145 .L601:
8146 476e CA01 movw r24,r20
8147 4770 0F97 sbiw r24,15
8148 4772 2817 cp r18,r24
8149 4774 3907 cpc r19,r25
8150 4776 ACF5 brge .L605
8151 4778 8091 0000 lds r24,BaroAtLowerLimit.30
8152 477c 8823 tst r24
8153 477e 89F5 brne .L605
8154 4780 8091 0000 lds r24,HeightTrimmingFlag.31
8155 4784 80FF sbrs r24,0
8156 4786 13C0 rjmp .L606
8157 4788 8E7F andi r24,lo8(-2)
8158 478a 8093 0000 sts HeightTrimmingFlag.31,r24
8159 478e 8091 0000 lds r24,HoehenWert
8160 4792 9091 0000 lds r25,(HoehenWert)+1
8161 4796 A091 0000 lds r26,(HoehenWert)+2
8162 479a B091 0000 lds r27,(HoehenWert)+3
8163 479e 8093 0000 sts SollHoehe,r24
8164 47a2 9093 0000 sts (SollHoehe)+1,r25
8165 47a6 A093 0000 sts (SollHoehe)+2,r26
8166 47aa B093 0000 sts (SollHoehe)+3,r27
8167 .L606:
8168 47ae 8091 0000 lds r24,HeightTrimmingFlag.31
8169 47b2 8260 ori r24,lo8(2)
8170 47b4 8093 0000 sts HeightTrimmingFlag.31,r24
8171 47b8 241B sub r18,r20
8172 47ba 350B sbc r19,r21
8173 47bc 215F subi r18,lo8(-(15))
8174 47be 3F4F sbci r19,hi8(-(15))
8175 47c0 37FF sbrs r19,7
8176 47c2 03C0 rjmp .L607
8177 47c4 3095 com r19
8178 47c6 2195 neg r18
8179 47c8 3F4F sbci r19,lo8(-1)
8180 .L607:
8181 47ca 8091 0000 lds r24,HeightTrimming.22
8182 47ce 9091 0000 lds r25,(HeightTrimming.22)+1
8183 47d2 821B sub r24,r18
8184 47d4 930B sbc r25,r19
8185 47d6 9093 0000 sts (HeightTrimming.22)+1,r25
8186 47da 8093 0000 sts HeightTrimming.22,r24
8187 47de 8DE2 ldi r24,lo8(45)
8188 47e0 34C0 rjmp .L785
8189 .L605:
8190 47e2 2091 0000 lds r18,HeightTrimmingFlag.31
8191 47e6 822F mov r24,r18
8192 47e8 9927 clr r25
8193 47ea 8370 andi r24,lo8(3)
8194 47ec 9070 andi r25,hi8(3)
8195 47ee 892B or r24,r25
8196 47f0 59F1 breq .L609
8197 47f2 2C7F andi r18,lo8(-4)
8198 47f4 2093 0000 sts HeightTrimmingFlag.31,r18
8199 47f8 1092 0000 sts (HeightTrimming.22)+1,__zero_reg__
8200 47fc 1092 0000 sts HeightTrimming.22,__zero_reg__
8201 4800 2091 0000 lds r18,HoehenWert
8202 4804 3091 0000 lds r19,(HoehenWert)+1
8203 4808 4091 0000 lds r20,(HoehenWert)+2
8204 480c 5091 0000 lds r21,(HoehenWert)+3
8205 4810 2093 0000 sts SollHoehe,r18
8206 4814 3093 0000 sts (SollHoehe)+1,r19
8207 4818 4093 0000 sts (SollHoehe)+2,r20
8208 481c 5093 0000 sts (SollHoehe)+3,r21
8209 4820 61FF sbrs r22,1
8210 4822 06C0 rjmp .L610
8211 4824 84EF ldi r24,lo8(500)
8212 4826 91E0 ldi r25,hi8(500)
8213 4828 9093 0000 sts (beeptime)+1,r25
8214 482c 8093 0000 sts beeptime,r24
8215 .L610:
8216 4830 8091 0000 lds r24,StartTrigger
8217 4834 8823 tst r24
8218 4836 41F4 brne .L609
8219 4838 2333 cpi r18,lo8(51)
8220 483a 3105 cpc r19,__zero_reg__
8221 483c 4105 cpc r20,__zero_reg__
8222 483e 5105 cpc r21,__zero_reg__
8223 4840 1CF0 brlt .L609
8224 4842 81E0 ldi r24,lo8(1)
8225 4844 8093 0000 sts StartTrigger,r24
8226 .L609:
8227 4848 8DE3 ldi r24,lo8(61)
8228 .L785:
8229 484a 8093 0000 sts VarioCharacter,r24
8230 484e 2091 0000 lds r18,HeightTrimming.22
8231 4852 3091 0000 lds r19,(HeightTrimming.22)+1
8232 4856 C901 movw r24,r18
8233 4858 37FF sbrs r19,7
8234 485a 04C0 rjmp .L613
8235 485c 8827 clr r24
8236 485e 9927 clr r25
8237 4860 821B sub r24,r18
8238 4862 930B sbc r25,r19
8239 .L613:
8240 4864 8150 subi r24,lo8(513)
8241 4866 9240 sbci r25,hi8(513)
8242 4868 0CF4 brge .+2
8243 486a 91C0 rjmp .L612
8244 486c 8091 0000 lds r24,EE_Parameter+18
8245 4870 9927 clr r25
8246 4872 289F mul r18,r24
8247 4874 A001 movw r20,r0
8248 4876 299F mul r18,r25
8249 4878 500D add r21,r0
8250 487a 389F mul r19,r24
8251 487c 500D add r21,r0
8252 487e 1124 clr r1
8253 4880 CA01 movw r24,r20
8254 4882 60E0 ldi r22,lo8(1280)
8255 4884 75E0 ldi r23,hi8(1280)
8256 4886 0E94 0000 call __divmodhi4
8257 488a CB01 movw r24,r22
8258 488c AA27 clr r26
8259 488e 97FD sbrc r25,7
8260 4890 A095 com r26
8261 4892 BA2F mov r27,r26
8262 4894 2091 0000 lds r18,SollHoehe
8263 4898 3091 0000 lds r19,(SollHoehe)+1
8264 489c 4091 0000 lds r20,(SollHoehe)+2
8265 48a0 5091 0000 lds r21,(SollHoehe)+3
8266 48a4 280F add r18,r24
8267 48a6 391F adc r19,r25
8268 48a8 4A1F adc r20,r26
8269 48aa 5B1F adc r21,r27
8270 48ac 2093 0000 sts SollHoehe,r18
8271 48b0 3093 0000 sts (SollHoehe)+1,r19
8272 48b4 4093 0000 sts (SollHoehe)+2,r20
8273 48b8 5093 0000 sts (SollHoehe)+3,r21
8274 48bc 1092 0000 sts (HeightTrimming.22)+1,__zero_reg__
8275 48c0 1092 0000 sts HeightTrimming.22,__zero_reg__
8276 48c4 A090 0000 lds r10,HoehenWert
8277 48c8 B090 0000 lds r11,(HoehenWert)+1
8278 48cc C090 0000 lds r12,(HoehenWert)+2
8279 48d0 D090 0000 lds r13,(HoehenWert)+3
8280 48d4 D601 movw r26,r12
8281 48d6 C501 movw r24,r10
8282 48d8 8050 subi r24,lo8(-(-1024))
8283 48da 9440 sbci r25,hi8(-(-1024))
8284 48dc A040 sbci r26,hlo8(-(-1024))
8285 48de B040 sbci r27,hhi8(-(-1024))
8286 48e0 8217 cp r24,r18
8287 48e2 9307 cpc r25,r19
8288 48e4 A407 cpc r26,r20
8289 48e6 B507 cpc r27,r21
8290 48e8 5CF4 brge .L786
8291 48ea D601 movw r26,r12
8292 48ec C501 movw r24,r10
8293 48ee 8050 subi r24,lo8(-(1024))
8294 48f0 9C4F sbci r25,hi8(-(1024))
8295 48f2 AF4F sbci r26,hlo8(-(1024))
8296 48f4 BF4F sbci r27,hhi8(-(1024))
8297 48f6 2817 cp r18,r24
8298 48f8 3907 cpc r19,r25
8299 48fa 4A07 cpc r20,r26
8300 48fc 5B07 cpc r21,r27
8301 48fe 44F0 brlt .L615
8302 .L786:
8303 4900 8093 0000 sts SollHoehe,r24
8304 4904 9093 0000 sts (SollHoehe)+1,r25
8305 4908 A093 0000 sts (SollHoehe)+2,r26
8306 490c B093 0000 sts (SollHoehe)+3,r27
8307 .L615:
8308 4910 8091 0000 lds r24,EE_Parameter+99
8309 4914 81FF sbrs r24,1
8310 4916 06C0 rjmp .L617
8311 4918 8BE4 ldi r24,lo8(75)
8312 491a 90E0 ldi r25,hi8(75)
8313 491c 9093 0000 sts (beeptime)+1,r25
8314 4920 8093 0000 sts beeptime,r24
8315 .L617:
8316 4924 8091 0000 lds r24,EE_Parameter+22
8317 4928 8823 tst r24
8318 492a 89F5 brne .L612
8319 492c 4091 0000 lds r20,HoverGas
8320 4930 5091 0000 lds r21,(HoverGas)+1
8321 4934 57FF sbrs r21,7
8322 4936 02C0 rjmp .L619
8323 4938 4D5F subi r20,lo8(-(3))
8324 493a 5F4F sbci r21,hi8(-(3))
8325 .L619:
8326 493c 5595 asr r21
8327 493e 4795 ror r20
8328 4940 5595 asr r21
8329 4942 4795 ror r20
8330 4944 8091 0000 lds r24,UBat
8331 4948 9091 0000 lds r25,(UBat)+1
8332 494c 2091 0000 lds r18,BattLowVoltageWarning
8333 4950 3327 clr r19
8334 4952 489F mul r20,r24
8335 4954 B001 movw r22,r0
8336 4956 499F mul r20,r25
8337 4958 700D add r23,r0
8338 495a 589F mul r21,r24
8339 495c 700D add r23,r0
8340 495e 1124 clr r1
8341 4960 CB01 movw r24,r22
8342 4962 B901 movw r22,r18
8343 4964 0E94 0000 call __divmodhi4
8344 4968 7093 0000 sts (StickGasHover.24)+1,r23
8345 496c 6093 0000 sts StickGasHover.24,r22
8346 4970 6634 cpi r22,70
8347 4972 7105 cpc r23,__zero_reg__
8348 4974 1CF4 brge .L620
8349 4976 86E4 ldi r24,lo8(70)
8350 4978 90E0 ldi r25,hi8(70)
8351 497a 05C0 rjmp .L787
8352 .L620:
8353 497c 6739 cpi r22,151
8354 497e 7105 cpc r23,__zero_reg__
8355 4980 34F0 brlt .L612
8356 4982 86E9 ldi r24,lo8(150)
8357 4984 90E0 ldi r25,hi8(150)
8358 .L787:
8359 4986 9093 0000 sts (StickGasHover.24)+1,r25
8360 498a 8093 0000 sts StickGasHover.24,r24
8361 .L612:
8362 498e 8091 0000 lds r24,BaroExpandActive
8363 4992 9091 0000 lds r25,(BaroExpandActive)+1
8364 4996 892B or r24,r25
8365 4998 B9F1 breq .L624
8366 499a 8091 0000 lds r24,HoehenWert
8367 499e 9091 0000 lds r25,(HoehenWert)+1
8368 49a2 A091 0000 lds r26,(HoehenWert)+2
8369 49a6 B091 0000 lds r27,(HoehenWert)+3
8370 49aa 8093 0000 sts SollHoehe,r24
8371 49ae 9093 0000 sts (SollHoehe)+1,r25
8372 49b2 A093 0000 sts (SollHoehe)+2,r26
8373 49b6 B093 0000 sts (SollHoehe)+3,r27
8374 49ba 26C0 rjmp .L624
8375 .L600:
8376 49bc 8091 0000 lds r24,HoehenWert
8377 49c0 9091 0000 lds r25,(HoehenWert)+1
8378 49c4 A091 0000 lds r26,(HoehenWert)+2
8379 49c8 B091 0000 lds r27,(HoehenWert)+3
8380 49cc 8059 subi r24,lo8(-(-400))
8381 49ce 9140 sbci r25,hi8(-(-400))
8382 49d0 A040 sbci r26,hlo8(-(-400))
8383 49d2 B040 sbci r27,hhi8(-(-400))
8384 49d4 8093 0000 sts SollHoehe,r24
8385 49d8 9093 0000 sts (SollHoehe)+1,r25
8386 49dc A093 0000 sts (SollHoehe)+2,r26
8387 49e0 B093 0000 sts (SollHoehe)+3,r27
8388 49e4 8091 0000 lds r24,EE_Parameter+22
8389 49e8 8823 tst r24
8390 49ea 11F0 breq .L625
8391 49ec 9927 clr r25
8392 49ee 02C0 rjmp .L788
8393 .L625:
8394 49f0 88E7 ldi r24,lo8(120)
8395 49f2 90E0 ldi r25,hi8(120)
8396 .L788:
8397 49f4 9093 0000 sts (StickGasHover.24)+1,r25
8398 49f8 8093 0000 sts StickGasHover.24,r24
8399 49fc 88A1 ldd r24,Y+32
8400 49fe 99A1 ldd r25,Y+33
8401 4a00 9093 0000 sts (HoverGas)+1,r25
8402 4a04 8093 0000 sts HoverGas,r24
8403 .L624:
8404 4a08 0091 0000 lds r16,HoverGas
8405 4a0c 1091 0000 lds r17,(HoverGas)+1
8406 .L599:
8407 4a10 A090 0000 lds r10,HoehenWert
8408 4a14 B090 0000 lds r11,(HoehenWert)+1
8409 4a18 C090 0000 lds r12,(HoehenWert)+2
8410 4a1c D090 0000 lds r13,(HoehenWert)+3
8411 4a20 2091 0000 lds r18,SollHoehe
8412 4a24 3091 0000 lds r19,(SollHoehe)+1
8413 4a28 4091 0000 lds r20,(SollHoehe)+2
8414 4a2c 5091 0000 lds r21,(SollHoehe)+3
8415 4a30 2A15 cp r18,r10
8416 4a32 3B05 cpc r19,r11
8417 4a34 4C05 cpc r20,r12
8418 4a36 5D05 cpc r21,r13
8419 4a38 24F0 brlt .L628
8420 4a3a 8091 0000 lds r24,EE_Parameter+99
8421 4a3e 80FD sbrc r24,0
8422 4a40 9CC2 rjmp .L682
8423 .L628:
8424 4a42 8091 0000 lds r24,BaroExpandActive
8425 4a46 9091 0000 lds r25,(BaroExpandActive)+1
8426 4a4a 892B or r24,r25
8427 4a4c 39F0 breq .L629
8428 4a4e 0091 0000 lds r16,HoverGas
8429 4a52 1091 0000 lds r17,(HoverGas)+1
8430 4a56 CC24 clr r12
8431 4a58 DD24 clr r13
8432 4a5a C9C0 rjmp .L630
8433 .L629:
8434 4a5c D601 movw r26,r12
8435 4a5e C501 movw r24,r10
8436 4a60 821B sub r24,r18
8437 4a62 930B sbc r25,r19
8438 4a64 A40B sbc r26,r20
8439 4a66 B50B sbc r27,r21
8440 4a68 8093 0000 sts tmp_long.1,r24
8441 4a6c 9093 0000 sts (tmp_long.1)+1,r25
8442 4a70 A093 0000 sts (tmp_long.1)+2,r26
8443 4a74 B093 0000 sts (tmp_long.1)+3,r27
8444 4a78 8230 cpi r24,lo8(-32766)
8445 4a7a E0E8 ldi r30,hi8(-32766)
8446 4a7c 9E07 cpc r25,r30
8447 4a7e EFEF ldi r30,hlo8(-32766)
8448 4a80 AE07 cpc r26,r30
8449 4a82 EFEF ldi r30,hhi8(-32766)
8450 4a84 BE07 cpc r27,r30
8451 4a86 2CF4 brge .L631
8452 4a88 81E0 ldi r24,lo8(-32767)
8453 4a8a 90E8 ldi r25,hi8(-32767)
8454 4a8c AFEF ldi r26,hlo8(-32767)
8455 4a8e BFEF ldi r27,hhi8(-32767)
8456 4a90 09C0 rjmp .L789
8457 .L631:
8458 4a92 8F5F subi r24,lo8(32767)
8459 4a94 9F47 sbci r25,hi8(32767)
8460 4a96 A040 sbci r26,hlo8(32767)
8461 4a98 B040 sbci r27,hhi8(32767)
8462 4a9a 64F0 brlt .L632
8463 4a9c 8FEF ldi r24,lo8(32767)
8464 4a9e 9FE7 ldi r25,hi8(32767)
8465 4aa0 A0E0 ldi r26,hlo8(32767)
8466 4aa2 B0E0 ldi r27,hhi8(32767)
8467 .L789:
8468 4aa4 8093 0000 sts tmp_long.1,r24
8469 4aa8 9093 0000 sts (tmp_long.1)+1,r25
8470 4aac A093 0000 sts (tmp_long.1)+2,r26
8471 4ab0 B093 0000 sts (tmp_long.1)+3,r27
8472 .L632:
8473 4ab4 C090 0000 lds r12,tmp_long.1
8474 4ab8 D090 0000 lds r13,(tmp_long.1)+1
8475 4abc 8091 0000 lds r24,Parameter_Hoehe_P
8476 4ac0 282F mov r18,r24
8477 4ac2 3327 clr r19
8478 4ac4 4427 clr r20
8479 4ac6 5527 clr r21
8480 4ac8 8091 0000 lds r24,tmp_long.1
8481 4acc 9091 0000 lds r25,(tmp_long.1)+1
8482 4ad0 A091 0000 lds r26,(tmp_long.1)+2
8483 4ad4 B091 0000 lds r27,(tmp_long.1)+3
8484 4ad8 BC01 movw r22,r24
8485 4ada CD01 movw r24,r26
8486 4adc 0E94 0000 call __mulsi3
8487 4ae0 97FF sbrs r25,7
8488 4ae2 04C0 rjmp .L634
8489 4ae4 615E subi r22,lo8(-(31))
8490 4ae6 7F4F sbci r23,hi8(-(31))
8491 4ae8 8F4F sbci r24,hlo8(-(31))
8492 4aea 9F4F sbci r25,hhi8(-(31))
8493 .L634:
8494 4aec 25E0 ldi r18,5
8495 4aee 9595 1: asr r25
8496 4af0 8795 ror r24
8497 4af2 7795 ror r23
8498 4af4 6795 ror r22
8499 4af6 2A95 dec r18
8500 4af8 D1F7 brne 1b
8501 4afa 6093 0000 sts tmp_long.1,r22
8502 4afe 7093 0000 sts (tmp_long.1)+1,r23
8503 4b02 8093 0000 sts (tmp_long.1)+2,r24
8504 4b06 9093 0000 sts (tmp_long.1)+3,r25
8505 4b0a 6530 cpi r22,lo8(-507)
8506 4b0c 2EEF ldi r18,hi8(-507)
8507 4b0e 7207 cpc r23,r18
8508 4b10 2FEF ldi r18,hlo8(-507)
8509 4b12 8207 cpc r24,r18
8510 4b14 2FEF ldi r18,hhi8(-507)
8511 4b16 9207 cpc r25,r18
8512 4b18 2CF4 brge .L635
8513 4b1a 84E0 ldi r24,lo8(-508)
8514 4b1c 9EEF ldi r25,hi8(-508)
8515 4b1e AFEF ldi r26,hlo8(-508)
8516 4b20 BFEF ldi r27,hhi8(-508)
8517 4b22 09C0 rjmp .L790
8518 .L635:
8519 4b24 6050 subi r22,lo8(1024)
8520 4b26 7440 sbci r23,hi8(1024)
8521 4b28 8040 sbci r24,hlo8(1024)
8522 4b2a 9040 sbci r25,hhi8(1024)
8523 4b2c 64F0 brlt .L636
8524 4b2e 80E0 ldi r24,lo8(1024)
8525 4b30 94E0 ldi r25,hi8(1024)
8526 4b32 A0E0 ldi r26,hlo8(1024)
8527 4b34 B0E0 ldi r27,hhi8(1024)
8528 .L790:
8529 4b36 8093 0000 sts tmp_long.1,r24
8530 4b3a 9093 0000 sts (tmp_long.1)+1,r25
8531 4b3e A093 0000 sts (tmp_long.1)+2,r26
8532 4b42 B093 0000 sts (tmp_long.1)+3,r27
8533 .L636:
8534 4b46 8090 0000 lds r8,tmp_long.1
8535 4b4a 9090 0000 lds r9,(tmp_long.1)+1
8536 4b4e 2091 0000 lds r18,VarioMeter
8537 4b52 3091 0000 lds r19,(VarioMeter)+1
8538 4b56 37FF sbrs r19,7
8539 4b58 02C0 rjmp .L638
8540 4b5a 295F subi r18,lo8(-(7))
8541 4b5c 3F4F sbci r19,hi8(-(7))
8542 .L638:
8543 4b5e 83E0 ldi r24,3
8544 4b60 3595 1: asr r19
8545 4b62 2795 ror r18
8546 4b64 8A95 dec r24
8547 4b66 E1F7 brne 1b
8548 4b68 4FEF ldi r20,hi8(-126)
8549 4b6a 2238 cpi r18,lo8(-126)
8550 4b6c 3407 cpc r19,r20
8551 4b6e 1CF4 brge .L639
8552 4b70 21E8 ldi r18,lo8(-127)
8553 4b72 3FEF ldi r19,hi8(-127)
8554 4b74 05C0 rjmp .L640
8555 .L639:
8556 4b76 2038 cpi r18,128
8557 4b78 3105 cpc r19,__zero_reg__
8558 4b7a 14F0 brlt .L640
8559 4b7c 20E8 ldi r18,lo8(128)
8560 4b7e 30E0 ldi r19,hi8(128)
8561 .L640:
8562 4b80 C901 movw r24,r18
8563 4b82 AA27 clr r26
8564 4b84 97FD sbrc r25,7
8565 4b86 A095 com r26
8566 4b88 BA2F mov r27,r26
8567 4b8a 2091 0000 lds r18,Parameter_Luftdruck_D
8568 4b8e 3327 clr r19
8569 4b90 4427 clr r20
8570 4b92 5527 clr r21
8571 4b94 BC01 movw r22,r24
8572 4b96 CD01 movw r24,r26
8573 4b98 0E94 0000 call __mulsi3
8574 4b9c 97FF sbrs r25,7
8575 4b9e 04C0 rjmp .L642
8576 4ba0 6D5F subi r22,lo8(-(3))
8577 4ba2 7F4F sbci r23,hi8(-(3))
8578 4ba4 8F4F sbci r24,hlo8(-(3))
8579 4ba6 9F4F sbci r25,hhi8(-(3))
8580 .L642:
8581 4ba8 B2E0 ldi r27,2
8582 4baa 9595 1: asr r25
8583 4bac 8795 ror r24
8584 4bae 7795 ror r23
8585 4bb0 6795 ror r22
8586 4bb2 BA95 dec r27
8587 4bb4 D1F7 brne 1b
8588 4bb6 9B01 movw r18,r22
8589 4bb8 5FEF ldi r21,hi8(-255)
8590 4bba 6130 cpi r22,lo8(-255)
8591 4bbc 7507 cpc r23,r21
8592 4bbe 1CF4 brge .L643
8593 4bc0 20E0 ldi r18,lo8(-256)
8594 4bc2 3FEF ldi r19,hi8(-256)
8595 4bc4 06C0 rjmp .L644
8596 .L643:
8597 4bc6 6F3F cpi r22,255
8598 4bc8 7105 cpc r23,__zero_reg__
8599 4bca 19F0 breq .L644
8600 4bcc 14F0 brlt .L644
8601 4bce 20E0 ldi r18,lo8(256)
8602 4bd0 31E0 ldi r19,hi8(256)
8603 .L644:
8604 4bd2 8091 0000 lds r24,HeightTrimmingFlag.31
8605 4bd6 8823 tst r24
8606 4bd8 41F0 breq .L646
8607 4bda C901 movw r24,r18
8608 4bdc 37FD sbrc r19,7
8609 4bde 0396 adiw r24,3
8610 .L647:
8611 4be0 9C01 movw r18,r24
8612 4be2 3595 asr r19
8613 4be4 2795 ror r18
8614 4be6 3595 asr r19
8615 4be8 2795 ror r18
8616 .L646:
8617 4bea 820E add r8,r18
8618 4bec 931E adc r9,r19
8619 .L630:
8620 4bee 2091 0000 lds r18,Parameter_Hoehe_ACC_Wirkung
8621 4bf2 2223 tst r18
8622 4bf4 09F4 brne .+2
8623 4bf6 54C0 rjmp .L648
8624 4bf8 6091 0000 lds r22,Mess_Integral_Hoch
8625 4bfc 7091 0000 lds r23,(Mess_Integral_Hoch)+1
8626 4c00 8091 0000 lds r24,(Mess_Integral_Hoch)+2
8627 4c04 9091 0000 lds r25,(Mess_Integral_Hoch)+3
8628 4c08 97FF sbrs r25,7
8629 4c0a 04C0 rjmp .L649
8630 4c0c 6158 subi r22,lo8(-(127))
8631 4c0e 7F4F sbci r23,hi8(-(127))
8632 4c10 8F4F sbci r24,hlo8(-(127))
8633 4c12 9F4F sbci r25,hhi8(-(127))
8634 .L649:
8635 4c14 F7E0 ldi r31,7
8636 4c16 9595 1: asr r25
8637 4c18 8795 ror r24
8638 4c1a 7795 ror r23
8639 4c1c 6795 ror r22
8640 4c1e FA95 dec r31
8641 4c20 D1F7 brne 1b
8642 4c22 3327 clr r19
8643 4c24 4427 clr r20
8644 4c26 5527 clr r21
8645 4c28 0E94 0000 call __mulsi3
8646 4c2c 97FF sbrs r25,7
8647 4c2e 04C0 rjmp .L650
8648 4c30 615E subi r22,lo8(-(31))
8649 4c32 7F4F sbci r23,hi8(-(31))
8650 4c34 8F4F sbci r24,hlo8(-(31))
8651 4c36 9F4F sbci r25,hhi8(-(31))
8652 .L650:
8653 4c38 E5E0 ldi r30,5
8654 4c3a 9595 1: asr r25
8655 4c3c 8795 ror r24
8656 4c3e 7795 ror r23
8657 4c40 6795 ror r22
8658 4c42 EA95 dec r30
8659 4c44 D1F7 brne 1b
8660 4c46 6093 0000 sts tmp_long.1,r22
8661 4c4a 7093 0000 sts (tmp_long.1)+1,r23
8662 4c4e 8093 0000 sts (tmp_long.1)+2,r24
8663 4c52 9093 0000 sts (tmp_long.1)+3,r25
8664 4c56 6138 cpi r22,lo8(-127)
8665 4c58 AFEF ldi r26,hi8(-127)
8666 4c5a 7A07 cpc r23,r26
8667 4c5c AFEF ldi r26,hlo8(-127)
8668 4c5e 8A07 cpc r24,r26
8669 4c60 AFEF ldi r26,hhi8(-127)
8670 4c62 9A07 cpc r25,r26
8671 4c64 2CF4 brge .L651
8672 4c66 80E8 ldi r24,lo8(-128)
8673 4c68 9FEF ldi r25,hi8(-128)
8674 4c6a AFEF ldi r26,hlo8(-128)
8675 4c6c BFEF ldi r27,hhi8(-128)
8676 4c6e 0AC0 rjmp .L791
8677 .L651:
8678 4c70 6F3F cpi r22,lo8(255)
8679 4c72 7105 cpc r23,__zero_reg__
8680 4c74 8105 cpc r24,__zero_reg__
8681 4c76 9105 cpc r25,__zero_reg__
8682 4c78 69F0 breq .L652
8683 4c7a 64F0 brlt .L652
8684 4c7c 80E0 ldi r24,lo8(256)
8685 4c7e 91E0 ldi r25,hi8(256)
8686 4c80 A0E0 ldi r26,hlo8(256)
8687 4c82 B0E0 ldi r27,hhi8(256)
8688 .L791:
8689 4c84 8093 0000 sts tmp_long.1,r24
8690 4c88 9093 0000 sts (tmp_long.1)+1,r25
8691 4c8c A093 0000 sts (tmp_long.1)+2,r26
8692 4c90 B093 0000 sts (tmp_long.1)+3,r27
8693 .L652:
8694 4c94 8091 0000 lds r24,tmp_long.1
8695 4c98 9091 0000 lds r25,(tmp_long.1)+1
8696 4c9c 880E add r8,r24
8697 4c9e 991E adc r9,r25
8698 .L648:
8699 4ca0 8091 0000 lds r24,Parameter_Hoehe_GPS_Z
8700 4ca4 282F mov r18,r24
8701 4ca6 3327 clr r19
8702 4ca8 8091 0000 lds r24,FromNaviCtrl_Value+4
8703 4cac 9927 clr r25
8704 4cae 87FD sbrc r24,7
8705 4cb0 9095 com r25
8706 4cb2 289F mul r18,r24
8707 4cb4 F001 movw r30,r0
8708 4cb6 299F mul r18,r25
8709 4cb8 F00D add r31,r0
8710 4cba 389F mul r19,r24
8711 4cbc F00D add r31,r0
8712 4cbe 1124 clr r1
8713 4cc0 9F01 movw r18,r30
8714 4cc2 F7FF sbrs r31,7
8715 4cc4 02C0 rjmp .L654
8716 4cc6 2158 subi r18,lo8(-(127))
8717 4cc8 3F4F sbci r19,hi8(-(127))
8718 .L654:
8719 4cca 220F lsl r18
8720 4ccc 232F mov r18,r19
8721 4cce 221F rol r18
8722 4cd0 330B sbc r19,r19
8723 4cd2 FFEF ldi r31,hi8(-127)
8724 4cd4 2138 cpi r18,lo8(-127)
8725 4cd6 3F07 cpc r19,r31
8726 4cd8 1CF4 brge .L655
8727 4cda 20E8 ldi r18,lo8(-128)
8728 4cdc 3FEF ldi r19,hi8(-128)
8729 4cde 06C0 rjmp .L656
8730 .L655:
8731 4ce0 2F3F cpi r18,255
8732 4ce2 3105 cpc r19,__zero_reg__
8733 4ce4 19F0 breq .L656
8734 4ce6 14F0 brlt .L656
8735 4ce8 20E0 ldi r18,lo8(256)
8736 4cea 31E0 ldi r19,hi8(256)
8737 .L656:
8738 4cec 820E add r8,r18
8739 4cee 931E adc r9,r19
8740 4cf0 C401 movw r24,r8
8741 4cf2 AA27 clr r26
8742 4cf4 97FD sbrc r25,7
8743 4cf6 A095 com r26
8744 4cf8 BA2F mov r27,r26
8745 4cfa E090 0000 lds r14,HoverGas
8746 4cfe F090 0000 lds r15,(HoverGas)+1
8747 4d02 9701 movw r18,r14
8748 4d04 4427 clr r20
8749 4d06 37FD sbrc r19,7
8750 4d08 4095 com r20
8751 4d0a 542F mov r21,r20
8752 4d0c BC01 movw r22,r24
8753 4d0e CD01 movw r24,r26
8754 4d10 0E94 0000 call __mulsi3
8755 4d14 97FF sbrs r25,7
8756 4d16 04C0 rjmp .L658
8757 4d18 6150 subi r22,lo8(-(511))
8758 4d1a 7E4F sbci r23,hi8(-(511))
8759 4d1c 8F4F sbci r24,hlo8(-(511))
8760 4d1e 9F4F sbci r25,hhi8(-(511))
8761 .L658:
8762 4d20 59E0 ldi r21,9
8763 4d22 9595 1: asr r25
8764 4d24 8795 ror r24
8765 4d26 7795 ror r23
8766 4d28 6795 ror r22
8767 4d2a 5A95 dec r21
8768 4d2c D1F7 brne 1b
8769 4d2e 061B sub r16,r22
8770 4d30 170B sbc r17,r23
8771 4d32 8091 0000 lds r24,HeightTrimming.22
8772 4d36 9091 0000 lds r25,(HeightTrimming.22)+1
8773 4d3a 892B or r24,r25
8774 4d3c 09F0 breq .+2
8775 4d3e 60C0 rjmp .L659
8776 4d40 1E14 cp __zero_reg__,r14
8777 4d42 1F04 cpc __zero_reg__,r15
8778 4d44 0CF0 brlt .+2
8779 4d46 5CC0 rjmp .L659
8780 4d48 9601 movw r18,r12
8781 4d4a D7FE sbrs r13,7
8782 4d4c 03C0 rjmp .L660
8783 4d4e 3095 com r19
8784 4d50 2195 neg r18
8785 4d52 3F4F sbci r19,lo8(-1)
8786 .L660:
8787 4d54 2D33 cpi r18,61
8788 4d56 3105 cpc r19,__zero_reg__
8789 4d58 40F4 brsh .L661
8790 4d5a 8091 0000 lds r24,HoverGasMin.25
8791 4d5e 9091 0000 lds r25,(HoverGasMin.25)+1
8792 4d62 8017 cp r24,r16
8793 4d64 9107 cpc r25,r17
8794 4d66 74F5 brge .L793
8795 4d68 26C0 rjmp .L802
8796 .L661:
8797 4d6a 2C53 subi r18,lo8(-(-60))
8798 4d6c 3040 sbci r19,hi8(-(-60))
8799 4d6e 45E0 ldi r20,5
8800 4d70 3695 1: lsr r19
8801 4d72 2795 ror r18
8802 4d74 4A95 dec r20
8803 4d76 E1F7 brne 1b
8804 4d78 2031 cpi r18,16
8805 4d7a 3105 cpc r19,__zero_reg__
8806 4d7c 10F0 brlo .L666
8807 4d7e 2FE0 ldi r18,lo8(15)
8808 4d80 30E0 ldi r19,hi8(15)
8809 .L666:
8810 4d82 4091 0000 lds r20,HoverGasMin.25
8811 4d86 5091 0000 lds r21,(HoverGasMin.25)+1
8812 4d8a 1C14 cp __zero_reg__,r12
8813 4d8c 1D04 cpc __zero_reg__,r13
8814 4d8e E4F4 brge .L667
8815 4d90 80E1 ldi r24,lo8(16)
8816 4d92 90E0 ldi r25,hi8(16)
8817 4d94 821B sub r24,r18
8818 4d96 930B sbc r25,r19
8819 4d98 489F mul r20,r24
8820 4d9a 9001 movw r18,r0
8821 4d9c 499F mul r20,r25
8822 4d9e 300D add r19,r0
8823 4da0 589F mul r21,r24
8824 4da2 300D add r19,r0
8825 4da4 1124 clr r1
8826 4da6 94E0 ldi r25,4
8827 4da8 3695 1: lsr r19
8828 4daa 2795 ror r18
8829 4dac 9A95 dec r25
8830 4dae E1F7 brne 1b
8831 4db0 2017 cp r18,r16
8832 4db2 3107 cpc r19,r17
8833 4db4 20F5 brsh .L792
8834 .L802:
8835 4db6 8091 0000 lds r24,HoverGasMax.26
8836 4dba 9091 0000 lds r25,(HoverGasMax.26)+1
8837 4dbe 0817 cp r16,r24
8838 4dc0 1907 cpc r17,r25
8839 4dc2 F4F0 brlt .L659
8840 .L793:
8841 4dc4 8C01 movw r16,r24
8842 4dc6 1CC0 rjmp .L659
8843 .L667:
8844 4dc8 205F subi r18,lo8(-(16))
8845 4dca 3F4F sbci r19,hi8(-(16))
8846 4dcc 8091 0000 lds r24,HoverGasMax.26
8847 4dd0 9091 0000 lds r25,(HoverGasMax.26)+1
8848 4dd4 829F mul r24,r18
8849 4dd6 B001 movw r22,r0
8850 4dd8 839F mul r24,r19
8851 4dda 700D add r23,r0
8852 4ddc 929F mul r25,r18
8853 4dde 700D add r23,r0
8854 4de0 1124 clr r1
8855 4de2 9B01 movw r18,r22
8856 4de4 84E0 ldi r24,4
8857 4de6 3695 1: lsr r19
8858 4de8 2795 ror r18
8859 4dea 8A95 dec r24
8860 4dec E1F7 brne 1b
8861 4dee 4017 cp r20,r16
8862 4df0 5107 cpc r21,r17
8863 4df2 14F0 brlt .L672
8864 4df4 8A01 movw r16,r20
8865 4df6 04C0 rjmp .L659
8866 .L672:
8867 4df8 0217 cp r16,r18
8868 4dfa 1307 cpc r17,r19
8869 4dfc 08F0 brlo .L659
8870 .L792:
8871 4dfe 8901 movw r16,r18
8872 .L659:
8873 4e00 C801 movw r24,r16
8874 4e02 AA27 clr r26
8875 4e04 97FD sbrc r25,7
8876 4e06 A095 com r26
8877 4e08 BA2F mov r27,r26
8878 4e0a 1DE0 ldi r17,13
8879 4e0c 880F 1: lsl r24
8880 4e0e 991F rol r25
8881 4e10 AA1F rol r26
8882 4e12 BB1F rol r27
8883 4e14 1A95 dec r17
8884 4e16 D1F7 brne 1b
8885 4e18 9301 movw r18,r6
8886 4e1a 4427 clr r20
8887 4e1c 37FD sbrc r19,7
8888 4e1e 4095 com r20
8889 4e20 542F mov r21,r20
8890 4e22 BC01 movw r22,r24
8891 4e24 CD01 movw r24,r26
8892 4e26 0E94 0000 call __divmodsi4
8893 4e2a 2093 0000 sts tmp_long2.2,r18
8894 4e2e 3093 0000 sts (tmp_long2.2)+1,r19
8895 4e32 4093 0000 sts (tmp_long2.2)+2,r20
8896 4e36 5093 0000 sts (tmp_long2.2)+3,r21
8897 4e3a 0091 0000 lds r16,tmp_long2.2
8898 4e3e 1091 0000 lds r17,(tmp_long2.2)+1
8899 4e42 8091 0000 lds r24,FilterHCGas.23
8900 4e46 9091 0000 lds r25,(FilterHCGas.23)+1
8901 4e4a 9C01 movw r18,r24
8902 4e4c 220F lsl r18
8903 4e4e 331F rol r19
8904 4e50 280F add r18,r24
8905 4e52 391F adc r19,r25
8906 4e54 200F add r18,r16
8907 4e56 311F adc r19,r17
8908 4e58 37FF sbrs r19,7
8909 4e5a 02C0 rjmp .L675
8910 4e5c 2D5F subi r18,lo8(-(3))
8911 4e5e 3F4F sbci r19,hi8(-(3))
8912 .L675:
8913 4e60 A901 movw r20,r18
8914 4e62 5595 asr r21
8915 4e64 4795 ror r20
8916 4e66 5595 asr r21
8917 4e68 4795 ror r20
8918 4e6a 5093 0000 sts (FilterHCGas.23)+1,r21
8919 4e6e 4093 0000 sts FilterHCGas.23,r20
8920 4e72 8091 0000 lds r24,EE_Parameter+14
8921 4e76 282F mov r18,r24
8922 4e78 3327 clr r19
8923 4e7a 220F lsl r18
8924 4e7c 331F rol r19
8925 4e7e 220F lsl r18
8926 4e80 331F rol r19
8927 4e82 2417 cp r18,r20
8928 4e84 3507 cpc r19,r21
8929 4e86 6CF4 brge .L794
8930 4e88 8091 0000 lds r24,MAX_GAS
8931 4e8c 282F mov r18,r24
8932 4e8e 3327 clr r19
8933 4e90 220F lsl r18
8934 4e92 331F rol r19
8935 4e94 220F lsl r18
8936 4e96 331F rol r19
8937 4e98 2055 subi r18,lo8(-(-80))
8938 4e9a 3040 sbci r19,hi8(-(-80))
8939 4e9c 4217 cp r20,r18
8940 4e9e 5307 cpc r21,r19
8941 4ea0 24F0 brlt .L677
8942 .L794:
8943 4ea2 3093 0000 sts (FilterHCGas.23)+1,r19
8944 4ea6 2093 0000 sts FilterHCGas.23,r18
8945 .L677:
8946 4eaa 8091 0000 lds r24,EE_Parameter+99
8947 4eae 80FF sbrs r24,0
8948 4eb0 0DC0 rjmp .L679
8949 4eb2 8091 0000 lds r24,FilterHCGas.23
8950 4eb6 9091 0000 lds r25,(FilterHCGas.23)+1
8951 4eba A8A1 ldd r26,Y+32
8952 4ebc B9A1 ldd r27,Y+33
8953 4ebe 8A17 cp r24,r26
8954 4ec0 9B07 cpc r25,r27
8955 4ec2 24F0 brlt .L679
8956 4ec4 B093 0000 sts (FilterHCGas.23)+1,r27
8957 4ec8 A093 0000 sts FilterHCGas.23,r26
8958 .L679:
8959 4ecc 28A1 ldd r18,Y+32
8960 4ece 39A1 ldd r19,Y+33
8961 4ed0 2E19 sub r18,r14
8962 4ed2 3F09 sbc r19,r15
8963 4ed4 37FF sbrs r19,7
8964 4ed6 02C0 rjmp .L681
8965 4ed8 2D5F subi r18,lo8(-(3))
8966 4eda 3F4F sbci r19,hi8(-(3))
8967 .L681:
8968 4edc 3595 asr r19
8969 4ede 2795 ror r18
8970 4ee0 3595 asr r19
8971 4ee2 2795 ror r18
8972 4ee4 E091 0000 lds r30,FilterHCGas.23
8973 4ee8 F091 0000 lds r31,(FilterHCGas.23)+1
8974 4eec E20F add r30,r18
8975 4eee F31F adc r31,r19
8976 4ef0 F9A3 std Y+33,r31
8977 4ef2 E8A3 std Y+32,r30
8978 4ef4 42C0 rjmp .L682
8979 .L596:
8980 4ef6 8091 0000 lds r24,EE_Parameter+22
8981 4efa 8823 tst r24
8982 4efc 01F5 brne .L683
8983 4efe 6091 0000 lds r22,HoverGas
8984 4f02 7091 0000 lds r23,(HoverGas)+1
8985 4f06 77FF sbrs r23,7
8986 4f08 02C0 rjmp .L684
8987 4f0a 6D5F subi r22,lo8(-(3))
8988 4f0c 7F4F sbci r23,hi8(-(3))
8989 .L684:
8990 4f0e 7595 asr r23
8991 4f10 6795 ror r22
8992 4f12 7595 asr r23
8993 4f14 6795 ror r22
8994 4f16 4091 0000 lds r20,UBat
8995 4f1a 5091 0000 lds r21,(UBat)+1
8996 4f1e 8091 0000 lds r24,BattLowVoltageWarning
8997 4f22 282F mov r18,r24
8998 4f24 3327 clr r19
8999 4f26 649F mul r22,r20
9000 4f28 C001 movw r24,r0
9001 4f2a 659F mul r22,r21
9002 4f2c 900D add r25,r0
9003 4f2e 749F mul r23,r20
9004 4f30 900D add r25,r0
9005 4f32 1124 clr r1
9006 4f34 B901 movw r22,r18
9007 4f36 0E94 0000 call __divmodhi4
9008 4f3a CB01 movw r24,r22
9009 4f3c 01C0 rjmp .L795
9010 .L683:
9011 4f3e 9927 clr r25
9012 .L795:
9013 4f40 9093 0000 sts (StickGasHover.24)+1,r25
9014 4f44 8093 0000 sts StickGasHover.24,r24
9015 4f48 8091 0000 lds r24,StickGasHover.24
9016 4f4c 9091 0000 lds r25,(StickGasHover.24)+1
9017 4f50 8734 cpi r24,71
9018 4f52 9105 cpc r25,__zero_reg__
9019 4f54 1CF4 brge .L686
9020 4f56 86E4 ldi r24,lo8(70)
9021 4f58 90E0 ldi r25,hi8(70)
9022 4f5a 05C0 rjmp .L796
9023 .L686:
9024 4f5c 8639 cpi r24,150
9025 4f5e 9105 cpc r25,__zero_reg__
9026 4f60 34F0 brlt .L687
9027 4f62 86E9 ldi r24,lo8(150)
9028 4f64 90E0 ldi r25,hi8(150)
9029 .L796:
9030 4f66 9093 0000 sts (StickGasHover.24)+1,r25
9031 4f6a 8093 0000 sts StickGasHover.24,r24
9032 .L687:
9033 4f6e E8A0 ldd r14,Y+32
9034 4f70 F9A0 ldd r15,Y+33
9035 4f72 F092 0000 sts (FilterHCGas.23)+1,r15
9036 4f76 E092 0000 sts FilterHCGas.23,r14
9037 .L682:
9038 4f7a 8091 0000 lds r24,FCFlags
9039 4f7e 9927 clr r25
9040 4f80 9C01 movw r18,r24
9041 4f82 2270 andi r18,lo8(2)
9042 4f84 3070 andi r19,hi8(2)
9043 4f86 81FF sbrs r24,1
9044 4f88 1CC1 rjmp .L689
9045 4f8a 8091 0000 lds r24,HoverGasFilter.27
9046 4f8e 9091 0000 lds r25,(HoverGasFilter.27)+1
9047 4f92 A091 0000 lds r26,(HoverGasFilter.27)+2
9048 4f96 B091 0000 lds r27,(HoverGasFilter.27)+3
9049 4f9a 0097 sbiw r24,0
9050 4f9c A105 cpc r26,__zero_reg__
9051 4f9e B105 cpc r27,__zero_reg__
9052 4fa0 21F0 breq .L691
9053 4fa2 8091 0000 lds r24,StartTrigger
9054 4fa6 8130 cpi r24,lo8(1)
9055 4fa8 B1F4 brne .L690
9056 .L691:
9057 4faa 08A1 ldd r16,Y+32
9058 4fac 19A1 ldd r17,Y+33
9059 4fae C801 movw r24,r16
9060 4fb0 AA27 clr r26
9061 4fb2 97FD sbrc r25,7
9062 4fb4 A095 com r26
9063 4fb6 BA2F mov r27,r26
9064 4fb8 2EE0 ldi r18,14
9065 4fba 880F 1: lsl r24
9066 4fbc 991F rol r25
9067 4fbe AA1F rol r26
9068 4fc0 BB1F rol r27
9069 4fc2 2A95 dec r18
9070 4fc4 D1F7 brne 1b
9071 4fc6 8093 0000 sts HoverGasFilter.27,r24
9072 4fca 9093 0000 sts (HoverGasFilter.27)+1,r25
9073 4fce A093 0000 sts (HoverGasFilter.27)+2,r26
9074 4fd2 B093 0000 sts (HoverGasFilter.27)+3,r27
9075 .L690:
9076 4fd6 8091 0000 lds r24,StartTrigger
9077 4fda 8130 cpi r24,lo8(1)
9078 4fdc 19F4 brne .L692
9079 4fde 82E0 ldi r24,lo8(2)
9080 4fe0 8093 0000 sts StartTrigger,r24
9081 .L692:
9082 4fe4 28A1 ldd r18,Y+32
9083 4fe6 39A1 ldd r19,Y+33
9084 4fe8 C901 movw r24,r18
9085 4fea AA27 clr r26
9086 4fec 97FD sbrc r25,7
9087 4fee A095 com r26
9088 4ff0 BA2F mov r27,r26
9089 4ff2 9301 movw r18,r6
9090 4ff4 4427 clr r20
9091 4ff6 37FD sbrc r19,7
9092 4ff8 4095 com r20
9093 4ffa 542F mov r21,r20
9094 4ffc BC01 movw r22,r24
9095 4ffe CD01 movw r24,r26
9096 5000 0E94 0000 call __mulsi3
9097 5004 DC01 movw r26,r24
9098 5006 CB01 movw r24,r22
9099 5008 8093 0000 sts tmp_long2.2,r24
9100 500c 9093 0000 sts (tmp_long2.2)+1,r25
9101 5010 A093 0000 sts (tmp_long2.2)+2,r26
9102 5014 B093 0000 sts (tmp_long2.2)+3,r27
9103 5018 B7FF sbrs r27,7
9104 501a 04C0 rjmp .L693
9105 501c 8150 subi r24,lo8(-(8191))
9106 501e 904E sbci r25,hi8(-(8191))
9107 5020 AF4F sbci r26,hlo8(-(8191))
9108 5022 BF4F sbci r27,hhi8(-(8191))
9109 .L693:
9110 5024 5C01 movw r10,r24
9111 5026 6D01 movw r12,r26
9112 5028 0DE0 ldi r16,13
9113 502a D594 1: asr r13
9114 502c C794 ror r12
9115 502e B794 ror r11
9116 5030 A794 ror r10
9117 5032 0A95 dec r16
9118 5034 D1F7 brne 1b
9119 5036 A092 0000 sts tmp_long2.2,r10
9120 503a B092 0000 sts (tmp_long2.2)+1,r11
9121 503e C092 0000 sts (tmp_long2.2)+2,r12
9122 5042 D092 0000 sts (tmp_long2.2)+3,r13
9123 5046 6091 0000 lds r22,modell_fliegt
9124 504a 7091 0000 lds r23,(modell_fliegt)+1
9125 504e 3FE0 ldi r19,hi8(4000)
9126 5050 603A cpi r22,lo8(4000)
9127 5052 7307 cpc r23,r19
9128 5054 50F5 brsh .L694
9129 5056 8091 0000 lds r24,HoverGasFilter.27
9130 505a 9091 0000 lds r25,(HoverGasFilter.27)+1
9131 505e A091 0000 lds r26,(HoverGasFilter.27)+2
9132 5062 B091 0000 lds r27,(HoverGasFilter.27)+3
9133 5066 9C01 movw r18,r24
9134 5068 AD01 movw r20,r26
9135 506a 1AE0 ldi r17,10
9136 506c 5695 1: lsr r21
9137 506e 4795 ror r20
9138 5070 3795 ror r19
9139 5072 2795 ror r18
9140 5074 1A95 dec r17
9141 5076 D1F7 brne 1b
9142 5078 821B sub r24,r18
9143 507a 930B sbc r25,r19
9144 507c A40B sbc r26,r20
9145 507e B50B sbc r27,r21
9146 5080 A601 movw r20,r12
9147 5082 9501 movw r18,r10
9148 5084 F4E0 ldi r31,4
9149 5086 220F 1: lsl r18
9150 5088 331F rol r19
9151 508a 441F rol r20
9152 508c 551F rol r21
9153 508e FA95 dec r31
9154 5090 D1F7 brne 1b
9155 5092 820F add r24,r18
9156 5094 931F adc r25,r19
9157 5096 A41F adc r26,r20
9158 5098 B51F adc r27,r21
9159 509a 8093 0000 sts HoverGasFilter.27,r24
9160 509e 9093 0000 sts (HoverGasFilter.27)+1,r25
9161 50a2 A093 0000 sts (HoverGasFilter.27)+2,r26
9162 50a6 B093 0000 sts (HoverGasFilter.27)+3,r27
9163 .L694:
9164 50aa 6054 subi r22,lo8(8000)
9165 50ac 7F41 sbci r23,hi8(8000)
9166 50ae 18F5 brsh .L695
9167 50b0 8091 0000 lds r24,HoverGasFilter.27
9168 50b4 9091 0000 lds r25,(HoverGasFilter.27)+1
9169 50b8 A091 0000 lds r26,(HoverGasFilter.27)+2
9170 50bc B091 0000 lds r27,(HoverGasFilter.27)+3
9171 50c0 9C01 movw r18,r24
9172 50c2 AD01 movw r20,r26
9173 50c4 ECE0 ldi r30,12
9174 50c6 5695 1: lsr r21
9175 50c8 4795 ror r20
9176 50ca 3795 ror r19
9177 50cc 2795 ror r18
9178 50ce EA95 dec r30
9179 50d0 D1F7 brne 1b
9180 50d2 821B sub r24,r18
9181 50d4 930B sbc r25,r19
9182 50d6 A40B sbc r26,r20
9183 50d8 B50B sbc r27,r21
9184 50da A601 movw r20,r12
9185 50dc 9501 movw r18,r10
9186 50de 72E0 ldi r23,2
9187 50e0 220F 1: lsl r18
9188 50e2 331F rol r19
9189 50e4 441F rol r20
9190 50e6 551F rol r21
9191 50e8 7A95 dec r23
9192 50ea D1F7 brne 1b
9193 50ec 820F add r24,r18
9194 50ee 931F adc r25,r19
9195 50f0 A41F adc r26,r20
9196 50f2 B51F adc r27,r21
9197 50f4 29C0 rjmp .L797
9198 .L695:
9199 50f6 8091 0000 lds r24,VarioMeter
9200 50fa 9091 0000 lds r25,(VarioMeter)+1
9201 50fe 8091 0000 lds r24,VarioMeter
9202 5102 9091 0000 lds r25,(VarioMeter)+1
9203 5106 97FF sbrs r25,7
9204 5108 03C0 rjmp .L698
9205 510a 9095 com r25
9206 510c 8195 neg r24
9207 510e 9F4F sbci r25,lo8(-1)
9208 .L698:
9209 5110 8436 cpi r24,100
9210 5112 9105 cpc r25,__zero_reg__
9211 5114 0CF5 brge .L696
9212 5116 8091 0000 lds r24,HoverGasFilter.27
9213 511a 9091 0000 lds r25,(HoverGasFilter.27)+1
9214 511e A091 0000 lds r26,(HoverGasFilter.27)+2
9215 5122 B091 0000 lds r27,(HoverGasFilter.27)+3
9216 5126 9C01 movw r18,r24
9217 5128 AD01 movw r20,r26
9218 512a 6EE0 ldi r22,14
9219 512c 5695 1: lsr r21
9220 512e 4795 ror r20
9221 5130 3795 ror r19
9222 5132 2795 ror r18
9223 5134 6A95 dec r22
9224 5136 D1F7 brne 1b
9225 5138 821B sub r24,r18
9226 513a 930B sbc r25,r19
9227 513c A40B sbc r26,r20
9228 513e B50B sbc r27,r21
9229 5140 8A0D add r24,r10
9230 5142 9B1D adc r25,r11
9231 5144 AC1D adc r26,r12
9232 5146 BD1D adc r27,r13
9233 .L797:
9234 5148 8093 0000 sts HoverGasFilter.27,r24
9235 514c 9093 0000 sts (HoverGasFilter.27)+1,r25
9236 5150 A093 0000 sts (HoverGasFilter.27)+2,r26
9237 5154 B093 0000 sts (HoverGasFilter.27)+3,r27
9238 .L696:
9239 5158 8091 0000 lds r24,HoverGasFilter.27
9240 515c 9091 0000 lds r25,(HoverGasFilter.27)+1
9241 5160 A091 0000 lds r26,(HoverGasFilter.27)+2
9242 5164 B091 0000 lds r27,(HoverGasFilter.27)+3
9243 5168 2EE0 ldi r18,14
9244 516a B695 1: lsr r27
9245 516c A795 ror r26
9246 516e 9795 ror r25
9247 5170 8795 ror r24
9248 5172 2A95 dec r18
9249 5174 D1F7 brne 1b
9250 5176 9093 0000 sts (HoverGas)+1,r25
9251 517a 8093 0000 sts HoverGas,r24
9252 517e 4091 0000 lds r20,EE_Parameter+20
9253 5182 4423 tst r20
9254 5184 99F0 breq .L699
9255 5186 5527 clr r21
9256 5188 9C01 movw r18,r24
9257 518a BA01 movw r22,r20
9258 518c 0E94 0000 call __divmodhi4
9259 5190 C901 movw r24,r18
9260 5192 861B sub r24,r22
9261 5194 970B sbc r25,r23
9262 5196 9093 0000 sts (HoverGasMin.25)+1,r25
9263 519a 8093 0000 sts HoverGasMin.25,r24
9264 519e 260F add r18,r22
9265 51a0 371F adc r19,r23
9266 51a2 3093 0000 sts (HoverGasMax.26)+1,r19
9267 51a6 2093 0000 sts HoverGasMax.26,r18
9268 51aa 19C0 rjmp .L579
9269 .L699:
9270 51ac 1092 0000 sts (HoverGasMin.25)+1,__zero_reg__
9271 51b0 1092 0000 sts HoverGasMin.25,__zero_reg__
9272 51b4 8FEF ldi r24,lo8(1023)
9273 51b6 93E0 ldi r25,hi8(1023)
9274 51b8 9093 0000 sts (HoverGasMax.26)+1,r25
9275 51bc 8093 0000 sts HoverGasMax.26,r24
9276 51c0 0EC0 rjmp .L579
9277 .L689:
9278 51c2 1092 0000 sts StartTrigger,__zero_reg__
9279 51c6 1092 0000 sts HoverGasFilter.27,__zero_reg__
9280 51ca 1092 0000 sts (HoverGasFilter.27)+1,__zero_reg__
9281 51ce 1092 0000 sts (HoverGasFilter.27)+2,__zero_reg__
9282 51d2 1092 0000 sts (HoverGasFilter.27)+3,__zero_reg__
9283 51d6 3093 0000 sts (HoverGas)+1,r19
9284 51da 2093 0000 sts HoverGas,r18
9285 .L579:
9286 51de 5091 0000 lds r21,MIN_GAS
9287 51e2 58AB std Y+48,r21
9288 51e4 252F mov r18,r21
9289 51e6 3327 clr r19
9290 51e8 220F lsl r18
9291 51ea 331F rol r19
9292 51ec 220F lsl r18
9293 51ee 331F rol r19
9294 51f0 285D subi r18,lo8(-(40))
9295 51f2 3F4F sbci r19,hi8(-(40))
9296 51f4 68A1 ldd r22,Y+32
9297 51f6 79A1 ldd r23,Y+33
9298 51f8 2617 cp r18,r22
9299 51fa 3707 cpc r19,r23
9300 51fc 14F0 brlt .L702
9301 51fe 39A3 std Y+33,r19
9302 5200 28A3 std Y+32,r18
9303 .L702:
9304 5202 7091 0000 lds r23,MAX_GAS
9305 5206 79AB std Y+49,r23
9306 5208 872F mov r24,r23
9307 520a 9927 clr r25
9308 520c 880F lsl r24
9309 520e 991F rol r25
9310 5210 880F lsl r24
9311 5212 991F rol r25
9312 5214 8055 subi r24,lo8(-(-80))
9313 5216 9040 sbci r25,hi8(-(-80))
9314 5218 A8A1 ldd r26,Y+32
9315 521a B9A1 ldd r27,Y+33
9316 521c 8A17 cp r24,r26
9317 521e 9B07 cpc r25,r27
9318 5220 14F4 brge .L703
9319 5222 99A3 std Y+33,r25
9320 5224 88A3 std Y+32,r24
9321 .L703:
9322 5226 8091 0000 lds r24,MissingMotor
9323 522a 8823 tst r24
9324 522c 21F4 brne .L705
9325 522e 8091 0000 lds r24,Capacity+6
9326 5232 8F3F cpi r24,lo8(-1)
9327 5234 A1F0 breq .L704
9328 .L705:
9329 5236 8091 0000 lds r24,modell_fliegt
9330 523a 9091 0000 lds r25,(modell_fliegt)+1
9331 523e 0297 sbiw r24,2
9332 5240 C097 sbiw r24,48
9333 5242 68F4 brsh .L704
9334 5244 E8A1 ldd r30,Y+32
9335 5246 F9A1 ldd r31,Y+33
9336 5248 1E16 cp __zero_reg__,r30
9337 524a 1F06 cpc __zero_reg__,r31
9338 524c 44F4 brge .L704
9339 524e 81E0 ldi r24,lo8(1)
9340 5250 90E0 ldi r25,hi8(1)
9341 5252 9093 0000 sts (modell_fliegt)+1,r25
9342 5256 8093 0000 sts modell_fliegt,r24
9343 525a 39A3 std Y+33,r19
9344 525c 28A3 std Y+32,r18
9345 .L704:
9346 525e E8A0 ldd r14,Y+32
9347 5260 F9A0 ldd r15,Y+33
9348 5262 F092 0000 sts (DebugOut+16)+1,r15
9349 5266 E092 0000 sts DebugOut+16,r14
9350 526a 8091 0000 lds r24,sollGier.0
9351 526e 9091 0000 lds r25,(sollGier.0)+1
9352 5272 A091 0000 lds r26,(sollGier.0)+2
9353 5276 B091 0000 lds r27,(sollGier.0)+3
9354 527a 12E0 ldi r17,2
9355 527c 880F 1: lsl r24
9356 527e 991F rol r25
9357 5280 AA1F rol r26
9358 5282 BB1F rol r27
9359 5284 1A95 dec r17
9360 5286 D1F7 brne 1b
9361 5288 C090 0000 lds r12,MesswertGier
9362 528c D090 0000 lds r13,(MesswertGier)+1
9363 5290 C81A sub r12,r24
9364 5292 D90A sbc r13,r25
9365 5294 8701 movw r16,r14
9366 5296 013A cpi r16,161
9367 5298 1105 cpc r17,__zero_reg__
9368 529a 8CF0 brlt .L707
9369 529c C701 movw r24,r14
9370 529e F7FC sbrc r15,7
9371 52a0 0196 adiw r24,1
9372 .L709:
9373 52a2 9595 asr r25
9374 52a4 8795 ror r24
9375 52a6 8C15 cp r24,r12
9376 52a8 9D05 cpc r25,r13
9377 52aa 0CF4 brge .L708
9378 52ac 6C01 movw r12,r24
9379 .L708:
9380 52ae 9095 com r25
9381 52b0 8195 neg r24
9382 52b2 9F4F sbci r25,lo8(-1)
9383 52b4 C816 cp r12,r24
9384 52b6 D906 cpc r13,r25
9385 52b8 94F4 brge .L714
9386 52ba 6C01 movw r12,r24
9387 52bc 10C0 rjmp .L714
9388 .L707:
9389 52be 11E5 ldi r17,lo8(81)
9390 52c0 C116 cp r12,r17
9391 52c2 D104 cpc r13,__zero_reg__
9392 52c4 1CF0 brlt .L715
9393 52c6 E0E5 ldi r30,lo8(80)
9394 52c8 CE2E mov r12,r30
9395 52ca D12C mov r13,__zero_reg__
9396 .L715:
9397 52cc 20EB ldi r18,lo8(-80)
9398 52ce C216 cp r12,r18
9399 52d0 2FEF ldi r18,hi8(-80)
9400 52d2 D206 cpc r13,r18
9401 52d4 24F4 brge .L714
9402 52d6 70EB ldi r23,lo8(-80)
9403 52d8 C72E mov r12,r23
9404 52da 7FEF ldi r23,hi8(-80)
9405 52dc D72E mov r13,r23
9406 .L714:
9407 52de 49A9 ldd r20,Y+49
9408 52e0 242F mov r18,r20
9409 52e2 3327 clr r19
9410 52e4 220F lsl r18
9411 52e6 331F rol r19
9412 52e8 220F lsl r18
9413 52ea 331F rol r19
9414 52ec C901 movw r24,r18
9415 52ee 68A1 ldd r22,Y+32
9416 52f0 79A1 ldd r23,Y+33
9417 52f2 861B sub r24,r22
9418 52f4 970B sbc r25,r23
9419 52f6 8C15 cp r24,r12
9420 52f8 9D05 cpc r25,r13
9421 52fa 0CF4 brge .L717
9422 52fc 6C01 movw r12,r24
9423 .L717:
9424 52fe 88A1 ldd r24,Y+32
9425 5300 99A1 ldd r25,Y+33
9426 5302 821B sub r24,r18
9427 5304 930B sbc r25,r19
9428 5306 C816 cp r12,r24
9429 5308 D906 cpc r13,r25
9430 530a 0CF4 brge .L718
9431 530c 6C01 movw r12,r24
9432 .L718:
9433 530e 8091 0000 lds r24,MesswertNick
9434 5312 9091 0000 lds r25,(MesswertNick)+1
9435 5316 6091 0000 lds r22,StickNick
9436 531a 7091 0000 lds r23,(StickNick)+1
9437 531e 861B sub r24,r22
9438 5320 970B sbc r25,r23
9439 5322 9093 0000 sts (DiffNick)+1,r25
9440 5326 8093 0000 sts DiffNick,r24
9441 532a A090 0000 lds r10,IntegralFaktor
9442 532e 2091 0000 lds r18,SummeNick
9443 5332 3091 0000 lds r19,(SummeNick)+1
9444 5336 4091 0000 lds r20,(SummeNick)+2
9445 533a 5091 0000 lds r21,(SummeNick)+3
9446 533e AA20 tst r10
9447 5340 41F0 breq .L719
9448 5342 461A sub r4,r22
9449 5344 570A sbc r5,r23
9450 5346 C201 movw r24,r4
9451 5348 AA27 clr r26
9452 534a 97FD sbrc r25,7
9453 534c A095 com r26
9454 534e BA2F mov r27,r26
9455 5350 04C0 rjmp .L798
9456 .L719:
9457 5352 AA27 clr r26
9458 5354 97FD sbrc r25,7
9459 5356 A095 com r26
9460 5358 BA2F mov r27,r26
9461 .L798:
9462 535a 280F add r18,r24
9463 535c 391F adc r19,r25
9464 535e 4A1F adc r20,r26
9465 5360 5B1F adc r21,r27
9466 5362 2093 0000 sts SummeNick,r18
9467 5366 3093 0000 sts (SummeNick)+1,r19
9468 536a 4093 0000 sts (SummeNick)+2,r20
9469 536e 5093 0000 sts (SummeNick)+3,r21
9470 5372 8091 0000 lds r24,SummeNick
9471 5376 9091 0000 lds r25,(SummeNick)+1
9472 537a A091 0000 lds r26,(SummeNick)+2
9473 537e B091 0000 lds r27,(SummeNick)+3
9474 5382 8150 subi r24,lo8(64001)
9475 5384 9A4F sbci r25,hi8(64001)
9476 5386 A040 sbci r26,hlo8(64001)
9477 5388 B040 sbci r27,hhi8(64001)
9478 538a 64F0 brlt .L721
9479 538c 80E0 ldi r24,lo8(64000)
9480 538e 9AEF ldi r25,hi8(64000)
9481 5390 A0E0 ldi r26,hlo8(64000)
9482 5392 B0E0 ldi r27,hhi8(64000)
9483 5394 8093 0000 sts SummeNick,r24
9484 5398 9093 0000 sts (SummeNick)+1,r25
9485 539c A093 0000 sts (SummeNick)+2,r26
9486 53a0 B093 0000 sts (SummeNick)+3,r27
9487 .L721:
9488 53a4 8091 0000 lds r24,SummeNick
9489 53a8 9091 0000 lds r25,(SummeNick)+1
9490 53ac A091 0000 lds r26,(SummeNick)+2
9491 53b0 B091 0000 lds r27,(SummeNick)+3
9492 53b4 8050 subi r24,lo8(-64000)
9493 53b6 9640 sbci r25,hi8(-64000)
9494 53b8 AF4F sbci r26,hlo8(-64000)
9495 53ba BF4F sbci r27,hhi8(-64000)
9496 53bc 64F4 brge .L722
9497 53be 80E0 ldi r24,lo8(-64000)
9498 53c0 96E0 ldi r25,hi8(-64000)
9499 53c2 AFEF ldi r26,hlo8(-64000)
9500 53c4 BFEF ldi r27,hhi8(-64000)
9501 53c6 8093 0000 sts SummeNick,r24
9502 53ca 9093 0000 sts (SummeNick)+1,r25
9503 53ce A093 0000 sts (SummeNick)+2,r26
9504 53d2 B093 0000 sts (SummeNick)+3,r27
9505 .L722:
9506 53d6 B090 0000 lds r11,EE_Parameter+35
9507 53da 2B2D mov r18,r11
9508 53dc 3327 clr r19
9509 53de 8091 0000 lds r24,DiffNick
9510 53e2 9091 0000 lds r25,(DiffNick)+1
9511 53e6 289F mul r18,r24
9512 53e8 7001 movw r14,r0
9513 53ea 299F mul r18,r25
9514 53ec F00C add r15,r0
9515 53ee 389F mul r19,r24
9516 53f0 F00C add r15,r0
9517 53f2 1124 clr r1
9518 53f4 9701 movw r18,r14
9519 53f6 F7FE sbrs r15,7
9520 53f8 02C0 rjmp .L723
9521 53fa 295F subi r18,lo8(-(7))
9522 53fc 3F4F sbci r19,hi8(-(7))
9523 .L723:
9524 53fe 7901 movw r14,r18
9525 5400 53E0 ldi r21,3
9526 5402 F594 1: asr r15
9527 5404 E794 ror r14
9528 5406 5A95 dec r21
9529 5408 E1F7 brne 1b
9530 540a 0091 0000 lds r16,Ki
9531 540e 1091 0000 lds r17,(Ki)+1
9532 5412 9801 movw r18,r16
9533 5414 4427 clr r20
9534 5416 37FD sbrc r19,7
9535 5418 4095 com r20
9536 541a 542F mov r21,r20
9537 541c 8091 0000 lds r24,SummeNick
9538 5420 9091 0000 lds r25,(SummeNick)+1
9539 5424 A091 0000 lds r26,(SummeNick)+2
9540 5428 B091 0000 lds r27,(SummeNick)+3
9541 542c BC01 movw r22,r24
9542 542e CD01 movw r24,r26
9543 5430 0E94 0000 call __divmodsi4
9544 5434 E20E add r14,r18
9545 5436 F31E adc r15,r19
9546 5438 9090 0000 lds r9,Parameter_DynamicStability
9547 543c 692D mov r22,r9
9548 543e 7727 clr r23
9549 5440 8827 clr r24
9550 5442 9927 clr r25
9551 5444 9601 movw r18,r12
9552 5446 D7FE sbrs r13,7
9553 5448 04C0 rjmp .L724
9554 544a 2227 clr r18
9555 544c 3327 clr r19
9556 544e 2C19 sub r18,r12
9557 5450 3D09 sbc r19,r13
9558 .L724:
9559 5452 37FF sbrs r19,7
9560 5454 02C0 rjmp .L725
9561 5456 2F5F subi r18,lo8(-(1))
9562 5458 3F4F sbci r19,hi8(-(1))
9563 .L725:
9564 545a 3595 asr r19
9565 545c 2795 ror r18
9566 545e 48A1 ldd r20,Y+32
9567 5460 59A1 ldd r21,Y+33
9568 5462 240F add r18,r20
9569 5464 351F adc r19,r21
9570 5466 4427 clr r20
9571 5468 37FD sbrc r19,7
9572 546a 4095 com r20
9573 546c 542F mov r21,r20
9574 546e 0E94 0000 call __mulsi3
9575 5472 97FF sbrs r25,7
9576 5474 04C0 rjmp .L726
9577 5476 615C subi r22,lo8(-(63))
9578 5478 7F4F sbci r23,hi8(-(63))
9579 547a 8F4F sbci r24,hlo8(-(63))
9580 547c 9F4F sbci r25,hhi8(-(63))
9581 .L726:
9582 547e 26E0 ldi r18,6
9583 5480 9595 1: asr r25
9584 5482 8795 ror r24
9585 5484 7795 ror r23
9586 5486 6795 ror r22
9587 5488 2A95 dec r18
9588 548a D1F7 brne 1b
9589 548c 9B01 movw r18,r22
9590 548e 6E15 cp r22,r14
9591 5490 7F05 cpc r23,r15
9592 5492 0CF4 brge .L727
9593 5494 7B01 movw r14,r22
9594 .L727:
9595 5496 3095 com r19
9596 5498 2195 neg r18
9597 549a 3F4F sbci r19,lo8(-1)
9598 549c E216 cp r14,r18
9599 549e F306 cpc r15,r19
9600 54a0 0CF4 brge .L728
9601 54a2 7901 movw r14,r18
9602 .L728:
9603 54a4 8091 0000 lds r24,MesswertRoll
9604 54a8 9091 0000 lds r25,(MesswertRoll)+1
9605 54ac 6091 0000 lds r22,StickRoll
9606 54b0 7091 0000 lds r23,(StickRoll)+1
9607 54b4 861B sub r24,r22
9608 54b6 970B sbc r25,r23
9609 54b8 9093 0000 sts (DiffRoll)+1,r25
9610 54bc 8093 0000 sts DiffRoll,r24
9611 54c0 2091 0000 lds r18,SummeRoll
9612 54c4 3091 0000 lds r19,(SummeRoll)+1
9613 54c8 4091 0000 lds r20,(SummeRoll)+2
9614 54cc 5091 0000 lds r21,(SummeRoll)+3
9615 54d0 AA20 tst r10
9616 54d2 41F0 breq .L729
9617 54d4 261A sub r2,r22
9618 54d6 370A sbc r3,r23
9619 54d8 C101 movw r24,r2
9620 54da AA27 clr r26
9621 54dc 97FD sbrc r25,7
9622 54de A095 com r26
9623 54e0 BA2F mov r27,r26
9624 54e2 04C0 rjmp .L799
9625 .L729:
9626 54e4 AA27 clr r26
9627 54e6 97FD sbrc r25,7
9628 54e8 A095 com r26
9629 54ea BA2F mov r27,r26
9630 .L799:
9631 54ec 280F add r18,r24
9632 54ee 391F adc r19,r25
9633 54f0 4A1F adc r20,r26
9634 54f2 5B1F adc r21,r27
9635 54f4 2093 0000 sts SummeRoll,r18
9636 54f8 3093 0000 sts (SummeRoll)+1,r19
9637 54fc 4093 0000 sts (SummeRoll)+2,r20
9638 5500 5093 0000 sts (SummeRoll)+3,r21
9639 5504 8091 0000 lds r24,SummeRoll
9640 5508 9091 0000 lds r25,(SummeRoll)+1
9641 550c A091 0000 lds r26,(SummeRoll)+2
9642 5510 B091 0000 lds r27,(SummeRoll)+3
9643 5514 8150 subi r24,lo8(64001)
9644 5516 9A4F sbci r25,hi8(64001)
9645 5518 A040 sbci r26,hlo8(64001)
9646 551a B040 sbci r27,hhi8(64001)
9647 551c 64F0 brlt .L731
9648 551e 80E0 ldi r24,lo8(64000)
9649 5520 9AEF ldi r25,hi8(64000)
9650 5522 A0E0 ldi r26,hlo8(64000)
9651 5524 B0E0 ldi r27,hhi8(64000)
9652 5526 8093 0000 sts SummeRoll,r24
9653 552a 9093 0000 sts (SummeRoll)+1,r25
9654 552e A093 0000 sts (SummeRoll)+2,r26
9655 5532 B093 0000 sts (SummeRoll)+3,r27
9656 .L731:
9657 5536 8091 0000 lds r24,SummeRoll
9658 553a 9091 0000 lds r25,(SummeRoll)+1
9659 553e A091 0000 lds r26,(SummeRoll)+2
9660 5542 B091 0000 lds r27,(SummeRoll)+3
9661 5546 8050 subi r24,lo8(-64000)
9662 5548 9640 sbci r25,hi8(-64000)
9663 554a AF4F sbci r26,hlo8(-64000)
9664 554c BF4F sbci r27,hhi8(-64000)
9665 554e 64F4 brge .L732
9666 5550 80E0 ldi r24,lo8(-64000)
9667 5552 96E0 ldi r25,hi8(-64000)
9668 5554 AFEF ldi r26,hlo8(-64000)
9669 5556 BFEF ldi r27,hhi8(-64000)
9670 5558 8093 0000 sts SummeRoll,r24
9671 555c 9093 0000 sts (SummeRoll)+1,r25
9672 5560 A093 0000 sts (SummeRoll)+2,r26
9673 5564 B093 0000 sts (SummeRoll)+3,r27
9674 .L732:
9675 5568 2B2D mov r18,r11
9676 556a 3327 clr r19
9677 556c 8091 0000 lds r24,DiffRoll
9678 5570 9091 0000 lds r25,(DiffRoll)+1
9679 5574 289F mul r18,r24
9680 5576 D001 movw r26,r0
9681 5578 299F mul r18,r25
9682 557a B00D add r27,r0
9683 557c 389F mul r19,r24
9684 557e B00D add r27,r0
9685 5580 1124 clr r1
9686 5582 9D01 movw r18,r26
9687 5584 B7FF sbrs r27,7
9688 5586 02C0 rjmp .L733
9689 5588 295F subi r18,lo8(-(7))
9690 558a 3F4F sbci r19,hi8(-(7))
9691 .L733:
9692 558c 5901 movw r10,r18
9693 558e B3E0 ldi r27,3
9694 5590 B594 1: asr r11
9695 5592 A794 ror r10
9696 5594 BA95 dec r27
9697 5596 E1F7 brne 1b
9698 5598 9801 movw r18,r16
9699 559a 4427 clr r20
9700 559c 37FD sbrc r19,7
9701 559e 4095 com r20
9702 55a0 542F mov r21,r20
9703 55a2 8091 0000 lds r24,SummeRoll
9704 55a6 9091 0000 lds r25,(SummeRoll)+1
9705 55aa A091 0000 lds r26,(SummeRoll)+2
9706 55ae B091 0000 lds r27,(SummeRoll)+3
9707 55b2 BC01 movw r22,r24
9708 55b4 CD01 movw r24,r26
9709 55b6 0E94 0000 call __divmodsi4
9710 55ba A20E add r10,r18
9711 55bc B31E adc r11,r19
9712 55be 692D mov r22,r9
9713 55c0 7727 clr r23
9714 55c2 8827 clr r24
9715 55c4 9927 clr r25
9716 55c6 9601 movw r18,r12
9717 55c8 D7FE sbrs r13,7
9718 55ca 04C0 rjmp .L734
9719 55cc 2227 clr r18
9720 55ce 3327 clr r19
9721 55d0 2C19 sub r18,r12
9722 55d2 3D09 sbc r19,r13
9723 .L734:
9724 55d4 37FF sbrs r19,7
9725 55d6 02C0 rjmp .L735
9726 55d8 2F5F subi r18,lo8(-(1))
9727 55da 3F4F sbci r19,hi8(-(1))
9728 .L735:
9729 55dc 3595 asr r19
9730 55de 2795 ror r18
9731 55e0 E8A1 ldd r30,Y+32
9732 55e2 F9A1 ldd r31,Y+33
9733 55e4 2E0F add r18,r30
9734 55e6 3F1F adc r19,r31
9735 55e8 4427 clr r20
9736 55ea 37FD sbrc r19,7
9737 55ec 4095 com r20
9738 55ee 542F mov r21,r20
9739 55f0 0E94 0000 call __mulsi3
9740 55f4 97FF sbrs r25,7
9741 55f6 04C0 rjmp .L736
9742 55f8 615C subi r22,lo8(-(63))
9743 55fa 7F4F sbci r23,hi8(-(63))
9744 55fc 8F4F sbci r24,hlo8(-(63))
9745 55fe 9F4F sbci r25,hhi8(-(63))
9746 .L736:
9747 5600 F6E0 ldi r31,6
9748 5602 9595 1: asr r25
9749 5604 8795 ror r24
9750 5606 7795 ror r23
9751 5608 6795 ror r22
9752 560a FA95 dec r31
9753 560c D1F7 brne 1b
9754 560e 9B01 movw r18,r22
9755 5610 6A15 cp r22,r10
9756 5612 7B05 cpc r23,r11
9757 5614 0CF4 brge .L737
9758 5616 5B01 movw r10,r22
9759 .L737:
9760 5618 3095 com r19
9761 561a 2195 neg r18
9762 561c 3F4F sbci r19,lo8(-1)
9763 561e A216 cp r10,r18
9764 5620 B306 cpc r11,r19
9765 5622 0CF4 brge .L738
9766 5624 5901 movw r10,r18
9767 .L738:
9768 5626 2090 0000 lds r2,Parameter_UserParam7
9769 562a E0E0 ldi r30,lo8(Motor)
9770 562c 6E2E mov r6,r30
9771 562e E0E0 ldi r30,hi8(Motor)
9772 5630 7E2E mov r7,r30
9773 5632 70E0 ldi r23,lo8(Mixer+13)
9774 5634 872E mov r8,r23
9775 5636 70E0 ldi r23,hi8(Mixer+13)
9776 5638 972E mov r9,r23
9777 563a 6BE0 ldi r22,lo8(11)
9778 563c 362E mov r3,r22
9779 563e 50E0 ldi r21,lo8(tmp_motorwert)
9780 5640 452E mov r4,r21
9781 5642 50E0 ldi r21,hi8(tmp_motorwert)
9782 5644 552E mov r5,r21
9783 .L772:
9784 5646 D401 movw r26,r8
9785 5648 2C91 ld r18,X
9786 564a 1216 cp __zero_reg__,r18
9787 564c 0CF0 brlt .+2
9788 564e ECC0 rjmp .L742
9789 5650 2034 cpi r18,lo8(64)
9790 5652 19F4 brne .L743
9791 5654 08A1 ldd r16,Y+32
9792 5656 19A1 ldd r17,Y+33
9793 5658 1EC0 rjmp .L744
9794 .L743:
9795 565a E8A1 ldd r30,Y+32
9796 565c F9A1 ldd r31,Y+33
9797 565e CF01 movw r24,r30
9798 5660 AA27 clr r26
9799 5662 97FD sbrc r25,7
9800 5664 A095 com r26
9801 5666 BA2F mov r27,r26
9802 5668 3327 clr r19
9803 566a 27FD sbrc r18,7
9804 566c 3095 com r19
9805 566e 432F mov r20,r19
9806 5670 532F mov r21,r19
9807 5672 BC01 movw r22,r24
9808 5674 CD01 movw r24,r26
9809 5676 0E94 0000 call __mulsi3
9810 567a 97FF sbrs r25,7
9811 567c 04C0 rjmp .L745
9812 567e 615C subi r22,lo8(-(63))
9813 5680 7F4F sbci r23,hi8(-(63))
9814 5682 8F4F sbci r24,hlo8(-(63))
9815 5684 9F4F sbci r25,hhi8(-(63))
9816 .L745:
9817 5686 46E0 ldi r20,6
9818 5688 9595 1: asr r25
9819 568a 8795 ror r24
9820 568c 7795 ror r23
9821 568e 6795 ror r22
9822 5690 4A95 dec r20
9823 5692 D1F7 brne 1b
9824 5694 8B01 movw r16,r22
9825 .L744:
9826 5696 F401 movw r30,r8
9827 5698 2181 ldd r18,Z+1
9828 569a 2034 cpi r18,lo8(64)
9829 569c 19F4 brne .L746
9830 569e 0E0D add r16,r14
9831 56a0 1F1D adc r17,r15
9832 56a2 22C0 rjmp .L747
9833 .L746:
9834 56a4 203C cpi r18,lo8(-64)
9835 56a6 19F4 brne .L748
9836 56a8 0E19 sub r16,r14
9837 56aa 1F09 sbc r17,r15
9838 56ac 1DC0 rjmp .L747
9839 .L748:
9840 56ae C701 movw r24,r14
9841 56b0 AA27 clr r26
9842 56b2 97FD sbrc r25,7
9843 56b4 A095 com r26
9844 56b6 BA2F mov r27,r26
9845 56b8 3327 clr r19
9846 56ba 27FD sbrc r18,7
9847 56bc 3095 com r19
9848 56be 432F mov r20,r19
9849 56c0 532F mov r21,r19
9850 56c2 BC01 movw r22,r24
9851 56c4 CD01 movw r24,r26
9852 56c6 0E94 0000 call __mulsi3
9853 56ca 97FF sbrs r25,7
9854 56cc 04C0 rjmp .L750
9855 56ce 615C subi r22,lo8(-(63))
9856 56d0 7F4F sbci r23,hi8(-(63))
9857 56d2 8F4F sbci r24,hlo8(-(63))
9858 56d4 9F4F sbci r25,hhi8(-(63))
9859 .L750:
9860 56d6 36E0 ldi r19,6
9861 56d8 9595 1: asr r25
9862 56da 8795 ror r24
9863 56dc 7795 ror r23
9864 56de 6795 ror r22
9865 56e0 3A95 dec r19
9866 56e2 D1F7 brne 1b
9867 56e4 060F add r16,r22
9868 56e6 171F adc r17,r23
9869 .L747:
9870 56e8 F401 movw r30,r8
9871 56ea 2281 ldd r18,Z+2
9872 56ec 2034 cpi r18,lo8(64)
9873 56ee 19F4 brne .L751
9874 56f0 0A0D add r16,r10
9875 56f2 1B1D adc r17,r11
9876 56f4 22C0 rjmp .L752
9877 .L751:
9878 56f6 203C cpi r18,lo8(-64)
9879 56f8 19F4 brne .L753
9880 56fa 0A19 sub r16,r10
9881 56fc 1B09 sbc r17,r11
9882 56fe 1DC0 rjmp .L752
9883 .L753:
9884 5700 C501 movw r24,r10
9885 5702 AA27 clr r26
9886 5704 97FD sbrc r25,7
9887 5706 A095 com r26
9888 5708 BA2F mov r27,r26
9889 570a 3327 clr r19
9890 570c 27FD sbrc r18,7
9891 570e 3095 com r19
9892 5710 432F mov r20,r19
9893 5712 532F mov r21,r19
9894 5714 BC01 movw r22,r24
9895 5716 CD01 movw r24,r26
9896 5718 0E94 0000 call __mulsi3
9897 571c 97FF sbrs r25,7
9898 571e 04C0 rjmp .L755
9899 5720 615C subi r22,lo8(-(63))
9900 5722 7F4F sbci r23,hi8(-(63))
9901 5724 8F4F sbci r24,hlo8(-(63))
9902 5726 9F4F sbci r25,hhi8(-(63))
9903 .L755:
9904 5728 26E0 ldi r18,6
9905 572a 9595 1: asr r25
9906 572c 8795 ror r24
9907 572e 7795 ror r23
9908 5730 6795 ror r22
9909 5732 2A95 dec r18
9910 5734 D1F7 brne 1b
9911 5736 060F add r16,r22
9912 5738 171F adc r17,r23
9913 .L752:
9914 573a F401 movw r30,r8
9915 573c 2381 ldd r18,Z+3
9916 573e 2034 cpi r18,lo8(64)
9917 5740 19F4 brne .L756
9918 5742 0C0D add r16,r12
9919 5744 1D1D adc r17,r13
9920 5746 22C0 rjmp .L757
9921 .L756:
9922 5748 203C cpi r18,lo8(-64)
9923 574a 19F4 brne .L758
9924 574c 0C19 sub r16,r12
9925 574e 1D09 sbc r17,r13
9926 5750 1DC0 rjmp .L757
9927 .L758:
9928 5752 C601 movw r24,r12
9929 5754 AA27 clr r26
9930 5756 97FD sbrc r25,7
9931 5758 A095 com r26
9932 575a BA2F mov r27,r26
9933 575c 3327 clr r19
9934 575e 27FD sbrc r18,7
9935 5760 3095 com r19
9936 5762 432F mov r20,r19
9937 5764 532F mov r21,r19
9938 5766 BC01 movw r22,r24
9939 5768 CD01 movw r24,r26
9940 576a 0E94 0000 call __mulsi3
9941 576e 97FF sbrs r25,7
9942 5770 04C0 rjmp .L760
9943 5772 615C subi r22,lo8(-(63))
9944 5774 7F4F sbci r23,hi8(-(63))
9945 5776 8F4F sbci r24,hlo8(-(63))
9946 5778 9F4F sbci r25,hhi8(-(63))
9947 .L760:
9948 577a B6E0 ldi r27,6
9949 577c 9595 1: asr r25
9950 577e 8795 ror r24
9951 5780 7795 ror r23
9952 5782 6795 ror r22
9953 5784 BA95 dec r27
9954 5786 D1F7 brne 1b
9955 5788 060F add r16,r22
9956 578a 171F adc r17,r23
9957 .L757:
9958 578c D201 movw r26,r4
9959 578e 8D91 ld r24,X+
9960 5790 9C91 ld r25,X
9961 5792 8017 cp r24,r16
9962 5794 9107 cpc r25,r17
9963 5796 5CF4 brge .L761
9964 5798 BC01 movw r22,r24
9965 579a 600F add r22,r16
9966 579c 711F adc r23,r17
9967 579e 77FF sbrs r23,7
9968 57a0 02C0 rjmp .L762
9969 57a2 6F5F subi r22,lo8(-(1))
9970 57a4 7F4F sbci r23,hi8(-(1))
9971 .L762:
9972 57a6 8B01 movw r16,r22
9973 57a8 1595 asr r17
9974 57aa 0795 ror r16
9975 57ac 11C0 rjmp .L763
9976 .L761:
9977 57ae B1E0 ldi r27,lo8(1)
9978 57b0 B215 cp r27,r2
9979 57b2 28F0 brlo .L764
9980 57b4 000F add r16,r16
9981 57b6 111F adc r17,r17
9982 57b8 081B sub r16,r24
9983 57ba 190B sbc r17,r25
9984 57bc 09C0 rjmp .L763
9985 .L764:
9986 57be 222D mov r18,r2
9987 57c0 3327 clr r19
9988 57c2 801B sub r24,r16
9989 57c4 910B sbc r25,r17
9990 57c6 B901 movw r22,r18
9991 57c8 0E94 0000 call __divmodhi4
9992 57cc 060F add r16,r22
9993 57ce 171F adc r17,r23
9994 .L763:
9995 57d0 E8A9 ldd r30,Y+48
9996 57d2 8E2F mov r24,r30
9997 57d4 9927 clr r25
9998 57d6 880F lsl r24
9999 57d8 991F rol r25
10000 57da 880F lsl r24
10001 57dc 991F rol r25
10002 57de 8017 cp r24,r16
10003 57e0 9107 cpc r25,r17
10004 57e2 54F4 brge .L800
10005 57e4 F9A9 ldd r31,Y+49
10006 57e6 8F2F mov r24,r31
10007 57e8 9927 clr r25
10008 57ea 880F lsl r24
10009 57ec 991F rol r25
10010 57ee 880F lsl r24
10011 57f0 991F rol r25
10012 57f2 0817 cp r16,r24
10013 57f4 1907 cpc r17,r25
10014 57f6 0CF0 brlt .L767
10015 .L800:
10016 57f8 8C01 movw r16,r24
10017 .L767:
10018 57fa C801 movw r24,r16
10019 57fc 17FD sbrc r17,7
10020 57fe 0396 adiw r24,3
10021 .L769:
10022 5800 9595 asr r25
10023 5802 8795 ror r24
10024 5804 9595 asr r25
10025 5806 8795 ror r24
10026 5808 F301 movw r30,r6
10027 580a 8183 std Z+1,r24
10028 580c 880F lsl r24
10029 580e 991F rol r25
10030 5810 880F lsl r24
10031 5812 991F rol r25
10032 5814 9801 movw r18,r16
10033 5816 281B sub r18,r24
10034 5818 390B sbc r19,r25
10035 581a C901 movw r24,r18
10036 581c 880F lsl r24
10037 581e 8283 std Z+2,r24
10038 5820 D201 movw r26,r4
10039 5822 0D93 st X+,r16
10040 5824 1C93 st X,r17
10041 5826 03C0 rjmp .L741
10042 .L742:
10043 5828 F301 movw r30,r6
10044 582a 1182 std Z+1,__zero_reg__
10045 582c 1282 std Z+2,__zero_reg__
10046 .L741:
10047 582e 3A94 dec r3
10048 5830 02E0 ldi r16,lo8(2)
10049 5832 10E0 ldi r17,hi8(2)
10050 5834 400E add r4,r16
10051 5836 511E adc r5,r17
10052 5838 24E0 ldi r18,lo8(4)
10053 583a 30E0 ldi r19,hi8(4)
10054 583c 820E add r8,r18
10055 583e 931E adc r9,r19
10056 5840 48E0 ldi r20,lo8(8)
10057 5842 50E0 ldi r21,hi8(8)
10058 5844 640E add r6,r20
10059 5846 751E adc r7,r21
10060 5848 37FE sbrs r3,7
10061 584a FDCE rjmp .L772
10062 /* epilogue: frame size=53 */
10063 584c E2E1 ldi r30,18
10064 584e CB5C subi r28,-53
10065 5850 0C94 0000 jmp __epilogue_restores__+0
10066 /* epilogue end (size=4) */
10067 /* function MotorRegler size 7558 (7548) */
10069 .comm TrimNick,2,1
10070 .comm TrimRoll,2,1
10071 .comm ErsatzKompass,4,1
10072 .comm ErsatzKompassInGrad,2,1
10073 .comm MesswertNick,2,1
10074 .comm MesswertRoll,2,1
10075 .comm MesswertGier,2,1
10076 .comm Mittelwert_AccNick,2,1
10077 .comm Mittelwert_AccRoll,2,1
10078 .comm NaviAccNick,2,1
10079 .comm NaviAccRoll,2,1
10080 .comm h,1,1
10081 .comm m,1,1
10082 .comm s,1,1
10083 .comm DiffNick,2,1
10084 .comm DiffRoll,2,1
10085 .comm Parameter_Servo3,1,1
10086 .comm Parameter_Servo4,1,1
10087 .comm Parameter_Servo5,1,1
10088 .comm Parameter_J16Bitmask,1,1
10089 .comm Parameter_J16Timing,1,1
10090 .comm Parameter_J17Bitmask,1,1
10091 .comm Parameter_J17Timing,1,1
10092 .comm MesswertGierBias,2,1
10093 .comm RohMesswertNick,2,1
10094 .comm RohMesswertRoll,2,1
10095 .comm MittelIntegralNick,4,1
10096 .comm MittelIntegralRoll,4,1
10097 .comm MittelIntegralNick2,4,1
10098 .comm MittelIntegralRoll2,4,1
10099 .comm MAX_GAS,1,1
10100 .comm MIN_GAS,1,1
10101 .comm GyroFaktor,1,1
10102 .comm GyroFaktorGier,1,1
10103 .comm IntegralFaktor,1,1
10104 .comm IntegralFaktorGier,1,1
10105 .comm Parameter_NaviGpsModeControl,1,1
10106 .comm Parameter_NaviGpsGain,1,1
10107 .comm Parameter_NaviGpsP,1,1
10108 .comm Parameter_NaviGpsI,1,1
10109 .comm Parameter_NaviGpsD,1,1
10110 .comm Parameter_NaviGpsACC,1,1
10111 .comm Parameter_NaviOperatingRadius,1,1
10112 .comm Parameter_NaviWindCorrection,1,1
10113 .comm Parameter_NaviSpeedCompensation,1,1
10114 .comm Parameter_ExternalControl,1,1
10115 .comm KopplungsteilNickRoll,2,1
10116 .comm KopplungsteilRollNick,2,1
10117 .comm tmp_motorwert,24,1
10118 /* File "fc.c": code 11450 = 0x2cba (11397), prologues 27, epilogues 26 */
DEFINED SYMBOLS
*ABS*:00000000 fc.c
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:14 .data:00000000 VarioCharacter
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:19 .data:00000001 GIER_GRAD_FAKTOR
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:26 .bss:00000000 FCFlags
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:32 .bss:00000001 modell_fliegt
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:38 .bss:00000003 MaxStickRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:44 .bss:00000005 MaxStickNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:50 .data:00000005 ExternHoehenValue
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:57 .bss:00000007 ExternStickGier
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:63 .bss:00000009 ExternStickRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:69 .bss:0000000b ExternStickNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:75 .bss:0000000d CareFree
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:81 .data:00000007 Parameter_DynamicStability
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:86 .data:00000008 Parameter_CouplingYawCorrection
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:91 .data:00000009 Parameter_AchsKopplung2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:96 .data:0000000a Parameter_AchsKopplung1
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:101 .data:0000000b Parameter_LoopGasLimit
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:106 .data:0000000c Parameter_ServoRollControl
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:111 .data:0000000d Parameter_ServoNickControl
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:118 .bss:0000000e Parameter_UserParam8
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:124 .bss:0000000f Parameter_UserParam7
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:130 .bss:00000010 Parameter_UserParam6
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:136 .bss:00000011 Parameter_UserParam5
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:142 .bss:00000012 Parameter_UserParam4
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:148 .bss:00000013 Parameter_UserParam3
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:154 .bss:00000014 Parameter_UserParam2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:160 .bss:00000015 Parameter_UserParam1
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:166 .data:0000000e Parameter_I_Faktor
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:171 .data:0000000f Parameter_Gier_P
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:176 .data:00000010 Parameter_Gyro_Gier_I
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:181 .data:00000011 Parameter_Gyro_Gier_P
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:186 .data:00000012 Parameter_Gyro_I
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:191 .data:00000013 Parameter_Gyro_P
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:196 .data:00000014 Parameter_Gyro_D
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:201 .data:00000015 Parameter_Hoehe_GPS_Z
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:206 .data:00000016 Parameter_KompassWirkung
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:211 .data:00000017 Parameter_Hoehe_ACC_Wirkung
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:216 .data:00000018 Parameter_Hoehe_P
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:221 .data:00000019 Parameter_MaxHoehe
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:226 .data:0000001a Parameter_Luftdruck_D
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:233 .bss:00000016 Looping_Oben
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:239 .bss:00000017 Looping_Unten
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:245 .bss:00000018 Looping_Rechts
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:251 .bss:00000019 Looping_Links
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:257 .bss:0000001a Looping_Roll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:263 .bss:0000001b Looping_Nick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:269 .data:0000001b Ki
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:276 .bss:0000001c HoverGas
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:282 .bss:0000001e LageKorrekturNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:288 .bss:00000020 LageKorrekturRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:294 .bss:00000022 SollHoehe
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:300 .bss:00000026 HoehenWert
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:306 .bss:0000002a StartTrigger
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:312 .bss:0000002b MotorenEin
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:318 .bss:0000002c StickGas
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:324 .bss:0000002e StickGier
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:330 .bss:00000030 StickRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:336 .bss:00000032 StickNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:342 .bss:00000034 SenderOkay
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:348 .bss:00000035 Poti
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:354 .bss:0000003e GierGyroFehler
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:360 .data:0000001d Umschlag180Roll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:365 .data:00000021 Umschlag180Nick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:372 .bss:00000040 TrichterFlug
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:378 .bss:00000041 HoehenReglerAktiv
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:384 .data:00000025 KompassSignalSchlecht
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:391 .bss:00000042 KompassRichtung
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:397 .bss:00000044 KompassStartwert
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:403 .bss:00000046 KompassValue
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:409 .bss:00000048 Mess_Integral_Hoch
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:415 .bss:0000004c SummeRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:421 .bss:00000050 SummeNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:427 .bss:00000054 Mess_Integral_Gier2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:433 .bss:00000058 Mess_Integral_Gier
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:439 .bss:0000005c Mess_IntegralRoll2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:445 .bss:00000060 Mess_IntegralRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:451 .bss:00000064 Mess_IntegralNick2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:457 .bss:00000068 Mess_IntegralNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:463 .bss:0000006c Integral_Gier
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:469 .bss:00000070 IntegralAccZ
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:475 .bss:00000074 IntegralAccRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:481 .bss:00000078 IntegralAccNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:487 .bss:0000007c IntegralRoll2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:493 .bss:00000080 IntegralRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:499 .bss:00000084 IntegralNick2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:505 .bss:00000088 IntegralNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:511 .bss:0000008c ControlHeading
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:517 .bss:0000008d NeutralAccZ
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:523 .bss:0000008f NaviCntAcc
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:529 .bss:00000091 NeutralAccY
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:535 .bss:00000093 NeutralAccX
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:541 .bss:00000095 StartNeutralNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:547 .bss:00000097 StartNeutralRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:553 .bss:00000099 AdNeutralGier
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:559 .bss:0000009b AdNeutralRoll
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:565 .bss:0000009d AdNeutralNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:571 .bss:0000009f BaroExpandActive
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:576 .text:00000000 CopyDebugValues
*COM*:00000002 Mittelwert_AccNick
*COM*:00000002 Mittelwert_AccRoll
*COM*:00000004 ErsatzKompass
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:754 .text:00000214 Piep
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:793 .text:00000256 CalibrierMittelwert
*COM*:00000002 MesswertNick
*COM*:00000002 MesswertRoll
*COM*:00000002 MesswertGier
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:935 .progmem.data:00000000 __c.40
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:940 .text:00000398 SetNeutral
.bss:000000a1 tmpl.32
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1441 .bss:000000a5 tmpl2.33
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1442 .bss:000000a9 tmpl3.34
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1443 .bss:000000ad tmpl4.35
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1444 .bss:000000b1 oldNick.36
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1445 .bss:000000b3 oldRoll.37
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1446 .bss:000000b5 d2Roll.38
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1447 .bss:000000b7 d2Nick.39
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1451 .text:000008f4 Mittelwert
*COM*:00000002 RohMesswertNick
*COM*:00000002 RohMesswertRoll
*COM*:00000002 NaviAccNick
*COM*:00000002 NaviAccRoll
*COM*:00000002 KopplungsteilNickRoll
*COM*:00000002 KopplungsteilRollNick
*COM*:00000002 TrimRoll
*COM*:00000002 TrimNick
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3093 .text:000018e4 SendMotorData
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3146 .text:00001950 ParameterZuordnung
*COM*:00000001 Parameter_J16Timing
*COM*:00000001 Parameter_J17Timing
*COM*:00000001 Parameter_Servo3
*COM*:00000001 Parameter_Servo4
*COM*:00000001 Parameter_Servo5
*COM*:00000001 Parameter_ExternalControl
*COM*:00000001 MAX_GAS
*COM*:00000001 MIN_GAS
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:1448 .bss:000000b9 sollGier.0
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3703 .bss:000000bd tmp_long.1
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3704 .bss:000000c1 tmp_long2.2
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3705 .bss:000000c5 IntegralFehlerNick.3
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3706 .bss:000000c9 IntegralFehlerRoll.4
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3707 .bss:000000cd RcLostTimer.5
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3708 .bss:000000cf delay_neutral.6
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3709 .bss:000000d0 delay_einschalten.7
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3710 .bss:000000d1 delay_ausschalten.8
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3711 .bss:000000d2 calibration_done.9
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3712 .bss:000000d3 NeueKompassRichtungMerken.10
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3713 .bss:000000d4 ausgleichNick.11
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3714 .bss:000000d8 ausgleichRoll.12
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3715 .bss:000000dc stick_nick.13
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3716 .bss:000000de stick_roll.14
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3717 .bss:000000e0 cnt.15
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3718 .bss:000000e2 last_n_p.16
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3719 .bss:000000e3 last_n_n.17
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3720 .bss:000000e4 last_r_p.18
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3721 .bss:000000e5 last_r_n.19
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3722 .bss:000000e6 MittelIntegralNick_Alt.20
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3723 .bss:000000ea MittelIntegralRoll_Alt.21
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3724 .bss:000000ee HeightTrimming.22
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3725 .bss:000000f0 FilterHCGas.23
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3730 .data:00000027 StickGasHover.24
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3726 .bss:000000f2 HoverGasMin.25
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3735 .data:00000029 HoverGasMax.26
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3732 .bss:000000f4 HoverGasFilter.27
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3740 .data:0000002b delay.28
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3737 .bss:000000f8 BaroAtUpperLimit.29
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3742 .bss:000000f9 BaroAtLowerLimit.30
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3743 .bss:000000fa HeightTrimmingFlag.31
C:\Users\Arthur-P\AppData\Local\Temp/cckFaaaa.s:3780 .text:00001e0c MotorRegler
*COM*:00000001 GyroFaktor
*COM*:00000001 IntegralFaktor
*COM*:00000001 GyroFaktorGier
*COM*:00000001 IntegralFaktorGier
*COM*:00000004 MittelIntegralNick
*COM*:00000004 MittelIntegralRoll
*COM*:00000004 MittelIntegralNick2
*COM*:00000004 MittelIntegralRoll2
*COM*:00000002 DiffNick
*COM*:00000002 DiffRoll
*COM*:00000018 tmp_motorwert
*COM*:00000002 ErsatzKompassInGrad
*COM*:00000001 h
*COM*:00000001 m
*COM*:00000001 s
*COM*:00000001 Parameter_J16Bitmask
*COM*:00000001 Parameter_J17Bitmask
*COM*:00000002 MesswertGierBias
*COM*:00000001 Parameter_NaviGpsModeControl
*COM*:00000001 Parameter_NaviGpsGain
*COM*:00000001 Parameter_NaviGpsP
*COM*:00000001 Parameter_NaviGpsI
*COM*:00000001 Parameter_NaviGpsD
*COM*:00000001 Parameter_NaviGpsACC
*COM*:00000001 Parameter_NaviOperatingRadius
*COM*:00000001 Parameter_NaviWindCorrection
*COM*:00000001 Parameter_NaviSpeedCompensation
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
__divmodsi4
DebugOut
AdWertGier
AdWertAccHoch
UBat
Motor
ServoNickValue
Capacity
GPS_Nick
GPS_Roll
VersionInfo
beeptime
Delay_ms
PlatinenVersion
SucheGyroOffset
AdWertNick
AdWertRoll
AdWertAccNick
AdWertAccRoll
PPM_in
__mulsi3
__prologue_saves__
ExpandBaro
Delay_ms_Mess
MessLuftdruck
SucheLuftruckOffset
__divmodhi4
Aktuell_az
SetParamWord
GetParamWord
uart_putchar
_printf_P
Luftdruck
StartLuftdruck
VarioMeter
GPS_Neutral
SendVersionToNavi
LED_Init
FromNaviCtrl_Value
ServoActive
__epilogue_restores__
AdWertNickFilter
AdWertRollFilter
AdReady
HiResNick
HiResRoll
MotorTest
PC_MotortestActive
motor_write
twi_state
BLFlags
FromNaviCtrl
BeepMuster
PPM_diff
SetActiveParamSet
WinkelOut
GetActiveParamSet
ParamSet_ReadFromEEProm
LipoDetection
LIBFC_ReceiverInit
NewPpmData
FromNC_Rotate_C
FromNC_Rotate_S
GPS_Nick2
GPS_Roll2
__floatsisf
__addsf3
__fixunssfsi
ExternControl
ZaehlMessungen
BattLowVoltageWarning
__udivmodhi4
DruckOffsetSetting
SummenHoehe
ihypot
c_cos_8192
MissingMotor
Mixer
/branches/V0.80d-Arthur-P/flight.pnproj
0,0 → 1,0
<Project name="Flight-Ctrl"><File path="uart.h"></File><File path="jeti.h"></File><File path="main.c"></File><File path="main.h"></File><File path="makefile"></File><File path="uart.c"></File><File path="printf_P.h"></File><File path="timer0.c"></File><File path="timer0.h"></File><File path="old_macros.h"></File><File path="twimaster.c"></File><File path="version.txt"></File><File path="twimaster.h"></File><File path="rc.c"></File><File path="rc.h"></File><File path="fc.h"></File><File path="menu.h"></File><File path="menu.c"></File><File path="_Settings.h"></File><File path="analog.c"></File><File path="analog.h"></File><File path="GPS.c"></File><File path="gps.h"></File><File path="License.txt"></File><File path="spi.h"></File><File path="spi.c"></File><File path="led.h"></File><File path="led.c"></File><File path="fc.c"></File><File path="mymath.c"></File><File path="mymath.h"></File><File path="isqrt.S"></File><File path="Spektrum.c"></File><File path="Spektrum.h"></File><File path="eeprom.h"></File><File path="eeprom.c"></File><File path="libfc.h"></File><File path="debug.c"></File><File path="debug.h"></File></Project>
/branches/V0.80d-Arthur-P/flight.pnps
0,0 → 1,0
<pd><ViewState><e p="Flight-Ctrl" x="true"></e></ViewState></pd>
/branches/V0.80d-Arthur-P/gps.h
0,0 → 1,7
extern signed int GPS_Nick;
extern signed int GPS_Roll;
extern signed int GPS_Nick2;
extern signed int GPS_Roll2;
 
void GPS_Neutral(void);
void GPS_BerechneZielrichtung(void);
/branches/V0.80d-Arthur-P/isqrt.S
0,0 → 1,203
;-----------------------------------------------------------------------------;
; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008
; http://elm-chan.org/docs/avrlib/sqrt32.S
;-----------------------------------------------------------------------------;
; uint16_t isqrt32 (uint32_t n);
; uint8_t isqrt16 (uint16_t n);
; uint16_t ihypot (int16_t x, int16_t y);
 
;-----------------------------------------------------------------------------:
; 32bit integer squareroot
;-----------------------------------------------------------------------------;
; uint16_t isqrt32 (
; uint32_t n
; );
;
; Return Value:
; Squareroot of n.
;
; Size = 53 words
; Clock = 532..548 cycles
; Stack = 0 byte
 
.global isqrt32
.func isqrt32
 
isqrt32:
clr r0
clr r18
clr r19
clr r20
ldi r21, 1
clr r27
clr r30
clr r31
ldi r26, 16
1: lsl r22
rol r23
rol r24
rol r25
rol r0
rol r18
rol r19
rol r20
lsl r22
rol r23
rol r24
rol r25
rol r0
rol r18
rol r19
rol r20
brpl 2f
add r0, r21
adc r18, r27
adc r19, r30
adc r20, r31
rjmp 3f
2: sub r0, r21
sbc r18, r27
sbc r19, r30
sbc r20, r31
3: lsl r21
rol r27
rol r30
andi r21, 0b11111000
ori r21, 0b00000101
sbrc r20, 7
subi r21, 2
dec r26
brne 1b
lsr r30
ror r27
ror r21
lsr r30
ror r27
ror r21
mov r24, r21
mov r25, r27
ret
.endfunc
 
 
 
;-----------------------------------------------------------------------------:
; 16bit integer squareroot
;-----------------------------------------------------------------------------;
; uint8_t isqrt16 (
; uint16_t n
; );
;
; Return Value:
; Squareroot of n.
;
; Size = 33 words
; Clock = 181..189 cycles
; Stack = 0 byte
 
.global isqrt16
.func isqrt16
 
isqrt16:
clr r18
clr r19
ldi r20, 1
clr r21
ldi r22, 8
1: lsl r24
rol r25
rol r18
rol r19
lsl r24
rol r25
rol r18
rol r19
brpl 2f
add r18, r20
adc r19, r21
rjmp 3f
2: sub r18, r20
sbc r19, r21
3: lsl r20
rol r21
andi r20, 0b11111000
ori r20, 0b00000101
sbrc r19, 7
subi r20, 2
dec r22
brne 1b
lsr r21
ror r20
lsr r21
ror r20
mov r24, r20
ret
.endfunc
 
 
 
;-----------------------------------------------------------------------------:
; 16bit integer hypot (megaAVR is required)
;-----------------------------------------------------------------------------;
; uint16_t ihypot (
; int16_t x,
; int16_t y
; );
;
; Return Value:
; Squareroot of (x*x + y*y)
;
; Size = 42 words
; Clock = 581..597 cycles
; Stack = 0 byte
 
.global ihypot
.func ihypot
 
ihypot:
clr r26
sbrs r25, 7
rjmp 1f
com r24
com r25
adc r24, r26
adc r25, r26
1: sbrs r23, 7
rjmp 2f
com r22
com r23
adc r22, r26
adc r23, r26
2: mul r22, r22
movw r18, r0
mul r23, r23
movw r20, r0
mul r22, r23
add r19, r0
adc r20, r1
adc r21, r26
add r19, r0
adc r20, r1
adc r21, r26
mul r24, r24
movw r30, r0
mul r25, r25
add r18, r30
adc r19, r31
adc r20, r0
adc r21, r1
mul r24, r25
add r19, r0
adc r20, r1
adc r21, r26
add r19, r0
adc r20, r1
adc r21, r26
movw r24, r20
movw r22, r18
clr r1
rjmp isqrt32
.endfunc
 
 
 
/branches/V0.80d-Arthur-P/isqrt.h
0,0 → 1,11
#ifndef _ISQRT_H
#define _ISQRT_H
 
#include <inttypes.h>
 
// coded in assembler file
extern uint16_t isqrt32(uint32_t n);
extern uint8_t isqrt16(uint16_t n);
extern uint16_t ihypot(int16_t x, int16_t y);
 
#endif // _ISQRT_H
/branches/V0.80d-Arthur-P/isqrt.lst
0,0 → 1,211
1 # 1 "isqrt.S"
2 # 1 "<built-in>"
1 ;-----------------------------------------------------------------------------;
0
0
2 ;-----------------------------------------------------------------------------;
3 ; Fast integer squareroot routines for avr-gcc project (C)ChaN, 2008
4 ; http://elm-chan.org/docs/avrlib/sqrt32.S
5 ;-----------------------------------------------------------------------------;
6 ; uint16_t isqrt32 (uint32_t n);
7 ; uint8_t isqrt16 (uint16_t n);
8 ; uint16_t ihypot (int16_t x, int16_t y);
9
10 ;-----------------------------------------------------------------------------:
11 ; 32bit integer squareroot
12 ;-----------------------------------------------------------------------------;
13 ; uint16_t isqrt32 (
14 ; uint32_t n
15 ; );
16 ;
17 ; Return Value:
18 ; Squareroot of n.
19 ;
20 ; Size = 53 words
21 ; Clock = 532..548 cycles
22 ; Stack = 0 byte
23
24 .global isqrt32
25 .func isqrt32
26
27:isqrt.S **** isqrt32:
28:isqrt.S **** clr r0
29:isqrt.S **** clr r18
30:isqrt.S **** clr r19
31:isqrt.S **** clr r20
32:isqrt.S **** ldi r21, 1
33:isqrt.S **** clr r27
34:isqrt.S **** clr r30
35:isqrt.S **** clr r31
36:isqrt.S **** ldi r26, 16
37:isqrt.S **** 1: lsl r22
38:isqrt.S **** rol r23
39:isqrt.S **** rol r24
40:isqrt.S **** rol r25
41:isqrt.S **** rol r0
42:isqrt.S **** rol r18
43:isqrt.S **** rol r19
44:isqrt.S **** rol r20
45:isqrt.S **** lsl r22
46:isqrt.S **** rol r23
47:isqrt.S **** rol r24
48:isqrt.S **** rol r25
49:isqrt.S **** rol r0
50:isqrt.S **** rol r18
51:isqrt.S **** rol r19
52:isqrt.S **** rol r20
53:isqrt.S **** brpl 2f
54:isqrt.S **** add r0, r21
55:isqrt.S **** adc r18, r27
56:isqrt.S **** adc r19, r30
57:isqrt.S **** adc r20, r31
58:isqrt.S **** rjmp 3f
59:isqrt.S **** 2: sub r0, r21
60:isqrt.S **** sbc r18, r27
61:isqrt.S **** sbc r19, r30
62:isqrt.S **** sbc r20, r31
63:isqrt.S **** 3: lsl r21
64:isqrt.S **** rol r27
65:isqrt.S **** rol r30
66:isqrt.S **** andi r21, 0b11111000
67:isqrt.S **** ori r21, 0b00000101
68:isqrt.S **** sbrc r20, 7
69:isqrt.S **** subi r21, 2
70:isqrt.S **** dec r26
71:isqrt.S **** brne 1b
72:isqrt.S **** lsr r30
73:isqrt.S **** ror r27
74:isqrt.S **** ror r21
75:isqrt.S **** lsr r30
76:isqrt.S **** ror r27
77:isqrt.S **** ror r21
78:isqrt.S **** mov r24, r21
79:isqrt.S **** mov r25, r27
80 ret
81 .endfunc
82
83
84
85 ;-----------------------------------------------------------------------------:
86 ; 16bit integer squareroot
87 ;-----------------------------------------------------------------------------;
88 ; uint8_t isqrt16 (
89 ; uint16_t n
90 ; );
91 ;
92 ; Return Value:
93 ; Squareroot of n.
94 ;
95 ; Size = 33 words
96 ; Clock = 181..189 cycles
97 ; Stack = 0 byte
98
99 .global isqrt16
100 .func isqrt16
101
102:isqrt.S **** isqrt16:
103:isqrt.S **** clr r18
104:isqrt.S **** clr r19
105:isqrt.S **** ldi r20, 1
106:isqrt.S **** clr r21
107:isqrt.S **** ldi r22, 8
108:isqrt.S **** 1: lsl r24
109:isqrt.S **** rol r25
110:isqrt.S **** rol r18
111:isqrt.S **** rol r19
112:isqrt.S **** lsl r24
113:isqrt.S **** rol r25
114:isqrt.S **** rol r18
115:isqrt.S **** rol r19
116:isqrt.S **** brpl 2f
117:isqrt.S **** add r18, r20
118:isqrt.S **** adc r19, r21
119:isqrt.S **** rjmp 3f
120:isqrt.S **** 2: sub r18, r20
121:isqrt.S **** sbc r19, r21
122:isqrt.S **** 3: lsl r20
123:isqrt.S **** rol r21
124:isqrt.S **** andi r20, 0b11111000
125:isqrt.S **** ori r20, 0b00000101
126:isqrt.S **** sbrc r19, 7
127:isqrt.S **** subi r20, 2
128:isqrt.S **** dec r22
129:isqrt.S **** brne 1b
130:isqrt.S **** lsr r21
131:isqrt.S **** ror r20
132:isqrt.S **** lsr r21
133:isqrt.S **** ror r20
134:isqrt.S **** mov r24, r20
135 ret
136 .endfunc
137
138
139
140 ;-----------------------------------------------------------------------------:
141 ; 16bit integer hypot (megaAVR is required)
142 ;-----------------------------------------------------------------------------;
143 ; uint16_t ihypot (
144 ; int16_t x,
145 ; int16_t y
146 ; );
147 ;
148 ; Return Value:
149 ; Squareroot of (x*x + y*y)
150 ;
151 ; Size = 42 words
152 ; Clock = 581..597 cycles
153 ; Stack = 0 byte
154
155 .global ihypot
156 .func ihypot
157
158:isqrt.S **** ihypot:
159:isqrt.S **** clr r26
160:isqrt.S **** sbrs r25, 7
161:isqrt.S **** rjmp 1f
162:isqrt.S **** com r24
163:isqrt.S **** com r25
164:isqrt.S **** adc r24, r26
165:isqrt.S **** adc r25, r26
166:isqrt.S **** 1: sbrs r23, 7
167:isqrt.S **** rjmp 2f
168:isqrt.S **** com r22
169:isqrt.S **** com r23
170:isqrt.S **** adc r22, r26
171:isqrt.S **** adc r23, r26
172:isqrt.S **** 2: mul r22, r22
173:isqrt.S **** movw r18, r0
174:isqrt.S **** mul r23, r23
175:isqrt.S **** movw r20, r0
176:isqrt.S **** mul r22, r23
177:isqrt.S **** add r19, r0
178:isqrt.S **** adc r20, r1
179:isqrt.S **** adc r21, r26
180:isqrt.S **** add r19, r0
181:isqrt.S **** adc r20, r1
182:isqrt.S **** adc r21, r26
183:isqrt.S **** mul r24, r24
184:isqrt.S **** movw r30, r0
185:isqrt.S **** mul r25, r25
186:isqrt.S **** add r18, r30
187:isqrt.S **** adc r19, r31
188:isqrt.S **** adc r20, r0
189:isqrt.S **** adc r21, r1
190:isqrt.S **** mul r24, r25
191:isqrt.S **** add r19, r0
192:isqrt.S **** adc r20, r1
193:isqrt.S **** adc r21, r26
194:isqrt.S **** add r19, r0
195:isqrt.S **** adc r20, r1
196:isqrt.S **** adc r21, r26
197:isqrt.S **** movw r24, r20
198:isqrt.S **** movw r22, r18
199:isqrt.S **** clr r1
200 rjmp isqrt32
DEFINED SYMBOLS
*ABS*:00000000 isqrt.S
isqrt.S:26 .text:00000000 isqrt32
isqrt.S:101 .text:0000006a isqrt16
isqrt.S:157 .text:000000ac ihypot
 
NO UNDEFINED SYMBOLS
/branches/V0.80d-Arthur-P/jetimenu.c
0,0 → 1,162
#include "jetimenu.h"
#include "libfc.h"
#include "printf_P.h"
#include "main.h"
#include "spi.h"
#include "capacity.h"
 
#define JETIBOX_KEY_RIGHT 0x1F
#define JETIBOX_KEY_UP 0x2F
#define JETIBOX_KEY_DOWN 0x4F
#define JETIBOX_KEY_LEFT 0x8F
#define JETIBOX_KEY_NONE 0x0F
#define JETIBOX_KEY_UNDEF 0x00
 
#define JetiBox_printfxy(x,y,format, args...) { LIBFC_JetiBox_SetPos(y * 16 + x); _printf_P(&LIBFC_JetiBox_Putchar, PSTR(format) , ## args);}
#define JetiBox_printf(format, args...) { _printf_P(&LIBFC_JetiBox_Putchar, PSTR(format) , ## args);}
 
// -----------------------------------------------------------
// the menu functions
// -----------------------------------------------------------
 
void Menu_Status(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"%2i.%1iV",UBat/10, UBat%10);
if(NaviDataOkay)
{
// JetiBox_printfxy(6,0,"%03dm %03d%c", GPSInfo.HomeDistance/10,GPSInfo.HomeBearing, 0xDF);
JetiBox_printfxy(6,0,"%3d%c %03dm",(int)(ErsatzKompass / GIER_GRAD_FAKTOR), 0xDF, GPSInfo.HomeDistance/10);
}
else
{
JetiBox_printfxy(6,0,"Status");
}
if(NC_ErrorCode) JetiBox_printfxy(6,0,"ERROR: %2d",NC_ErrorCode);
JetiBox_printfxy(0,1,"%4i %2i:%02i",Capacity.UsedCapacity,FlugSekunden/60,FlugSekunden%60);
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
JetiBox_printfxy(10,1,"%4im%c", (int16_t)(HoehenWert/100),VarioCharacter);
}
}
 
 
void Menu_Temperature(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"%3i %3i %3i %3i", Motor[0].Temperature, Motor[1].Temperature, Motor[2].Temperature, Motor[3].Temperature);
JetiBox_printfxy(0,1,"%3i %3i %3i %3i", Motor[4].Temperature, Motor[5].Temperature, Motor[6].Temperature, Motor[7].Temperature);
if(RequiredMotors <= 4)
{
JetiBox_printfxy(0,1,"Temperatures ");
}
else
if(RequiredMotors <= 6)
{
JetiBox_printfxy(8,1,"\%cC ",0xdf);
}
 
}
 
void Menu_Battery(uint8_t key)
{ //0123456789ABCDEF
JetiBox_printfxy(0,0,"%2i.%1iV %3i.%1iA", UBat/10, UBat%10, Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
JetiBox_printfxy(0,1,"%4iW %6imAh",Capacity.ActualPower, Capacity.UsedCapacity);
}
 
 
void Menu_PosInfo(uint8_t key)
{
if(NaviDataOkay)
{
JetiBox_printfxy(0,0,"%2um/s Sat:%d ",GPSInfo.Speed,GPSInfo.NumOfSats);
switch (GPSInfo.SatFix)
{
case SATFIX_3D:
JetiBox_printfxy(12,0," 3D");
break;
 
case SATFIX_2D:
case SATFIX_NONE:
default:
JetiBox_printfxy(12,0,"NoFx");
break;
}
if(GPSInfo.Flags & FLAG_DIFFSOLN)
{
JetiBox_printfxy(12,0,"DGPS");
}
JetiBox_printfxy(0,1,"Home:%3dm %3d%c", GPSInfo.HomeDistance/10, GPSInfo.HomeBearing, 0xDF);
}
else
{ //0123456789ABCDEF
JetiBox_printfxy(2,0,"No NaviCtrl!");
}
}
 
 
// -----------------------------------------------------------
// the menu topology
// -----------------------------------------------------------
typedef void (*pFctMenu) (uint8_t); // the menu item handler function pointer
 
typedef struct{
int8_t left;
int8_t right;
int8_t up;
int8_t down;
pFctMenu pHandler;
} MENU_ENTRY;
 
 
// the menu navigation structure
/* |
 
3 - 0 - 1 - 2 - 3 - 0
 
*/
 
const MENU_ENTRY JetiBox_Menu[] PROGMEM=
{ // l r u d pHandler
{3, 1, 0, 0, &Menu_Status }, // 0
{0, 2, 1, 1, &Menu_Temperature }, // 1
{1, 3, 2, 2, &Menu_Battery }, // 2
{2, 0, 3, 3, &Menu_PosInfo }, // 3
};
 
// -----------------------------------------------------------
// Update display buffer
// -----------------------------------------------------------
unsigned char JetiBox_Update(unsigned char key)
{
static uint8_t item = 0, last_item = 0; // the menu item
 
// navigate within the menu by key action
last_item = item;
switch(key)
{
case JETIBOX_KEY_LEFT:
if (item == 0) return (1); // switch back to jeti expander menu
else item = pgm_read_byte(&JetiBox_Menu[item].left); //trigger to left menu item
break;
case JETIBOX_KEY_RIGHT:
item = pgm_read_byte(&JetiBox_Menu[item].right); //trigger to right menu item
break;
case JETIBOX_KEY_UP:
item = pgm_read_byte(&JetiBox_Menu[item].up); //trigger to up menu item
break;
case JETIBOX_KEY_DOWN:
item = pgm_read_byte(&JetiBox_Menu[item].down); //trigger to down menu item
break;
default:
break;
}
// if the menu item has been changed, do not pass the key to the item handler
// to avoid jumping over to items
if(item != last_item) key = JETIBOX_KEY_UNDEF;
 
LIBFC_JetiBox_Clear();
//execute menu item handler
((pFctMenu)(pgm_read_word(&(JetiBox_Menu[item].pHandler))))(key);
return (0);
}
 
/branches/V0.80d-Arthur-P/jetimenu.d
0,0 → 1,3
jetimenu.o jetimenu.d : jetimenu.c jetimenu.h libfc.h printf_P.h main.h old_macros.h \
timer0.h uart.h analog.h twimaster.h menu.h rc.h fc.h gps.h spi.h led.h \
spektrum.h capacity.h eeprom.h debug.h
/branches/V0.80d-Arthur-P/jetimenu.h
0,0 → 1,6
#ifndef _JETIMENU_H
#define _JETIMENU_H
 
extern unsigned char JetiBox_Update(unsigned char key);
 
#endif //_JETIMENU_H
/branches/V0.80d-Arthur-P/jetimenu.lst
0,0 → 1,839
1 .file "jetimenu.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global JetiBox_Menu
11 .section .progmem.data,"a",@progbits
14 JetiBox_Menu:
15 0000 03 .byte 3
16 0001 01 .byte 1
17 0002 00 .byte 0
18 0003 00 .byte 0
19 0004 0000 .word pm(Menu_Status)
20 0006 00 .byte 0
21 0007 02 .byte 2
22 0008 01 .byte 1
23 0009 01 .byte 1
24 000a 0000 .word pm(Menu_Temperature)
25 000c 01 .byte 1
26 000d 03 .byte 3
27 000e 02 .byte 2
28 000f 02 .byte 2
29 0010 0000 .word pm(Menu_Battery)
30 0012 02 .byte 2
31 0013 00 .byte 0
32 0014 03 .byte 3
33 0015 03 .byte 3
34 0016 0000 .word pm(Menu_PosInfo)
37 __c.14:
38 0018 2532 692E .string "%2i.%1iV"
38 2531 6956
38 00
41 __c.15:
42 0021 2533 6425 .string "%3d%c %03dm"
42 6320 2530
42 3364 6D00
45 __c.16:
46 002d 5374 6174 .string "Status"
46 7573 00
49 __c.17:
50 0034 4552 524F .string "ERROR: %2d"
50 523A 2025
50 3264 00
53 __c.18:
54 003f 2534 6920 .string "%4i %2i:%02i"
54 2532 693A
54 2530 3269
54 00
57 __c.19:
58 004c 2534 696D .string "%4im%c"
58 2563 00
59 .text
60 .global Menu_Status
62 Menu_Status:
63 /* prologue: frame size=0 */
64 0000 CF93 push r28
65 0002 DF93 push r29
66 /* prologue end (size=2) */
67 0004 80E0 ldi r24,lo8(0)
68 0006 0E94 0000 call LIBFC_JetiBox_SetPos
69 000a 8091 0000 lds r24,UBat
70 000e 9091 0000 lds r25,(UBat)+1
71 0012 6AE0 ldi r22,lo8(10)
72 0014 70E0 ldi r23,hi8(10)
73 0016 0E94 0000 call __divmodhi4
74 001a 9F93 push r25
75 001c 8F93 push r24
76 001e 8091 0000 lds r24,UBat
77 0022 9091 0000 lds r25,(UBat)+1
78 0026 6AE0 ldi r22,lo8(10)
79 0028 70E0 ldi r23,hi8(10)
80 002a 0E94 0000 call __divmodhi4
81 002e 7F93 push r23
82 0030 6F93 push r22
83 0032 80E0 ldi r24,lo8(__c.14)
84 0034 90E0 ldi r25,hi8(__c.14)
85 0036 9F93 push r25
86 0038 8F93 push r24
87 003a C0E0 ldi r28,lo8(pm(LIBFC_JetiBox_Putchar))
88 003c D0E0 ldi r29,hi8(pm(LIBFC_JetiBox_Putchar))
89 003e DF93 push r29
90 0040 CF93 push r28
91 0042 E091 0000 lds r30,_printf_P
92 0046 F091 0000 lds r31,(_printf_P)+1
93 004a 0995 icall
94 004c 2DB7 in r18,__SP_L__
95 004e 3EB7 in r19,__SP_H__
96 0050 285F subi r18,lo8(-(8))
97 0052 3F4F sbci r19,hi8(-(8))
98 0054 2DBF out __SP_L__,r18
99 0056 8091 0000 lds r24,NaviDataOkay
100 005a 8823 tst r24
101 005c B9F1 breq .L2
102 005e 86E0 ldi r24,lo8(6)
103 0060 0E94 0000 call LIBFC_JetiBox_SetPos
104 0064 8091 0000 lds r24,GPSInfo+4
105 0068 9091 0000 lds r25,(GPSInfo+4)+1
106 006c 6AE0 ldi r22,lo8(10)
107 006e 70E0 ldi r23,hi8(10)
108 0070 0E94 0000 call __udivmodhi4
109 0074 7F93 push r23
110 0076 6F93 push r22
111 0078 8FED ldi r24,lo8(223)
112 007a 90E0 ldi r25,hi8(223)
113 007c 9F93 push r25
114 007e 8F93 push r24
115 0080 8091 0000 lds r24,ErsatzKompass
116 0084 9091 0000 lds r25,(ErsatzKompass)+1
117 0088 A091 0000 lds r26,(ErsatzKompass)+2
118 008c B091 0000 lds r27,(ErsatzKompass)+3
119 0090 2091 0000 lds r18,GIER_GRAD_FAKTOR
120 0094 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
121 0098 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
122 009c 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
123 00a0 BC01 movw r22,r24
124 00a2 CD01 movw r24,r26
125 00a4 0E94 0000 call __divmodsi4
126 00a8 3F93 push r19
127 00aa 2F93 push r18
128 00ac 80E0 ldi r24,lo8(__c.15)
129 00ae 90E0 ldi r25,hi8(__c.15)
130 00b0 9F93 push r25
131 00b2 8F93 push r24
132 00b4 DF93 push r29
133 00b6 CF93 push r28
134 00b8 E091 0000 lds r30,_printf_P
135 00bc F091 0000 lds r31,(_printf_P)+1
136 00c0 0995 icall
137 00c2 8DB7 in r24,__SP_L__
138 00c4 9EB7 in r25,__SP_H__
139 00c6 0A96 adiw r24,10
140 00c8 8DBF out __SP_L__,r24
141 00ca 12C0 rjmp .L3
142 .L2:
143 00cc 86E0 ldi r24,lo8(6)
144 00ce 0E94 0000 call LIBFC_JetiBox_SetPos
145 00d2 80E0 ldi r24,lo8(__c.16)
146 00d4 90E0 ldi r25,hi8(__c.16)
147 00d6 9F93 push r25
148 00d8 8F93 push r24
149 00da DF93 push r29
150 00dc CF93 push r28
151 00de E091 0000 lds r30,_printf_P
152 00e2 F091 0000 lds r31,(_printf_P)+1
153 00e6 0995 icall
154 00e8 0F90 pop __tmp_reg__
155 00ea 0F90 pop __tmp_reg__
156 00ec 0F90 pop __tmp_reg__
157 00ee 0F90 pop __tmp_reg__
158 .L3:
159 00f0 8091 0000 lds r24,NC_ErrorCode
160 00f4 8823 tst r24
161 00f6 C1F0 breq .L4
162 00f8 86E0 ldi r24,lo8(6)
163 00fa 0E94 0000 call LIBFC_JetiBox_SetPos
164 00fe 8091 0000 lds r24,NC_ErrorCode
165 0102 9927 clr r25
166 0104 9F93 push r25
167 0106 8F93 push r24
168 0108 80E0 ldi r24,lo8(__c.17)
169 010a 90E0 ldi r25,hi8(__c.17)
170 010c 9F93 push r25
171 010e 8F93 push r24
172 0110 DF93 push r29
173 0112 CF93 push r28
174 0114 E091 0000 lds r30,_printf_P
175 0118 F091 0000 lds r31,(_printf_P)+1
176 011c 0995 icall
177 011e 2DB7 in r18,__SP_L__
178 0120 3EB7 in r19,__SP_H__
179 0122 2A5F subi r18,lo8(-(6))
180 0124 3F4F sbci r19,hi8(-(6))
181 0126 2DBF out __SP_L__,r18
182 .L4:
183 0128 80E1 ldi r24,lo8(16)
184 012a 0E94 0000 call LIBFC_JetiBox_SetPos
185 012e 8091 0000 lds r24,FlugSekunden
186 0132 9091 0000 lds r25,(FlugSekunden)+1
187 0136 6CE3 ldi r22,lo8(60)
188 0138 70E0 ldi r23,hi8(60)
189 013a 0E94 0000 call __udivmodhi4
190 013e 9F93 push r25
191 0140 8F93 push r24
192 0142 8091 0000 lds r24,FlugSekunden
193 0146 9091 0000 lds r25,(FlugSekunden)+1
194 014a 6CE3 ldi r22,lo8(60)
195 014c 70E0 ldi r23,hi8(60)
196 014e 0E94 0000 call __udivmodhi4
197 0152 7F93 push r23
198 0154 6F93 push r22
199 0156 8091 0000 lds r24,Capacity+4
200 015a 9091 0000 lds r25,(Capacity+4)+1
201 015e 9F93 push r25
202 0160 8F93 push r24
203 0162 80E0 ldi r24,lo8(__c.18)
204 0164 90E0 ldi r25,hi8(__c.18)
205 0166 9F93 push r25
206 0168 8F93 push r24
207 016a C0E0 ldi r28,lo8(pm(LIBFC_JetiBox_Putchar))
208 016c D0E0 ldi r29,hi8(pm(LIBFC_JetiBox_Putchar))
209 016e DF93 push r29
210 0170 CF93 push r28
211 0172 E091 0000 lds r30,_printf_P
212 0176 F091 0000 lds r31,(_printf_P)+1
213 017a 0995 icall
214 017c 8091 0000 lds r24,EE_Parameter+13
215 0180 2DB7 in r18,__SP_L__
216 0182 3EB7 in r19,__SP_H__
217 0184 265F subi r18,lo8(-(10))
218 0186 3F4F sbci r19,hi8(-(10))
219 0188 2DBF out __SP_L__,r18
220 018a 80FF sbrs r24,0
221 018c 29C0 rjmp .L1
222 018e 8AE1 ldi r24,lo8(26)
223 0190 0E94 0000 call LIBFC_JetiBox_SetPos
224 0194 8091 0000 lds r24,VarioCharacter
225 0198 9927 clr r25
226 019a 9F93 push r25
227 019c 8F93 push r24
228 019e 8091 0000 lds r24,HoehenWert
229 01a2 9091 0000 lds r25,(HoehenWert)+1
230 01a6 A091 0000 lds r26,(HoehenWert)+2
231 01aa B091 0000 lds r27,(HoehenWert)+3
232 01ae BC01 movw r22,r24
233 01b0 CD01 movw r24,r26
234 01b2 24E6 ldi r18,lo8(100)
235 01b4 30E0 ldi r19,hi8(100)
236 01b6 40E0 ldi r20,hlo8(100)
237 01b8 50E0 ldi r21,hhi8(100)
238 01ba 0E94 0000 call __divmodsi4
239 01be 3F93 push r19
240 01c0 2F93 push r18
241 01c2 80E0 ldi r24,lo8(__c.19)
242 01c4 90E0 ldi r25,hi8(__c.19)
243 01c6 9F93 push r25
244 01c8 8F93 push r24
245 01ca DF93 push r29
246 01cc CF93 push r28
247 01ce E091 0000 lds r30,_printf_P
248 01d2 F091 0000 lds r31,(_printf_P)+1
249 01d6 0995 icall
250 01d8 8DB7 in r24,__SP_L__
251 01da 9EB7 in r25,__SP_H__
252 01dc 0896 adiw r24,8
253 01de 8DBF out __SP_L__,r24
254 .L1:
255 /* epilogue: frame size=0 */
256 01e0 DF91 pop r29
257 01e2 CF91 pop r28
258 01e4 0895 ret
259 /* epilogue end (size=3) */
260 /* function Menu_Status size 243 (238) */
262 .section .progmem.data
265 __c.10:
266 0053 2533 6920 .string "%3i %3i %3i %3i"
266 2533 6920
266 2533 6920
266 2533 6900
269 __c.11:
270 0063 2533 6920 .string "%3i %3i %3i %3i"
270 2533 6920
270 2533 6920
270 2533 6900
273 __c.12:
274 0073 5465 6D70 .string "Temperatures "
274 6572 6174
274 7572 6573
274 2020 2020
274 00
277 __c.13:
278 0084 2563 4320 .string "%cC "
278 2020 2020
278 00
279 .text
280 .global Menu_Temperature
282 Menu_Temperature:
283 /* prologue: frame size=0 */
284 01e6 CF93 push r28
285 01e8 DF93 push r29
286 /* prologue end (size=2) */
287 01ea 80E0 ldi r24,lo8(0)
288 01ec 0E94 0000 call LIBFC_JetiBox_SetPos
289 01f0 8091 0000 lds r24,Motor+31
290 01f4 9927 clr r25
291 01f6 87FD sbrc r24,7
292 01f8 9095 com r25
293 01fa 9F93 push r25
294 01fc 8F93 push r24
295 01fe 8091 0000 lds r24,Motor+23
296 0202 9927 clr r25
297 0204 87FD sbrc r24,7
298 0206 9095 com r25
299 0208 9F93 push r25
300 020a 8F93 push r24
301 020c 8091 0000 lds r24,Motor+15
302 0210 9927 clr r25
303 0212 87FD sbrc r24,7
304 0214 9095 com r25
305 0216 9F93 push r25
306 0218 8F93 push r24
307 021a 8091 0000 lds r24,Motor+7
308 021e 9927 clr r25
309 0220 87FD sbrc r24,7
310 0222 9095 com r25
311 0224 9F93 push r25
312 0226 8F93 push r24
313 0228 80E0 ldi r24,lo8(__c.10)
314 022a 90E0 ldi r25,hi8(__c.10)
315 022c 9F93 push r25
316 022e 8F93 push r24
317 0230 C0E0 ldi r28,lo8(pm(LIBFC_JetiBox_Putchar))
318 0232 D0E0 ldi r29,hi8(pm(LIBFC_JetiBox_Putchar))
319 0234 DF93 push r29
320 0236 CF93 push r28
321 0238 E091 0000 lds r30,_printf_P
322 023c F091 0000 lds r31,(_printf_P)+1
323 0240 0995 icall
324 0242 80E1 ldi r24,lo8(16)
325 0244 0E94 0000 call LIBFC_JetiBox_SetPos
326 0248 2DB7 in r18,__SP_L__
327 024a 3EB7 in r19,__SP_H__
328 024c 245F subi r18,lo8(-(12))
329 024e 3F4F sbci r19,hi8(-(12))
330 0250 2DBF out __SP_L__,r18
331 0252 8091 0000 lds r24,Motor+63
332 0256 9927 clr r25
333 0258 87FD sbrc r24,7
334 025a 9095 com r25
335 025c 9F93 push r25
336 025e 8F93 push r24
337 0260 8091 0000 lds r24,Motor+55
338 0264 9927 clr r25
339 0266 87FD sbrc r24,7
340 0268 9095 com r25
341 026a 9F93 push r25
342 026c 8F93 push r24
343 026e 8091 0000 lds r24,Motor+47
344 0272 9927 clr r25
345 0274 87FD sbrc r24,7
346 0276 9095 com r25
347 0278 9F93 push r25
348 027a 8F93 push r24
349 027c 8091 0000 lds r24,Motor+39
350 0280 9927 clr r25
351 0282 87FD sbrc r24,7
352 0284 9095 com r25
353 0286 9F93 push r25
354 0288 8F93 push r24
355 028a 80E0 ldi r24,lo8(__c.11)
356 028c 90E0 ldi r25,hi8(__c.11)
357 028e 9F93 push r25
358 0290 8F93 push r24
359 0292 DF93 push r29
360 0294 CF93 push r28
361 0296 E091 0000 lds r30,_printf_P
362 029a F091 0000 lds r31,(_printf_P)+1
363 029e 0995 icall
364 02a0 8091 0000 lds r24,RequiredMotors
365 02a4 2DB7 in r18,__SP_L__
366 02a6 3EB7 in r19,__SP_H__
367 02a8 245F subi r18,lo8(-(12))
368 02aa 3F4F sbci r19,hi8(-(12))
369 02ac 2DBF out __SP_L__,r18
370 02ae 8530 cpi r24,lo8(5)
371 02b0 98F4 brsh .L7
372 02b2 80E1 ldi r24,lo8(16)
373 02b4 0E94 0000 call LIBFC_JetiBox_SetPos
374 02b8 80E0 ldi r24,lo8(__c.12)
375 02ba 90E0 ldi r25,hi8(__c.12)
376 02bc 9F93 push r25
377 02be 8F93 push r24
378 02c0 DF93 push r29
379 02c2 CF93 push r28
380 02c4 E091 0000 lds r30,_printf_P
381 02c8 F091 0000 lds r31,(_printf_P)+1
382 02cc 0995 icall
383 02ce 0F90 pop __tmp_reg__
384 02d0 0F90 pop __tmp_reg__
385 02d2 0F90 pop __tmp_reg__
386 02d4 0F90 pop __tmp_reg__
387 02d6 18C0 rjmp .L6
388 .L7:
389 02d8 8730 cpi r24,lo8(7)
390 02da B0F4 brsh .L6
391 02dc 88E1 ldi r24,lo8(24)
392 02de 0E94 0000 call LIBFC_JetiBox_SetPos
393 02e2 8FED ldi r24,lo8(223)
394 02e4 90E0 ldi r25,hi8(223)
395 02e6 9F93 push r25
396 02e8 8F93 push r24
397 02ea 80E0 ldi r24,lo8(__c.13)
398 02ec 90E0 ldi r25,hi8(__c.13)
399 02ee 9F93 push r25
400 02f0 8F93 push r24
401 02f2 DF93 push r29
402 02f4 CF93 push r28
403 02f6 E091 0000 lds r30,_printf_P
404 02fa F091 0000 lds r31,(_printf_P)+1
405 02fe 0995 icall
406 0300 8DB7 in r24,__SP_L__
407 0302 9EB7 in r25,__SP_H__
408 0304 0696 adiw r24,6
409 0306 8DBF out __SP_L__,r24
410 .L6:
411 /* epilogue: frame size=0 */
412 0308 DF91 pop r29
413 030a CF91 pop r28
414 030c 0895 ret
415 /* epilogue end (size=3) */
416 /* function Menu_Temperature size 148 (143) */
418 .section .progmem.data
421 __c.8:
422 008d 2532 692E .string "%2i.%1iV %3i.%1iA"
422 2531 6956
422 2020 2533
422 692E 2531
422 6941 00
425 __c.9:
426 00a0 2534 6957 .string "%4iW %6imAh"
426 2025 3669
426 6D41 6800
427 .text
428 .global Menu_Battery
430 Menu_Battery:
431 /* prologue: frame size=0 */
432 030e 0F93 push r16
433 0310 1F93 push r17
434 /* prologue end (size=2) */
435 0312 80E0 ldi r24,lo8(0)
436 0314 0E94 0000 call LIBFC_JetiBox_SetPos
437 0318 2AE0 ldi r18,lo8(10)
438 031a 30E0 ldi r19,hi8(10)
439 031c 8091 0000 lds r24,Capacity
440 0320 9091 0000 lds r25,(Capacity)+1
441 0324 B901 movw r22,r18
442 0326 0E94 0000 call __udivmodhi4
443 032a 9F93 push r25
444 032c 8F93 push r24
445 032e 8091 0000 lds r24,Capacity
446 0332 9091 0000 lds r25,(Capacity)+1
447 0336 B901 movw r22,r18
448 0338 0E94 0000 call __udivmodhi4
449 033c 7F93 push r23
450 033e 6F93 push r22
451 0340 8091 0000 lds r24,UBat
452 0344 9091 0000 lds r25,(UBat)+1
453 0348 B901 movw r22,r18
454 034a 0E94 0000 call __divmodhi4
455 034e 9F93 push r25
456 0350 8F93 push r24
457 0352 8091 0000 lds r24,UBat
458 0356 9091 0000 lds r25,(UBat)+1
459 035a B901 movw r22,r18
460 035c 0E94 0000 call __divmodhi4
461 0360 7F93 push r23
462 0362 6F93 push r22
463 0364 80E0 ldi r24,lo8(__c.8)
464 0366 90E0 ldi r25,hi8(__c.8)
465 0368 9F93 push r25
466 036a 8F93 push r24
467 036c 00E0 ldi r16,lo8(pm(LIBFC_JetiBox_Putchar))
468 036e 10E0 ldi r17,hi8(pm(LIBFC_JetiBox_Putchar))
469 0370 1F93 push r17
470 0372 0F93 push r16
471 0374 E091 0000 lds r30,_printf_P
472 0378 F091 0000 lds r31,(_printf_P)+1
473 037c 0995 icall
474 037e 80E1 ldi r24,lo8(16)
475 0380 0E94 0000 call LIBFC_JetiBox_SetPos
476 0384 8DB7 in r24,__SP_L__
477 0386 9EB7 in r25,__SP_H__
478 0388 0C96 adiw r24,12
479 038a 8DBF out __SP_L__,r24
480 038c 8091 0000 lds r24,Capacity+4
481 0390 9091 0000 lds r25,(Capacity+4)+1
482 0394 9F93 push r25
483 0396 8F93 push r24
484 0398 8091 0000 lds r24,Capacity+2
485 039c 9091 0000 lds r25,(Capacity+2)+1
486 03a0 9F93 push r25
487 03a2 8F93 push r24
488 03a4 80E0 ldi r24,lo8(__c.9)
489 03a6 90E0 ldi r25,hi8(__c.9)
490 03a8 9F93 push r25
491 03aa 8F93 push r24
492 03ac 1F93 push r17
493 03ae 0F93 push r16
494 03b0 E091 0000 lds r30,_printf_P
495 03b4 F091 0000 lds r31,(_printf_P)+1
496 03b8 0995 icall
497 03ba 8DB7 in r24,__SP_L__
498 03bc 9EB7 in r25,__SP_H__
499 03be 0896 adiw r24,8
500 03c0 8DBF out __SP_L__,r24
501 /* epilogue: frame size=0 */
502 03c2 1F91 pop r17
503 03c4 0F91 pop r16
504 03c6 0895 ret
505 /* epilogue end (size=3) */
506 /* function Menu_Battery size 93 (88) */
508 .section .progmem.data
511 __c.2:
512 00ac 2532 756D .string "%2um/s Sat:%d "
512 2F73 2053
512 6174 3A25
512 6420 00
515 __c.3:
516 00bb 2020 3344 .string " 3D"
516 00
519 __c.4:
520 00c0 4E6F 4678 .string "NoFx"
520 00
523 __c.5:
524 00c5 4447 5053 .string "DGPS"
524 00
527 __c.6:
528 00ca 486F 6D65 .string "Home:%3dm %3d%c"
528 3A25 3364
528 6D20 2533
528 6425 6300
531 __c.7:
532 00da 4E6F 204E .string "No NaviCtrl!"
532 6176 6943
532 7472 6C21
532 00
533 .text
534 .global Menu_PosInfo
536 Menu_PosInfo:
537 /* prologue: frame size=0 */
538 03c8 0F93 push r16
539 03ca 1F93 push r17
540 03cc CF93 push r28
541 03ce DF93 push r29
542 /* prologue end (size=4) */
543 03d0 8091 0000 lds r24,NaviDataOkay
544 03d4 C0E0 ldi r28,lo8(pm(LIBFC_JetiBox_Putchar))
545 03d6 D0E0 ldi r29,hi8(pm(LIBFC_JetiBox_Putchar))
546 03d8 8823 tst r24
547 03da 09F4 brne .+2
548 03dc 78C0 rjmp .L12
549 03de 80E0 ldi r24,lo8(0)
550 03e0 0E94 0000 call LIBFC_JetiBox_SetPos
551 03e4 8091 0000 lds r24,GPSInfo+1
552 03e8 9927 clr r25
553 03ea 9F93 push r25
554 03ec 8F93 push r24
555 03ee 8091 0000 lds r24,GPSInfo+3
556 03f2 9927 clr r25
557 03f4 9F93 push r25
558 03f6 8F93 push r24
559 03f8 80E0 ldi r24,lo8(__c.2)
560 03fa 90E0 ldi r25,hi8(__c.2)
561 03fc 9F93 push r25
562 03fe 8F93 push r24
563 0400 8E01 movw r16,r28
564 0402 DF93 push r29
565 0404 CF93 push r28
566 0406 E091 0000 lds r30,_printf_P
567 040a F091 0000 lds r31,(_printf_P)+1
568 040e 0995 icall
569 0410 8DB7 in r24,__SP_L__
570 0412 9EB7 in r25,__SP_H__
571 0414 0896 adiw r24,8
572 0416 8DBF out __SP_L__,r24
573 0418 8091 0000 lds r24,GPSInfo+2
574 041c 8330 cpi r24,lo8(3)
575 041e 31F4 brne .L17
576 0420 8CE0 ldi r24,lo8(12)
577 0422 0E94 0000 call LIBFC_JetiBox_SetPos
578 0426 80E0 ldi r24,lo8(__c.3)
579 0428 90E0 ldi r25,hi8(__c.3)
580 042a 05C0 rjmp .L20
581 .L17:
582 042c 8CE0 ldi r24,lo8(12)
583 042e 0E94 0000 call LIBFC_JetiBox_SetPos
584 0432 80E0 ldi r24,lo8(__c.4)
585 0434 90E0 ldi r25,hi8(__c.4)
586 .L20:
587 0436 9F93 push r25
588 0438 8F93 push r24
589 043a DF93 push r29
590 043c CF93 push r28
591 043e E091 0000 lds r30,_printf_P
592 0442 F091 0000 lds r31,(_printf_P)+1
593 0446 0995 icall
594 0448 0F90 pop __tmp_reg__
595 044a 0F90 pop __tmp_reg__
596 044c 0F90 pop __tmp_reg__
597 044e 0F90 pop __tmp_reg__
598 0450 8091 0000 lds r24,GPSInfo
599 0454 81FF sbrs r24,1
600 0456 12C0 rjmp .L18
601 0458 8CE0 ldi r24,lo8(12)
602 045a 0E94 0000 call LIBFC_JetiBox_SetPos
603 045e 80E0 ldi r24,lo8(__c.5)
604 0460 90E0 ldi r25,hi8(__c.5)
605 0462 9F93 push r25
606 0464 8F93 push r24
607 0466 1F93 push r17
608 0468 0F93 push r16
609 046a E091 0000 lds r30,_printf_P
610 046e F091 0000 lds r31,(_printf_P)+1
611 0472 0995 icall
612 0474 0F90 pop __tmp_reg__
613 0476 0F90 pop __tmp_reg__
614 0478 0F90 pop __tmp_reg__
615 047a 0F90 pop __tmp_reg__
616 .L18:
617 047c 80E1 ldi r24,lo8(16)
618 047e 0E94 0000 call LIBFC_JetiBox_SetPos
619 0482 8FED ldi r24,lo8(223)
620 0484 90E0 ldi r25,hi8(223)
621 0486 9F93 push r25
622 0488 8F93 push r24
623 048a 8091 0000 lds r24,GPSInfo+6
624 048e 9091 0000 lds r25,(GPSInfo+6)+1
625 0492 9F93 push r25
626 0494 8F93 push r24
627 0496 8091 0000 lds r24,GPSInfo+4
628 049a 9091 0000 lds r25,(GPSInfo+4)+1
629 049e 6AE0 ldi r22,lo8(10)
630 04a0 70E0 ldi r23,hi8(10)
631 04a2 0E94 0000 call __udivmodhi4
632 04a6 7F93 push r23
633 04a8 6F93 push r22
634 04aa 80E0 ldi r24,lo8(__c.6)
635 04ac 90E0 ldi r25,hi8(__c.6)
636 04ae 9F93 push r25
637 04b0 8F93 push r24
638 04b2 80E0 ldi r24,lo8(pm(LIBFC_JetiBox_Putchar))
639 04b4 90E0 ldi r25,hi8(pm(LIBFC_JetiBox_Putchar))
640 04b6 9F93 push r25
641 04b8 8F93 push r24
642 04ba E091 0000 lds r30,_printf_P
643 04be F091 0000 lds r31,(_printf_P)+1
644 04c2 0995 icall
645 04c4 8DB7 in r24,__SP_L__
646 04c6 9EB7 in r25,__SP_H__
647 04c8 0A96 adiw r24,10
648 04ca 8DBF out __SP_L__,r24
649 04cc 12C0 rjmp .L11
650 .L12:
651 04ce 82E0 ldi r24,lo8(2)
652 04d0 0E94 0000 call LIBFC_JetiBox_SetPos
653 04d4 80E0 ldi r24,lo8(__c.7)
654 04d6 90E0 ldi r25,hi8(__c.7)
655 04d8 9F93 push r25
656 04da 8F93 push r24
657 04dc DF93 push r29
658 04de CF93 push r28
659 04e0 E091 0000 lds r30,_printf_P
660 04e4 F091 0000 lds r31,(_printf_P)+1
661 04e8 0995 icall
662 04ea 0F90 pop __tmp_reg__
663 04ec 0F90 pop __tmp_reg__
664 04ee 0F90 pop __tmp_reg__
665 04f0 0F90 pop __tmp_reg__
666 .L11:
667 /* epilogue: frame size=0 */
668 04f2 DF91 pop r29
669 04f4 CF91 pop r28
670 04f6 1F91 pop r17
671 04f8 0F91 pop r16
672 04fa 0895 ret
673 /* epilogue end (size=5) */
674 /* function Menu_PosInfo size 154 (145) */
676 .lcomm item.0,1
677 .lcomm last_item.1,1
678 .global JetiBox_Update
680 JetiBox_Update:
681 /* prologue: frame size=0 */
682 04fc CF93 push r28
683 /* prologue end (size=1) */
684 04fe C82F mov r28,r24
685 0500 2091 0000 lds r18,item.0
686 0504 2093 0000 sts last_item.1,r18
687 0508 9927 clr r25
688 050a 8F32 cpi r24,47
689 050c 9105 cpc r25,__zero_reg__
690 050e 09F1 breq .L27
691 0510 8033 cpi r24,48
692 0512 9105 cpc r25,__zero_reg__
693 0514 1CF4 brge .L30
694 0516 4F97 sbiw r24,31
695 0518 A1F0 breq .L26
696 051a 2CC0 rjmp .L22
697 .L30:
698 051c 8F34 cpi r24,79
699 051e 9105 cpc r25,__zero_reg__
700 0520 01F1 breq .L28
701 0522 8F38 cpi r24,143
702 0524 9105 cpc r25,__zero_reg__
703 0526 31F5 brne .L22
704 0528 2223 tst r18
705 052a 19F4 brne .L24
706 052c 81E0 ldi r24,lo8(1)
707 052e 90E0 ldi r25,hi8(1)
708 0530 38C0 rjmp .L21
709 .L24:
710 0532 86E0 ldi r24,lo8(6)
711 0534 289F mul r18,r24
712 0536 F001 movw r30,r0
713 0538 1124 clr r1
714 053a E050 subi r30,lo8(-(JetiBox_Menu))
715 053c F040 sbci r31,hi8(-(JetiBox_Menu))
716 /* #APP */
717 053e 8491 lpm r24, Z
718
719 /* #NOAPP */
720 0540 17C0 rjmp .L32
721 .L26:
722 0542 86E0 ldi r24,lo8(6)
723 0544 289F mul r18,r24
724 0546 F001 movw r30,r0
725 0548 1124 clr r1
726 054a E050 subi r30,lo8(-(JetiBox_Menu+1))
727 054c F040 sbci r31,hi8(-(JetiBox_Menu+1))
728 /* #APP */
729 054e 8491 lpm r24, Z
730
731 /* #NOAPP */
732 0550 0FC0 rjmp .L32
733 .L27:
734 0552 86E0 ldi r24,lo8(6)
735 0554 289F mul r18,r24
736 0556 F001 movw r30,r0
737 0558 1124 clr r1
738 055a E050 subi r30,lo8(-(JetiBox_Menu+2))
739 055c F040 sbci r31,hi8(-(JetiBox_Menu+2))
740 /* #APP */
741 055e 8491 lpm r24, Z
742
743 /* #NOAPP */
744 0560 07C0 rjmp .L32
745 .L28:
746 0562 86E0 ldi r24,lo8(6)
747 0564 289F mul r18,r24
748 0566 F001 movw r30,r0
749 0568 1124 clr r1
750 056a E050 subi r30,lo8(-(JetiBox_Menu+3))
751 056c F040 sbci r31,hi8(-(JetiBox_Menu+3))
752 /* #APP */
753 056e 8491 lpm r24, Z
754
755 /* #NOAPP */
756 .L32:
757 0570 8093 0000 sts item.0,r24
758 .L22:
759 0574 9091 0000 lds r25,item.0
760 0578 8091 0000 lds r24,last_item.1
761 057c 9813 cpse r25,r24
762 057e C0E0 ldi r28,lo8(0)
763 .L31:
764 0580 0E94 0000 call LIBFC_JetiBox_Clear
765 0584 9091 0000 lds r25,item.0
766 0588 86E0 ldi r24,lo8(6)
767 058a 989F mul r25,r24
768 058c F001 movw r30,r0
769 058e 1124 clr r1
770 0590 E050 subi r30,lo8(-(JetiBox_Menu+4))
771 0592 F040 sbci r31,hi8(-(JetiBox_Menu+4))
772 /* #APP */
773 0594 2591 lpm r18, Z+
774 0596 3491 lpm r19, Z
775
776 /* #NOAPP */
777 0598 8C2F mov r24,r28
778 059a F901 movw r30,r18
779 059c 0995 icall
780 059e 80E0 ldi r24,lo8(0)
781 05a0 90E0 ldi r25,hi8(0)
782 .L21:
783 /* epilogue: frame size=0 */
784 05a2 CF91 pop r28
785 05a4 0895 ret
786 /* epilogue end (size=2) */
787 /* function JetiBox_Update size 103 (100) */
789 /* File "jetimenu.c": code 741 = 0x02e5 ( 714), prologues 11, epilogues 16 */
DEFINED SYMBOLS
*ABS*:00000000 jetimenu.c
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:14 .progmem.data:00000000 JetiBox_Menu
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:62 .text:00000000 Menu_Status
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:282 .text:000001e6 Menu_Temperature
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:430 .text:0000030e Menu_Battery
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:536 .text:000003c8 Menu_PosInfo
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:37 .progmem.data:00000018 __c.14
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:41 .progmem.data:00000021 __c.15
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:45 .progmem.data:0000002d __c.16
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:49 .progmem.data:00000034 __c.17
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:53 .progmem.data:0000003f __c.18
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:57 .progmem.data:0000004c __c.19
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:265 .progmem.data:00000053 __c.10
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:269 .progmem.data:00000063 __c.11
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:273 .progmem.data:00000073 __c.12
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:277 .progmem.data:00000084 __c.13
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:421 .progmem.data:0000008d __c.8
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:425 .progmem.data:000000a0 __c.9
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:511 .progmem.data:000000ac __c.2
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:515 .progmem.data:000000bb __c.3
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:519 .progmem.data:000000c0 __c.4
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:523 .progmem.data:000000c5 __c.5
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:527 .progmem.data:000000ca __c.6
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:531 .progmem.data:000000da __c.7
.bss:00000000 item.0
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:676 .bss:00000001 last_item.1
C:\Users\Arthur-P\AppData\Local\Temp/ccCAbaaa.s:680 .text:000004fc JetiBox_Update
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
LIBFC_JetiBox_SetPos
UBat
__divmodhi4
LIBFC_JetiBox_Putchar
_printf_P
NaviDataOkay
GPSInfo
__udivmodhi4
ErsatzKompass
GIER_GRAD_FAKTOR
__divmodsi4
NC_ErrorCode
FlugSekunden
Capacity
EE_Parameter
VarioCharacter
HoehenWert
Motor
RequiredMotors
LIBFC_JetiBox_Clear
/branches/V0.80d-Arthur-P/led.c
0,0 → 1,99
#include <inttypes.h>
#include "main.h"
 
uint16_t LED1_Timing = 0;
uint16_t LED2_Timing = 0;
unsigned char J16Blinkcount = 0, J16Mask = 1;
unsigned char J17Blinkcount = 0, J17Mask = 1;
 
// initializes the LED control outputs J16, J17
void LED_Init(void)
{
// set PC2 & PC3 as output (control of J16 & J17)
DDRC |= (1<<DDC2)|(1<<DDC3);
J16_OFF;
J17_OFF;
J16Blinkcount = 0; J16Mask = 128;
J17Blinkcount = 0; J17Mask = 128;
}
 
// called in UpdateMotors() every 2ms
void LED_Update(void)
{
static char delay = 0;
static unsigned char J16Bitmask = 0;
static unsigned char J17Bitmask = 0;
static unsigned char J16Warn = 0, J17Warn = 0;
if(!delay--) // 10ms Intervall
{
delay = 4;
 
if(FCFlags & (FCFLAG_LOWBAT | FCFLAG_NOTLANDUNG | FCFLAG_I2CERR))
{
if(EE_Parameter.WARN_J16_Bitmask)
{
if(!J16Warn) J16Blinkcount = 4;
J16Warn = 1;
}
if(EE_Parameter.WARN_J17_Bitmask)
{
if(!J17Warn) J17Blinkcount = 4;
J17Warn = 1;
}
}
else
{
J16Warn = 0;
J17Warn = 0;
J16Bitmask = EE_Parameter.J16Bitmask;
J17Bitmask = EE_Parameter.J17Bitmask;
}
 
if(!J16Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED1) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing > 220)) {if(J16Bitmask & 128) J16_ON; else J16_OFF;}
else
if((EE_Parameter.J16Timing > 247) && (Parameter_J16Timing < 10)) {if(J16Bitmask & 128) J16_OFF; else J16_ON;}
else
if(!J16Blinkcount--)
{
J16Blinkcount = Parameter_J16Timing-1;
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
if(J16Mask & J16Bitmask) J16_ON; else J16_OFF;
}
}
else
if(!J16Blinkcount--)
{
J16Blinkcount = 10-1;
if(J16Mask == 1) J16Mask = 128; else J16Mask /= 2;
if(J16Mask & EE_Parameter.WARN_J16_Bitmask) J16_ON; else J16_OFF;
}
 
if(!J17Warn)
{
if((EE_Parameter.BitConfig & CFG_MOTOR_BLINK) && !MotorenEin) {if(EE_Parameter.BitConfig & CFG_MOTOR_OFF_LED2) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing > 220)) {if(J17Bitmask & 128) J17_ON; else J17_OFF;}
else
if((EE_Parameter.J17Timing > 247) && (Parameter_J17Timing < 10)) {if(J17Bitmask & 128) J17_OFF; else J17_ON;}
else
if(!J17Blinkcount--)
{
J17Blinkcount = Parameter_J17Timing-1;
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
if(J17Mask & J17Bitmask) J17_ON; else J17_OFF;
}
}
else
if(!J17Blinkcount--)
{
J17Blinkcount = 10-1;
if(J17Mask == 1) J17Mask = 128; else J17Mask /= 2;
if(J17Mask & EE_Parameter.WARN_J17_Bitmask) J17_ON; else J17_OFF;
}
}
}
 
/branches/V0.80d-Arthur-P/led.d
0,0 → 1,3
led.o led.d : led.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/led.h
0,0 → 1,11
#include <avr/io.h>
 
#define J16_ON PORTC |= (1<<PORTC2)
#define J16_OFF PORTC &= ~(1<<PORTC2)
#define J16_TOGGLE PORTC ^= (1<<PORTC2)
#define J17_ON PORTC |= (1<<PORTC3)
#define J17_OFF PORTC &= ~(1<<PORTC3)
#define J17_TOGGLE PORTC ^= (1<<PORTC3)
 
extern void LED_Init(void);
extern void LED_Update(void);
/branches/V0.80d-Arthur-P/led.lst
0,0 → 1,315
1 .file "led.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global J17Mask
11 .data
14 J17Mask:
15 0000 01 .byte 1
16 .global J17Blinkcount
17 .global J17Blinkcount
18 .section .bss
21 J17Blinkcount:
22 0000 00 .skip 1,0
23 .global J16Mask
24 .data
27 J16Mask:
28 0001 01 .byte 1
29 .global J16Blinkcount
30 .global J16Blinkcount
31 .section .bss
34 J16Blinkcount:
35 0001 00 .skip 1,0
36 .global LED2_Timing
37 .global LED2_Timing
40 LED2_Timing:
41 0002 0000 .skip 2,0
42 .global LED1_Timing
43 .global LED1_Timing
46 LED1_Timing:
47 0004 0000 .skip 2,0
48 .text
49 .global LED_Init
51 LED_Init:
52 /* prologue: frame size=0 */
53 /* prologue end (size=0) */
54 0000 87B1 in r24,39-0x20
55 0002 8C60 ori r24,lo8(12)
56 0004 87B9 out 39-0x20,r24
57 0006 4298 cbi 40-0x20,2
58 0008 4398 cbi 40-0x20,3
59 000a 1092 0000 sts J16Blinkcount,__zero_reg__
60 000e 80E8 ldi r24,lo8(-128)
61 0010 8093 0000 sts J16Mask,r24
62 0014 1092 0000 sts J17Blinkcount,__zero_reg__
63 0018 8093 0000 sts J17Mask,r24
64 /* epilogue: frame size=0 */
65 001c 0895 ret
66 /* epilogue end (size=1) */
67 /* function LED_Init size 15 (14) */
69 .lcomm delay.0,1
70 .lcomm J16Bitmask.1,1
71 .lcomm J17Bitmask.2,1
72 .lcomm J16Warn.3,1
73 .lcomm J17Warn.4,1
74 .global LED_Update
76 LED_Update:
77 /* prologue: frame size=0 */
78 /* prologue end (size=0) */
79 001e 8091 0000 lds r24,delay.0
80 0022 8150 subi r24,lo8(-(-1))
81 0024 8093 0000 sts delay.0,r24
82 0028 8F3F cpi r24,lo8(-1)
83 002a 09F0 breq .+2
84 002c F4C0 rjmp .L2
85 002e 94E0 ldi r25,lo8(4)
86 0030 9093 0000 sts delay.0,r25
87 0034 8091 0000 lds r24,FCFlags
88 0038 807B andi r24,lo8(-80)
89 003a E1F0 breq .L4
90 003c 8091 0000 lds r24,EE_Parameter+76
91 0040 8823 tst r24
92 0042 49F0 breq .L5
93 0044 8091 0000 lds r24,J16Warn.3
94 0048 8823 tst r24
95 004a 11F4 brne .L6
96 004c 9093 0000 sts J16Blinkcount,r25
97 .L6:
98 0050 81E0 ldi r24,lo8(1)
99 0052 8093 0000 sts J16Warn.3,r24
100 .L5:
101 0056 8091 0000 lds r24,EE_Parameter+77
102 005a 8823 tst r24
103 005c B9F0 breq .L9
104 005e 8091 0000 lds r24,J17Warn.4
105 0062 8823 tst r24
106 0064 19F4 brne .L8
107 0066 84E0 ldi r24,lo8(4)
108 0068 8093 0000 sts J17Blinkcount,r24
109 .L8:
110 006c 81E0 ldi r24,lo8(1)
111 006e 8093 0000 sts J17Warn.4,r24
112 0072 0CC0 rjmp .L9
113 .L4:
114 0074 8093 0000 sts J16Warn.3,r24
115 0078 8093 0000 sts J17Warn.4,r24
116 007c 8091 0000 lds r24,EE_Parameter+72
117 0080 8093 0000 sts J16Bitmask.1,r24
118 0084 8091 0000 lds r24,EE_Parameter+74
119 0088 8093 0000 sts J17Bitmask.2,r24
120 .L9:
121 008c 8091 0000 lds r24,J16Warn.3
122 0090 8823 tst r24
123 0092 09F0 breq .+2
124 0094 40C0 rjmp .L10
125 0096 8091 0000 lds r24,EE_Parameter+97
126 009a 282F mov r18,r24
127 009c 3327 clr r19
128 009e 24FF sbrs r18,4
129 00a0 07C0 rjmp .L11
130 00a2 8091 0000 lds r24,MotorenEin
131 00a6 8823 tst r24
132 00a8 19F4 brne .L11
133 00aa 25FD sbrc r18,5
134 00ac 4DC0 rjmp .L60
135 00ae 4EC0 rjmp .L32
136 .L11:
137 00b0 9091 0000 lds r25,EE_Parameter+73
138 00b4 983F cpi r25,lo8(-8)
139 00b6 50F0 brlo .L15
140 00b8 8091 0000 lds r24,Parameter_J16Timing
141 00bc 8D3D cpi r24,lo8(-35)
142 00be 30F0 brlo .L15
143 00c0 8091 0000 lds r24,J16Bitmask.1
144 00c4 8823 tst r24
145 00c6 0CF4 brge .+2
146 00c8 3FC0 rjmp .L60
147 00ca 40C0 rjmp .L32
148 .L15:
149 00cc 983F cpi r25,lo8(-8)
150 00ce 48F0 brlo .L19
151 00d0 8091 0000 lds r24,Parameter_J16Timing
152 00d4 8A30 cpi r24,lo8(10)
153 00d6 28F4 brsh .L19
154 00d8 8091 0000 lds r24,J16Bitmask.1
155 00dc 8823 tst r24
156 00de B4F1 brlt .L32
157 00e0 33C0 rjmp .L60
158 .L19:
159 00e2 8091 0000 lds r24,J16Blinkcount
160 00e6 8150 subi r24,lo8(-(-1))
161 00e8 8093 0000 sts J16Blinkcount,r24
162 00ec 8F3F cpi r24,lo8(-1)
163 00ee 79F5 brne .L28
164 00f0 8091 0000 lds r24,Parameter_J16Timing
165 00f4 8150 subi r24,lo8(-(-1))
166 00f6 8093 0000 sts J16Blinkcount,r24
167 00fa 8091 0000 lds r24,J16Mask
168 00fe 8130 cpi r24,lo8(1)
169 0100 11F4 brne .L24
170 0102 80E8 ldi r24,lo8(-128)
171 0104 01C0 rjmp .L58
172 .L24:
173 0106 8695 lsr r24
174 .L58:
175 0108 8093 0000 sts J16Mask,r24
176 010c 8091 0000 lds r24,J16Mask
177 0110 9091 0000 lds r25,J16Bitmask.1
178 0114 17C0 rjmp .L67
179 .L10:
180 0116 8091 0000 lds r24,J16Blinkcount
181 011a 8150 subi r24,lo8(-(-1))
182 011c 8093 0000 sts J16Blinkcount,r24
183 0120 8F3F cpi r24,lo8(-1)
184 0122 A9F4 brne .L28
185 0124 89E0 ldi r24,lo8(9)
186 0126 8093 0000 sts J16Blinkcount,r24
187 012a 8091 0000 lds r24,J16Mask
188 012e 8130 cpi r24,lo8(1)
189 0130 11F4 brne .L30
190 0132 80E8 ldi r24,lo8(-128)
191 0134 01C0 rjmp .L59
192 .L30:
193 0136 8695 lsr r24
194 .L59:
195 0138 8093 0000 sts J16Mask,r24
196 013c 8091 0000 lds r24,J16Mask
197 0140 9091 0000 lds r25,EE_Parameter+76
198 .L67:
199 0144 8923 and r24,r25
200 0146 11F0 breq .L32
201 .L60:
202 0148 429A sbi 40-0x20,2
203 014a 01C0 rjmp .L28
204 .L32:
205 014c 4298 cbi 40-0x20,2
206 .L28:
207 014e 8091 0000 lds r24,J17Warn.4
208 0152 8823 tst r24
209 0154 09F0 breq .+2
210 0156 43C0 rjmp .L34
211 0158 8091 0000 lds r24,EE_Parameter+97
212 015c 282F mov r18,r24
213 015e 3327 clr r19
214 0160 24FF sbrs r18,4
215 0162 07C0 rjmp .L35
216 0164 8091 0000 lds r24,MotorenEin
217 0168 8823 tst r24
218 016a 19F4 brne .L35
219 016c 26FD sbrc r18,6
220 016e 50C0 rjmp .L66
221 0170 34C0 rjmp .L50
222 .L35:
223 0172 9091 0000 lds r25,EE_Parameter+75
224 0176 983F cpi r25,lo8(-8)
225 0178 50F0 brlo .L39
226 017a 8091 0000 lds r24,Parameter_J17Timing
227 017e 8D3D cpi r24,lo8(-35)
228 0180 30F0 brlo .L39
229 0182 8091 0000 lds r24,J17Bitmask.2
230 0186 8823 tst r24
231 0188 0CF4 brge .+2
232 018a 42C0 rjmp .L66
233 018c 26C0 rjmp .L50
234 .L39:
235 018e 983F cpi r25,lo8(-8)
236 0190 48F0 brlo .L43
237 0192 8091 0000 lds r24,Parameter_J17Timing
238 0196 8A30 cpi r24,lo8(10)
239 0198 28F4 brsh .L43
240 019a 8091 0000 lds r24,J17Bitmask.2
241 019e 8823 tst r24
242 01a0 E4F0 brlt .L50
243 01a2 36C0 rjmp .L66
244 .L43:
245 01a4 8091 0000 lds r24,J17Blinkcount
246 01a8 8150 subi r24,lo8(-(-1))
247 01aa 8093 0000 sts J17Blinkcount,r24
248 01ae 8F3F cpi r24,lo8(-1)
249 01b0 91F5 brne .L2
250 01b2 8091 0000 lds r24,Parameter_J17Timing
251 01b6 8150 subi r24,lo8(-(-1))
252 01b8 8093 0000 sts J17Blinkcount,r24
253 01bc 8091 0000 lds r24,J17Mask
254 01c0 8130 cpi r24,lo8(1)
255 01c2 11F4 brne .L48
256 01c4 80E8 ldi r24,lo8(-128)
257 01c6 01C0 rjmp .L61
258 .L48:
259 01c8 8695 lsr r24
260 .L61:
261 01ca 8093 0000 sts J17Mask,r24
262 01ce 8091 0000 lds r24,J17Mask
263 01d2 9091 0000 lds r25,J17Bitmask.2
264 01d6 8923 and r24,r25
265 01d8 D9F4 brne .L66
266 .L50:
267 01da 4398 cbi 40-0x20,3
268 01dc 0895 ret
269 .L34:
270 01de 8091 0000 lds r24,J17Blinkcount
271 01e2 8150 subi r24,lo8(-(-1))
272 01e4 8093 0000 sts J17Blinkcount,r24
273 01e8 8F3F cpi r24,lo8(-1)
274 01ea A9F4 brne .L2
275 01ec 89E0 ldi r24,lo8(9)
276 01ee 8093 0000 sts J17Blinkcount,r24
277 01f2 8091 0000 lds r24,J17Mask
278 01f6 8130 cpi r24,lo8(1)
279 01f8 11F4 brne .L54
280 01fa 80E8 ldi r24,lo8(-128)
281 01fc 01C0 rjmp .L62
282 .L54:
283 01fe 8695 lsr r24
284 .L62:
285 0200 8093 0000 sts J17Mask,r24
286 0204 8091 0000 lds r24,J17Mask
287 0208 9091 0000 lds r25,EE_Parameter+77
288 020c 8923 and r24,r25
289 020e 11F0 breq .L56
290 .L66:
291 0210 439A sbi 40-0x20,3
292 0212 0895 ret
293 .L56:
294 0214 4398 cbi 40-0x20,3
295 .L2:
296 0216 0895 ret
297 /* epilogue: frame size=0 */
298 /* epilogue: noreturn */
299 /* epilogue end (size=0) */
300 /* function LED_Update size 261 (261) */
302 /* File "led.c": code 276 = 0x0114 ( 275), prologues 0, epilogues 1 */
DEFINED SYMBOLS
*ABS*:00000000 led.c
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:14 .data:00000000 J17Mask
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:21 .bss:00000000 J17Blinkcount
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:27 .data:00000001 J16Mask
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:34 .bss:00000001 J16Blinkcount
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:40 .bss:00000002 LED2_Timing
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:46 .bss:00000004 LED1_Timing
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:51 .text:00000000 LED_Init
.bss:00000006 delay.0
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:69 .bss:00000007 J16Bitmask.1
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:70 .bss:00000008 J17Bitmask.2
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:71 .bss:00000009 J16Warn.3
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:72 .bss:0000000a J17Warn.4
C:\Users\Arthur-P\AppData\Local\Temp/ccMfaaaa.s:76 .text:0000001e LED_Update
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
FCFlags
EE_Parameter
MotorenEin
Parameter_J16Timing
Parameter_J17Timing
/branches/V0.80d-Arthur-P/libfc.h
0,0 → 1,20
#ifndef _LIBFC_H
#define _LIBFC_H
 
 
#define CPU_UNKNOWN 0
#define CPU_ATMEGA644 1
#define CPU_ATMEGA644P 2
#define CPU_ATMEGA1284 3
#define CPU_ATMEGA1284P 4
 
extern void LIBFC_Init(void);
extern void LIBFC_Polling(void);
extern void LIBFC_ReceiverInit(unsigned char rtype);
 
extern void LIBFC_JetiBox_Putchar(char c);
extern void LIBFC_JetiBox_SetPos(unsigned char index);
extern void LIBFC_JetiBox_Clear(void);
extern unsigned char LIBFC_GetCPUType(void);
 
#endif //_LIBFC_H
/branches/V0.80d-Arthur-P/main.c
0,0 → 1,402
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch / NON-COMMERCIAL USE ONLY
// + www.MikroKopter.com
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten und nicht-kommerziellen Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt und genannt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung oder Nutzung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
 
 
unsigned char PlatinenVersion = 10;
unsigned char SendVersionToNavi = 1;
unsigned char BattLowVoltageWarning = 94;
unsigned int FlugMinuten = 0,FlugMinutenGesamt = 0;
unsigned int FlugSekunden = 0;
pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
unsigned char FoundMotors = 0;
 
void CalMk3Mag(void)
{
static unsigned char stick = 1;
if(PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] > -20) stick = 0;
if((PPM_in[EE_Parameter.Kanalbelegung[K_NICK]] < -70) && !stick)
{
stick = 1;
WinkelOut.CalcState++;
if(WinkelOut.CalcState > 4)
{
// WinkelOut.CalcState = 0; // in Uart.c
beeptime = 1000;
}
else Piep(WinkelOut.CalcState,150);
}
DebugOut.Analog[19] = WinkelOut.CalcState;
}
 
 
void LipoDetection(unsigned char print)
{
#define MAX_CELL_VOLTAGE 43 // max cell volatage for LiPO
unsigned int timer, cells;
if(print) printf("\n\rBatt:");
if(EE_Parameter.UnterspannungsWarnung < 50) // automatische Zellenerkennung
{
timer = SetDelay(500);
if(print) while (!CheckDelay(timer));
// up to 6s LiPo, less than 2s is technical impossible
for(cells = 2; cells < 7; cells++)
{
if(UBat < cells * MAX_CELL_VOLTAGE) break;
}
 
BattLowVoltageWarning = cells * EE_Parameter.UnterspannungsWarnung;
if(print)
{
Piep(cells, 200);
printf(" %d Cells ", cells);
}
}
else BattLowVoltageWarning = EE_Parameter.UnterspannungsWarnung;
if(print) printf(" Low warning level: %d.%d",BattLowVoltageWarning/10,BattLowVoltageWarning%10);
}
 
//############################################################################
//Hauptprogramm
int main (void)
//############################################################################
{
unsigned int timer,i,timer2 = 0, timerPolling;
 
DDRB = 0x00;
PORTB = 0x00;
for(timer = 0; timer < 1000; timer++); // verzögern
#if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__))
PlatinenVersion = 21;
#else
if(PINB & 0x01)
{
if(PINB & 0x02) PlatinenVersion = 13;
else PlatinenVersion = 11;
}
else
{
if(PINB & 0x02) PlatinenVersion = 20;
else PlatinenVersion = 10;
}
#endif
DDRC = 0x81; // SCL
DDRC |=0x40; // HEF4017 Reset
PORTC = 0xff; // Pullup SDA
DDRB = 0x1B; // LEDs und Druckoffset
PORTB = 0x01; // LED_Rot
DDRD = 0x3E; // Speaker & TXD & J3 J4 J5
PORTD = 0x47; // LED
HEF4017R_ON;
MCUSR &=~(1<<WDRF);
WDTCSR |= (1<<WDCE)|(1<<WDE);
WDTCSR = 0;
 
beeptime = 2500;
StickGier = 0; PPM_in[K_GAS] = 0; StickRoll = 0; StickNick = 0;
if(PlatinenVersion >= 20) GIER_GRAD_FAKTOR = 1220; else GIER_GRAD_FAKTOR = 1291; // unterschiedlich für ME und ENC
ROT_OFF;
 
Timer_Init();
TIMER2_Init();
UART_Init();
rc_sum_init();
ADC_Init();
I2C_Init();
SPI_MasterInit();
Capacity_Init();
LIBFC_Init();
GRN_ON;
sei();
ParamSet_Init();
 
 
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Check connected BL-Ctrls
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// Check connected BL-Ctrls
BLFlags |= BLFLAG_READ_VERSION;
motor_read = 0; // read the first I2C-Data
SendMotorData();
timer = SetDelay(500);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
printf("\n\rFound BL-Ctrl: ");
timer = SetDelay(4000);
for(i=0; i < MAX_MOTORS; i++)
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
if(Mixer.Motor[i][0] > 0) // wait max 4 sec for the BL-Ctrls to wake up
{
while(!CheckDelay(timer) && !(Motor[i].State & MOTOR_STATE_PRESENT_MASK) )
{
SendMotorData();
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}
}
if(Motor[i].State & MOTOR_STATE_PRESENT_MASK)
{
printf("%d",i+1);
FoundMotors++;
// if(Motor[i].Version & MOTOR_STATE_NEW_PROTOCOL_MASK) printf("(new) ");
}
}
for(i=0; i < MAX_MOTORS; i++)
{
if(!(Motor[i].State & MOTOR_STATE_PRESENT_MASK) && Mixer.Motor[i][0] > 0)
{
printf("\n\r\n\r!! MISSING BL-CTRL: %d !!",i+1);
ServoActive = 2; // just in case the FC would be used as camera-stabilizer
}
Motor[i].State &= ~MOTOR_STATE_ERROR_MASK; // clear error counter
}
printf("\n\r===================================");
 
if(RequiredMotors < FoundMotors) VersionInfo.HardwareError[1] |= DEFEKT_MIXER_ERR;
 
//if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
printf("\n\rCalibrating pressure sensor..");
timer = SetDelay(1000);
SucheLuftruckOffset();
while (!CheckDelay(timer));
printf("OK\n\r");
}
 
SetNeutral(0);
 
ROT_OFF;
 
beeptime = 2000;
ExternControl.Digital[0] = 0x55;
 
 
FlugMinuten = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES + 1);
FlugMinutenGesamt = (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL) * 256 + (unsigned int)GetParamByte(PID_FLIGHT_MINUTES_TOTAL + 1);
 
if((FlugMinutenGesamt == 0xFFFF) || (FlugMinuten == 0xFFFF))
{
FlugMinuten = 0;
FlugMinutenGesamt = 0;
}
printf("\n\rFlight-time %u min Total:%u min", FlugMinuten, FlugMinutenGesamt);
 
printf("\n\rControl: ");
if (EE_Parameter.GlobalConfig & CFG_HEADING_HOLD) printf("HeadingHold");
else printf("Normal (ACC-Mode)");
 
LcdClear();
I2CTimeout = 5000;
WinkelOut.Orientation = 1;
LipoDetection(1);
 
LIBFC_ReceiverInit(EE_Parameter.Receiver);
 
printf("\n\r===================================\n\r");
//SpektrumBinding();
timer = SetDelay(2000);
timerPolling = SetDelay(250);
 
Debug(ANSI_CLEAR "FC-Start!\n\rFlugzeit: %d min", FlugMinutenGesamt); // Note: this won't waste flash memory, if #DEBUG is not active
DebugOut.Status[0] = 0x01 | 0x02;
 
while (1)
{
if(CheckDelay(timerPolling))
{
timerPolling = SetDelay(100);
LIBFC_Polling();
}
if(UpdateMotor && AdReady) // ReglerIntervall
{
UpdateMotor=0;
if(WinkelOut.CalcState) CalMk3Mag();
else MotorRegler();
SendMotorData();
ROT_OFF;
if(SenderOkay) { SenderOkay--; VersionInfo.HardwareError[1] &= ~DEFEKT_PPM_ERR; }
else
{
TIMSK1 |= _BV(ICIE1); // enable PPM-Input
PPM_in[0] = 0; // set RSSI to zero on data timeout
VersionInfo.HardwareError[1] |= DEFEKT_PPM_ERR;
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 160 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 220) SenderOkay = 160;
//if(HoehenReglerAktiv && NaviDataOkay && SenderOkay < 101 && SenderOkay > 10 && FromNaviCtrl_Value.SerialDataOkay > 1) SenderOkay = 101;
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
if(!--I2CTimeout || MissingMotor)
{
if(!I2CTimeout)
{
I2C_Reset();
I2CTimeout = 5;
DebugOut.Analog[28]++; // I2C-Error
FCFlags |= FCFLAG_I2CERR;
VersionInfo.HardwareError[1] |= DEFEKT_I2C;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
if((BeepMuster == 0xffff) && MotorenEin)
{
beeptime = 10000;
BeepMuster = 0x0080;
}
}
else
{
ROT_OFF;
if(!beeptime)
{
FCFlags &= ~FCFLAG_I2CERR;
}
}
if(!UpdateMotor)
{
DatenUebertragung();
BearbeiteRxDaten();
if(CheckDelay(timer))
{
static unsigned char second;
timer += 20; // 20 ms interval
if(MissingMotor)
{
VersionInfo.HardwareError[1] |= DEFEKT_BL_MISSING;
DebugOut.Status[1] |= 0x02; // BL-Error-Status
}
else
{
VersionInfo.HardwareError[1] &= ~DEFEKT_BL_MISSING;
if(I2CTimeout > 6) DebugOut.Status[1] &= ~0x02; // BL-Error-Status
}
if(I2CTimeout > 6) VersionInfo.HardwareError[1] &= ~DEFEKT_I2C;
 
if(PcZugriff) PcZugriff--;
else
{
ExternControl.Config = 0;
ExternStickNick = 0;
ExternStickRoll = 0;
ExternStickGier = 0;
if(BeepMuster == 0xffff && SenderOkay == 0)
{
beeptime = 15000;
BeepMuster = 0x0c00;
}
}
if(NaviDataOkay > 200)
{
NaviDataOkay--;
FCFlags &= ~FCFLAG_SPI_RX_ERR;
VersionInfo.HardwareError[1] &= ~DEFEKT_SPI_RX_ERR;
}
else
{
if(NC_Version.Compatible)
{
FCFlags |= FCFLAG_SPI_RX_ERR;
VersionInfo.HardwareError[1] |= DEFEKT_SPI_RX_ERR;
if(BeepMuster == 0xffff && MotorenEin)
{
beeptime = 15000;
BeepMuster = 0xA800;
}
}
GPS_Nick = 0;
GPS_Roll = 0;
//if(!beeptime)
FromNaviCtrl.CompassValue = -1;
NaviDataOkay = 0;
}
if(UBat < BattLowVoltageWarning)
{
FCFlags |= FCFLAG_LOWBAT;
if(BeepMuster == 0xffff)
{
beeptime = 6000;
BeepMuster = 0x0300;
}
}
else if(!beeptime) FCFlags &= ~FCFLAG_LOWBAT;
 
SPI_StartTransmitPacket();
SendSPI = 4;
if(!MotorenEin) timer2 = 1450; // 0,5 Minuten aufrunden
else
if(++second == 49)
{
second = 0;
FlugSekunden++;
}
if(++timer2 == 2930) // eine Minute
{
timer2 = 0;
FlugMinuten++;
FlugMinutenGesamt++;
SetParamByte(PID_FLIGHT_MINUTES,FlugMinuten / 256);
SetParamByte(PID_FLIGHT_MINUTES+1,FlugMinuten % 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL,FlugMinutenGesamt / 256);
SetParamByte(PID_FLIGHT_MINUTES_TOTAL+1,FlugMinutenGesamt % 256);
timer = SetDelay(20); // falls "timer += 20;" mal nicht geht
}
}
LED_Update();
Capacity_Update();
}
}
if(!SendSPI) { SPI_TransmitByte(); }
}
return (1);
}
 
 
/branches/V0.80d-Arthur-P/main.d
0,0 → 1,3
main.o main.d : main.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/main.h
0,0 → 1,75
#ifndef _MAIN_H
#define _MAIN_H
 
//#define DEBUG // use to activate debug output to MK-Tool: use Debug(text);
//#define ACT_S3D_SUMMENSIGNAL
//#define SWITCH_LEARNS_CAREFREE
//#define RECEIVER_SPEKTRUM_EXP
 
// neue Hardware
#define ROT_OFF {if((PlatinenVersion == 10)||(PlatinenVersion >= 20)) PORTB &=~0x01; else PORTB |= 0x01;}
#define ROT_ON {if((PlatinenVersion == 10)||(PlatinenVersion >= 20)) PORTB |= 0x01; else PORTB &=~0x01;}
#define ROT_FLASH PORTB ^= 0x01
#define GRN_OFF {if((PlatinenVersion < 12)) PORTB &=~0x02; else PORTB |= 0x02;}
#define GRN_ON {if((PlatinenVersion < 12)) PORTB |= 0x02; else PORTB &=~0x02;}
#define GRN_FLASH PORTB ^= 0x02
 
#define SYSCLK F_CPU
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#define J3High PORTD |= 0x20
#define J3Low PORTD &= ~0x20
#define J4High PORTD |= 0x10
#define J4Low PORTD &= ~0x10
#define J5High PORTD |= 0x08
#define J5Low PORTD &= ~0x08
 
extern volatile unsigned char SenderOkay;
extern unsigned char BattLowVoltageWarning;
extern unsigned char CosinusNickWinkel, CosinusRollWinkel;
extern unsigned char PlatinenVersion;
extern unsigned char SendVersionToNavi;
extern unsigned char FoundMotors;
 
void LipoDetection(unsigned char print);
extern unsigned int FlugMinuten,FlugMinutenGesamt,FlugSekunden;
 
#include <stdlib.h>
#include <string.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
#include <avr/interrupt.h>
#include <avr/eeprom.h>
#include <avr/boot.h>
#include <avr/wdt.h>
 
 
#include "old_macros.h"
 
#include "printf_P.h"
#include "timer0.h"
#include "uart.h"
#include "analog.h"
#include "twimaster.h"
#include "menu.h"
#include "rc.h"
#include "fc.h"
#include "gps.h"
#include "spi.h"
#include "led.h"
#include "spektrum.h"
#include "capacity.h"
#include "eeprom.h"
#include "libfc.h"
#include "debug.h"
 
 
 
#endif //_MAIN_H
 
 
 
 
 
 
/branches/V0.80d-Arthur-P/main.lst
0,0 → 1,1292
1 .file "main.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global FoundMotors
11 .global FoundMotors
12 .section .bss
15 FoundMotors:
16 0000 00 .skip 1,0
17 .global FlugSekunden
18 .global FlugSekunden
21 FlugSekunden:
22 0001 0000 .skip 2,0
23 .global FlugMinutenGesamt
24 .global FlugMinutenGesamt
27 FlugMinutenGesamt:
28 0003 0000 .skip 2,0
29 .global FlugMinuten
30 .global FlugMinuten
33 FlugMinuten:
34 0005 0000 .skip 2,0
35 .global BattLowVoltageWarning
36 .data
39 BattLowVoltageWarning:
40 0000 5E .byte 94
41 .global SendVersionToNavi
44 SendVersionToNavi:
45 0001 01 .byte 1
46 .global PlatinenVersion
49 PlatinenVersion:
50 0002 0A .byte 10
53 stick.15:
54 0003 01 .byte 1
55 .text
56 .global CalMk3Mag
58 CalMk3Mag:
59 /* prologue: frame size=0 */
60 /* prologue end (size=0) */
61 0000 8091 0000 lds r24,EE_Parameter+1
62 0004 E82F mov r30,r24
63 0006 FF27 clr r31
64 0008 EE0F add r30,r30
65 000a FF1F adc r31,r31
66 000c E050 subi r30,lo8(-(PPM_in))
67 000e F040 sbci r31,hi8(-(PPM_in))
68 0010 8081 ld r24,Z
69 0012 9181 ldd r25,Z+1
70 0014 8D5E subi r24,lo8(-19)
71 0016 9F4F sbci r25,hi8(-19)
72 0018 14F0 brlt .L2
73 001a 1092 0000 sts stick.15,__zero_reg__
74 .L2:
75 001e 8081 ld r24,Z
76 0020 9181 ldd r25,Z+1
77 0022 8A5B subi r24,lo8(-70)
78 0024 9F4F sbci r25,hi8(-70)
79 0026 CCF4 brge .L3
80 0028 8091 0000 lds r24,stick.15
81 002c 8823 tst r24
82 002e A9F4 brne .L3
83 0030 81E0 ldi r24,lo8(1)
84 0032 8093 0000 sts stick.15,r24
85 0036 8091 0000 lds r24,WinkelOut+6
86 003a 8F5F subi r24,lo8(-(1))
87 003c 8093 0000 sts WinkelOut+6,r24
88 0040 8530 cpi r24,lo8(5)
89 0042 38F0 brlo .L4
90 0044 88EE ldi r24,lo8(1000)
91 0046 93E0 ldi r25,hi8(1000)
92 0048 9093 0000 sts (beeptime)+1,r25
93 004c 8093 0000 sts beeptime,r24
94 0050 04C0 rjmp .L3
95 .L4:
96 0052 66E9 ldi r22,lo8(150)
97 0054 70E0 ldi r23,hi8(150)
98 0056 0E94 0000 call Piep
99 .L3:
100 005a 8091 0000 lds r24,WinkelOut+6
101 005e 9927 clr r25
102 0060 9093 0000 sts (DebugOut+40)+1,r25
103 0064 8093 0000 sts DebugOut+40,r24
104 /* epilogue: frame size=0 */
105 0068 0895 ret
106 /* epilogue end (size=1) */
107 /* function CalMk3Mag size 55 (54) */
109 .section .progmem.data,"a",@progbits
112 __c.12:
113 0000 0A0D 4261 .string "\n\rBatt:"
113 7474 3A00
116 __c.13:
117 0008 2025 6420 .string " %d Cells "
117 4365 6C6C
117 7320 00
120 __c.14:
121 0013 204C 6F77 .string " Low warning level: %d.%d"
121 2077 6172
121 6E69 6E67
121 206C 6576
121 656C 3A20
122 .text
123 .global LipoDetection
125 LipoDetection:
126 /* prologue: frame size=0 */
127 006a 1F93 push r17
128 006c CF93 push r28
129 006e DF93 push r29
130 /* prologue end (size=3) */
131 0070 182F mov r17,r24
132 0072 8823 tst r24
133 0074 89F0 breq .L7
134 0076 80E0 ldi r24,lo8(__c.12)
135 0078 90E0 ldi r25,hi8(__c.12)
136 007a 9F93 push r25
137 007c 8F93 push r24
138 007e 80E0 ldi r24,lo8(pm(uart_putchar))
139 0080 90E0 ldi r25,hi8(pm(uart_putchar))
140 0082 9F93 push r25
141 0084 8F93 push r24
142 0086 E091 0000 lds r30,_printf_P
143 008a F091 0000 lds r31,(_printf_P)+1
144 008e 0995 icall
145 0090 0F90 pop __tmp_reg__
146 0092 0F90 pop __tmp_reg__
147 0094 0F90 pop __tmp_reg__
148 0096 0F90 pop __tmp_reg__
149 .L7:
150 0098 8091 0000 lds r24,EE_Parameter+36
151 009c 8233 cpi r24,lo8(50)
152 009e 08F0 brlo .+2
153 00a0 44C0 rjmp .L8
154 00a2 84EF ldi r24,lo8(500)
155 00a4 91E0 ldi r25,hi8(500)
156 00a6 0E94 0000 call SetDelay
157 00aa EC01 movw r28,r24
158 00ac 1123 tst r17
159 00ae 29F0 breq .L9
160 .L10:
161 00b0 CE01 movw r24,r28
162 00b2 0E94 0000 call CheckDelay
163 00b6 8823 tst r24
164 00b8 D9F3 breq .L10
165 .L9:
166 00ba C2E0 ldi r28,lo8(2)
167 00bc D0E0 ldi r29,hi8(2)
168 00be 26E5 ldi r18,lo8(86)
169 00c0 30E0 ldi r19,hi8(86)
170 .L17:
171 00c2 8091 0000 lds r24,UBat
172 00c6 9091 0000 lds r25,(UBat)+1
173 00ca 8217 cp r24,r18
174 00cc 9307 cpc r25,r19
175 00ce 30F0 brlo .L14
176 00d0 2196 adiw r28,1
177 00d2 255D subi r18,lo8(-(43))
178 00d4 3F4F sbci r19,hi8(-(43))
179 00d6 C730 cpi r28,7
180 00d8 D105 cpc r29,__zero_reg__
181 00da 98F3 brlo .L17
182 .L14:
183 00dc 8091 0000 lds r24,EE_Parameter+36
184 00e0 9927 clr r25
185 00e2 C89F mul r28,r24
186 00e4 9001 movw r18,r0
187 00e6 C99F mul r28,r25
188 00e8 300D add r19,r0
189 00ea D89F mul r29,r24
190 00ec 300D add r19,r0
191 00ee 1124 clr r1
192 00f0 2093 0000 sts BattLowVoltageWarning,r18
193 00f4 1123 tst r17
194 00f6 D9F0 breq .L19
195 00f8 68EC ldi r22,lo8(200)
196 00fa 70E0 ldi r23,hi8(200)
197 00fc 8C2F mov r24,r28
198 00fe 0E94 0000 call Piep
199 0102 DF93 push r29
200 0104 CF93 push r28
201 0106 80E0 ldi r24,lo8(__c.13)
202 0108 90E0 ldi r25,hi8(__c.13)
203 010a 9F93 push r25
204 010c 8F93 push r24
205 010e 80E0 ldi r24,lo8(pm(uart_putchar))
206 0110 90E0 ldi r25,hi8(pm(uart_putchar))
207 0112 9F93 push r25
208 0114 8F93 push r24
209 0116 E091 0000 lds r30,_printf_P
210 011a F091 0000 lds r31,(_printf_P)+1
211 011e 0995 icall
212 0120 8DB7 in r24,__SP_L__
213 0122 9EB7 in r25,__SP_H__
214 0124 0696 adiw r24,6
215 0126 8DBF out __SP_L__,r24
216 0128 02C0 rjmp .L19
217 .L8:
218 012a 8093 0000 sts BattLowVoltageWarning,r24
219 .L19:
220 012e 1123 tst r17
221 0130 11F1 breq .L6
222 0132 8091 0000 lds r24,BattLowVoltageWarning
223 0136 6AE0 ldi r22,lo8(10)
224 0138 0E94 0000 call __udivmodqi4
225 013c 892F mov r24,r25
226 013e 9927 clr r25
227 0140 9F93 push r25
228 0142 8F93 push r24
229 0144 8091 0000 lds r24,BattLowVoltageWarning
230 0148 0E94 0000 call __udivmodqi4
231 014c 9927 clr r25
232 014e 9F93 push r25
233 0150 8F93 push r24
234 0152 80E0 ldi r24,lo8(__c.14)
235 0154 90E0 ldi r25,hi8(__c.14)
236 0156 9F93 push r25
237 0158 8F93 push r24
238 015a 80E0 ldi r24,lo8(pm(uart_putchar))
239 015c 90E0 ldi r25,hi8(pm(uart_putchar))
240 015e 9F93 push r25
241 0160 8F93 push r24
242 0162 E091 0000 lds r30,_printf_P
243 0166 F091 0000 lds r31,(_printf_P)+1
244 016a 0995 icall
245 016c 2DB7 in r18,__SP_L__
246 016e 3EB7 in r19,__SP_H__
247 0170 285F subi r18,lo8(-(8))
248 0172 3F4F sbci r19,hi8(-(8))
249 0174 2DBF out __SP_L__,r18
250 .L6:
251 /* epilogue: frame size=0 */
252 0176 DF91 pop r29
253 0178 CF91 pop r28
254 017a 1F91 pop r17
255 017c 0895 ret
256 /* epilogue end (size=4) */
257 /* function LipoDetection size 138 (131) */
259 .section .progmem.data
262 __c.0:
263 002d 0A0D 466F .string "\n\rFound BL-Ctrl: "
263 756E 6420
263 424C 2D43
263 7472 6C3A
263 2000
266 __c.1:
267 003f 2564 00 .string "%d"
270 __c.2:
271 0042 0A0D 0A0D .string "\n\r\n\r!! MISSING BL-CTRL: %d !!"
271 2121 204D
271 4953 5349
271 4E47 2042
271 4C2D 4354
274 __c.3:
275 0060 0A0D 3D3D .string "\n\r==================================="
275 3D3D 3D3D
275 3D3D 3D3D
275 3D3D 3D3D
275 3D3D 3D3D
278 __c.4:
279 0086 0A0D 4361 .string "\n\rCalibrating pressure sensor.."
279 6C69 6272
279 6174 696E
279 6720 7072
279 6573 7375
282 __c.5:
283 00a6 4F4B 0A0D .string "OK\n\r"
283 00
286 __c.6:
287 00ab 0A0D 466C .string "\n\rFlight-time %u min Total:%u min"
287 6967 6874
287 2D74 696D
287 6520 2575
287 206D 696E
290 __c.7:
291 00ce 0A0D 436F .string "\n\rControl: "
291 6E74 726F
291 6C3A 2000
294 __c.8:
295 00da 4865 6164 .string "HeadingHold"
295 696E 6748
295 6F6C 6400
298 __c.9:
299 00e6 4E6F 726D .string "Normal (ACC-Mode)"
299 616C 2028
299 4143 432D
299 4D6F 6465
299 2900
302 __c.10:
303 00f8 0A0D 3D3D .string "\n\r===================================\n\r"
303 3D3D 3D3D
303 3D3D 3D3D
303 3D3D 3D3D
303 3D3D 3D3D
304 .lcomm second.11,1
305 .text
306 .global main
308 main:
309 /* prologue: frame size=0 */
310 017e C0E0 ldi r28,lo8(__stack - 0)
311 0180 D0E0 ldi r29,hi8(__stack - 0)
312 0182 DEBF out __SP_H__,r29
313 0184 CDBF out __SP_L__,r28
314 /* prologue end (size=4) */
315 0186 8824 clr r8
316 0188 9924 clr r9
317 018a 14B8 out 36-0x20,__zero_reg__
318 018c 15B8 out 37-0x20,__zero_reg__
319 018e 07EE ldi r16,lo8(999)
320 0190 13E0 ldi r17,hi8(999)
321 .L26:
322 0192 0253 subi r16,lo8(-(-50))
323 0194 1040 sbci r17,hi8(-(-50))
324 0196 17FF sbrs r17,7
325 0198 FCCF rjmp .L26
326 019a 189B sbis 35-0x20,0
327 019c 06C0 rjmp .L27
328 019e 199B sbis 35-0x20,1
329 01a0 02C0 rjmp .L28
330 01a2 8DE0 ldi r24,lo8(13)
331 01a4 07C0 rjmp .L228
332 .L28:
333 01a6 8BE0 ldi r24,lo8(11)
334 01a8 05C0 rjmp .L228
335 .L27:
336 01aa 199B sbis 35-0x20,1
337 01ac 02C0 rjmp .L31
338 01ae 84E1 ldi r24,lo8(20)
339 01b0 01C0 rjmp .L228
340 .L31:
341 01b2 8AE0 ldi r24,lo8(10)
342 .L228:
343 01b4 8093 0000 sts PlatinenVersion,r24
344 01b8 81E8 ldi r24,lo8(-127)
345 01ba 87B9 out 39-0x20,r24
346 01bc 3E9A sbi 39-0x20,6
347 01be 8FEF ldi r24,lo8(-1)
348 01c0 88B9 out 40-0x20,r24
349 01c2 8BE1 ldi r24,lo8(27)
350 01c4 84B9 out 36-0x20,r24
351 01c6 81E0 ldi r24,lo8(1)
352 01c8 85B9 out 37-0x20,r24
353 01ca 8EE3 ldi r24,lo8(62)
354 01cc 8AB9 out 42-0x20,r24
355 01ce 87E4 ldi r24,lo8(71)
356 01d0 8BB9 out 43-0x20,r24
357 01d2 469A sbi 40-0x20,6
358 01d4 84B7 in r24,84-0x20
359 01d6 877F andi r24,lo8(-9)
360 01d8 84BF out 84-0x20,r24
361 01da 8091 6000 lds r24,96
362 01de 8861 ori r24,lo8(24)
363 01e0 8093 6000 sts 96,r24
364 01e4 1092 6000 sts 96,__zero_reg__
365 01e8 84EC ldi r24,lo8(2500)
366 01ea 99E0 ldi r25,hi8(2500)
367 01ec 9093 0000 sts (beeptime)+1,r25
368 01f0 8093 0000 sts beeptime,r24
369 01f4 1092 0000 sts (StickGier)+1,__zero_reg__
370 01f8 1092 0000 sts StickGier,__zero_reg__
371 01fc 1092 0000 sts (PPM_in+4)+1,__zero_reg__
372 0200 1092 0000 sts PPM_in+4,__zero_reg__
373 0204 1092 0000 sts (StickRoll)+1,__zero_reg__
374 0208 1092 0000 sts StickRoll,__zero_reg__
375 020c 1092 0000 sts (StickNick)+1,__zero_reg__
376 0210 1092 0000 sts StickNick,__zero_reg__
377 0214 2091 0000 lds r18,PlatinenVersion
378 0218 2431 cpi r18,lo8(20)
379 021a 28F0 brlo .L33
380 021c 84EC ldi r24,lo8(1220)
381 021e 94E0 ldi r25,hi8(1220)
382 0220 A0E0 ldi r26,hlo8(1220)
383 0222 B0E0 ldi r27,hhi8(1220)
384 0224 04C0 rjmp .L229
385 .L33:
386 0226 8BE0 ldi r24,lo8(1291)
387 0228 95E0 ldi r25,hi8(1291)
388 022a A0E0 ldi r26,hlo8(1291)
389 022c B0E0 ldi r27,hhi8(1291)
390 .L229:
391 022e 8093 0000 sts GIER_GRAD_FAKTOR,r24
392 0232 9093 0000 sts (GIER_GRAD_FAKTOR)+1,r25
393 0236 A093 0000 sts (GIER_GRAD_FAKTOR)+2,r26
394 023a B093 0000 sts (GIER_GRAD_FAKTOR)+3,r27
395 023e 2A30 cpi r18,lo8(10)
396 0240 11F0 breq .L36
397 0242 2431 cpi r18,lo8(20)
398 0244 10F0 brlo .L35
399 .L36:
400 0246 2898 cbi 37-0x20,0
401 0248 01C0 rjmp .L37
402 .L35:
403 024a 289A sbi 37-0x20,0
404 .L37:
405 024c 0E94 0000 call Timer_Init
406 0250 0E94 0000 call TIMER2_Init
407 0254 0E94 0000 call UART_Init
408 0258 0E94 0000 call rc_sum_init
409 025c 0E94 0000 call ADC_Init
410 0260 0E94 0000 call I2C_Init
411 0264 0E94 0000 call SPI_MasterInit
412 0268 0E94 0000 call Capacity_Init
413 026c 0E94 0000 call LIBFC_Init
414 0270 8091 0000 lds r24,PlatinenVersion
415 0274 8C30 cpi r24,lo8(12)
416 0276 10F4 brsh .L38
417 0278 299A sbi 37-0x20,1
418 027a 01C0 rjmp .L39
419 .L38:
420 027c 2998 cbi 37-0x20,1
421 .L39:
422 /* #APP */
423 027e 7894 sei
424 /* #NOAPP */
425 0280 0E94 0000 call ParamSet_Init
426 0284 8091 0000 lds r24,BLFlags
427 0288 8260 ori r24,lo8(2)
428 028a 8093 0000 sts BLFlags,r24
429 028e 1092 0000 sts motor_read,__zero_reg__
430 0292 0E94 0000 call SendMotorData
431 0296 84EF ldi r24,lo8(500)
432 0298 91E0 ldi r25,hi8(500)
433 029a 0E94 0000 call SetDelay
434 029e 8C01 movw r16,r24
435 .L40:
436 02a0 8091 0000 lds r24,BLFlags
437 02a4 80FD sbrc r24,0
438 02a6 05C0 rjmp .L41
439 02a8 C801 movw r24,r16
440 02aa 0E94 0000 call CheckDelay
441 02ae 8823 tst r24
442 02b0 B9F3 breq .L40
443 .L41:
444 02b2 80E0 ldi r24,lo8(__c.0)
445 02b4 90E0 ldi r25,hi8(__c.0)
446 02b6 9F93 push r25
447 02b8 8F93 push r24
448 02ba B0E0 ldi r27,lo8(pm(uart_putchar))
449 02bc AB2E mov r10,r27
450 02be B0E0 ldi r27,hi8(pm(uart_putchar))
451 02c0 BB2E mov r11,r27
452 02c2 BF92 push r11
453 02c4 AF92 push r10
454 02c6 E091 0000 lds r30,_printf_P
455 02ca F091 0000 lds r31,(_printf_P)+1
456 02ce 0995 icall
457 02d0 80EA ldi r24,lo8(4000)
458 02d2 9FE0 ldi r25,hi8(4000)
459 02d4 0E94 0000 call SetDelay
460 02d8 8C01 movw r16,r24
461 02da C0E0 ldi r28,lo8(0)
462 02dc D0E0 ldi r29,hi8(0)
463 02de 0F90 pop __tmp_reg__
464 02e0 0F90 pop __tmp_reg__
465 02e2 0F90 pop __tmp_reg__
466 02e4 0F90 pop __tmp_reg__
467 02e6 A0E0 ldi r26,lo8(Motor+3)
468 02e8 EA2E mov r14,r26
469 02ea A0E0 ldi r26,hi8(Motor+3)
470 02ec FA2E mov r15,r26
471 02ee F0E0 ldi r31,lo8(Mixer+13)
472 02f0 CF2E mov r12,r31
473 02f2 F0E0 ldi r31,hi8(Mixer+13)
474 02f4 DF2E mov r13,r31
475 .L57:
476 02f6 0E94 0000 call SendMotorData
477 .L46:
478 02fa 8091 0000 lds r24,BLFlags
479 02fe 80FD sbrc r24,0
480 0300 05C0 rjmp .L47
481 0302 C801 movw r24,r16
482 0304 0E94 0000 call CheckDelay
483 0308 8823 tst r24
484 030a B9F3 breq .L46
485 .L47:
486 030c F601 movw r30,r12
487 030e 8081 ld r24,Z
488 0310 1816 cp __zero_reg__,r24
489 0312 ACF4 brge .L49
490 0314 0BC0 rjmp .L233
491 .L55:
492 0316 0E94 0000 call SendMotorData
493 .L52:
494 031a 8091 0000 lds r24,BLFlags
495 031e 80FD sbrc r24,0
496 0320 05C0 rjmp .L233
497 0322 C801 movw r24,r16
498 0324 0E94 0000 call CheckDelay
499 0328 8823 tst r24
500 032a B9F3 breq .L52
501 .L233:
502 032c C801 movw r24,r16
503 032e 0E94 0000 call CheckDelay
504 0332 8823 tst r24
505 0334 21F4 brne .L49
506 0336 F701 movw r30,r14
507 0338 8081 ld r24,Z
508 033a 8823 tst r24
509 033c 64F7 brge .L55
510 .L49:
511 033e F701 movw r30,r14
512 0340 8081 ld r24,Z
513 0342 87FF sbrs r24,7
514 0344 18C0 rjmp .L45
515 0346 2196 adiw r28,1
516 0348 DF93 push r29
517 034a CF93 push r28
518 034c 2197 sbiw r28,1
519 034e 80E0 ldi r24,lo8(__c.1)
520 0350 90E0 ldi r25,hi8(__c.1)
521 0352 9F93 push r25
522 0354 8F93 push r24
523 0356 BF92 push r11
524 0358 AF92 push r10
525 035a E091 0000 lds r30,_printf_P
526 035e F091 0000 lds r31,(_printf_P)+1
527 0362 0995 icall
528 0364 8091 0000 lds r24,FoundMotors
529 0368 8F5F subi r24,lo8(-(1))
530 036a 8093 0000 sts FoundMotors,r24
531 036e 8DB7 in r24,__SP_L__
532 0370 9EB7 in r25,__SP_H__
533 0372 0696 adiw r24,6
534 0374 8DBF out __SP_L__,r24
535 .L45:
536 0376 2196 adiw r28,1
537 0378 E4E0 ldi r30,lo8(4)
538 037a F0E0 ldi r31,hi8(4)
539 037c CE0E add r12,r30
540 037e DF1E adc r13,r31
541 0380 88E0 ldi r24,lo8(8)
542 0382 90E0 ldi r25,hi8(8)
543 0384 E80E add r14,r24
544 0386 F91E adc r15,r25
545 0388 CC30 cpi r28,12
546 038a D105 cpc r29,__zero_reg__
547 038c 08F4 brsh .+2
548 038e B3CF rjmp .L57
549 0390 C0E0 ldi r28,lo8(0)
550 0392 D0E0 ldi r29,hi8(0)
551 0394 00E0 ldi r16,lo8(Motor)
552 0396 10E0 ldi r17,hi8(Motor)
553 0398 E0E0 ldi r30,lo8(Mixer+13)
554 039a EE2E mov r14,r30
555 039c E0E0 ldi r30,hi8(Mixer+13)
556 039e FE2E mov r15,r30
557 .L62:
558 03a0 F801 movw r30,r16
559 03a2 8381 ldd r24,Z+3
560 03a4 87FD sbrc r24,7
561 03a6 1CC0 rjmp .L61
562 03a8 F701 movw r30,r14
563 03aa 8081 ld r24,Z
564 03ac 1816 cp __zero_reg__,r24
565 03ae C4F4 brge .L61
566 03b0 2196 adiw r28,1
567 03b2 DF93 push r29
568 03b4 CF93 push r28
569 03b6 2197 sbiw r28,1
570 03b8 80E0 ldi r24,lo8(__c.2)
571 03ba 90E0 ldi r25,hi8(__c.2)
572 03bc 9F93 push r25
573 03be 8F93 push r24
574 03c0 80E0 ldi r24,lo8(pm(uart_putchar))
575 03c2 90E0 ldi r25,hi8(pm(uart_putchar))
576 03c4 9F93 push r25
577 03c6 8F93 push r24
578 03c8 E091 0000 lds r30,_printf_P
579 03cc F091 0000 lds r31,(_printf_P)+1
580 03d0 0995 icall
581 03d2 82E0 ldi r24,lo8(2)
582 03d4 8093 0000 sts ServoActive,r24
583 03d8 8DB7 in r24,__SP_L__
584 03da 9EB7 in r25,__SP_H__
585 03dc 0696 adiw r24,6
586 03de 8DBF out __SP_L__,r24
587 .L61:
588 03e0 F801 movw r30,r16
589 03e2 8381 ldd r24,Z+3
590 03e4 8078 andi r24,lo8(-128)
591 03e6 8383 std Z+3,r24
592 03e8 2196 adiw r28,1
593 03ea 84E0 ldi r24,lo8(4)
594 03ec 90E0 ldi r25,hi8(4)
595 03ee E80E add r14,r24
596 03f0 F91E adc r15,r25
597 03f2 085F subi r16,lo8(-(8))
598 03f4 1F4F sbci r17,hi8(-(8))
599 03f6 CC30 cpi r28,12
600 03f8 D105 cpc r29,__zero_reg__
601 03fa 90F2 brlo .L62
602 03fc 80E0 ldi r24,lo8(__c.3)
603 03fe 90E0 ldi r25,hi8(__c.3)
604 0400 9F93 push r25
605 0402 8F93 push r24
606 0404 C0E0 ldi r28,lo8(pm(uart_putchar))
607 0406 D0E0 ldi r29,hi8(pm(uart_putchar))
608 0408 DF93 push r29
609 040a CF93 push r28
610 040c E091 0000 lds r30,_printf_P
611 0410 F091 0000 lds r31,(_printf_P)+1
612 0414 0995 icall
613 0416 9091 0000 lds r25,RequiredMotors
614 041a 8091 0000 lds r24,FoundMotors
615 041e 0F90 pop __tmp_reg__
616 0420 0F90 pop __tmp_reg__
617 0422 0F90 pop __tmp_reg__
618 0424 0F90 pop __tmp_reg__
619 0426 9817 cp r25,r24
620 0428 28F4 brsh .L63
621 042a 8091 0000 lds r24,VersionInfo+6
622 042e 8061 ori r24,lo8(16)
623 0430 8093 0000 sts VersionInfo+6,r24
624 .L63:
625 0434 80E0 ldi r24,lo8(__c.4)
626 0436 90E0 ldi r25,hi8(__c.4)
627 0438 9F93 push r25
628 043a 8F93 push r24
629 043c DF93 push r29
630 043e CF93 push r28
631 0440 E091 0000 lds r30,_printf_P
632 0444 F091 0000 lds r31,(_printf_P)+1
633 0448 0995 icall
634 044a 88EE ldi r24,lo8(1000)
635 044c 93E0 ldi r25,hi8(1000)
636 044e 0E94 0000 call SetDelay
637 0452 8C01 movw r16,r24
638 0454 0E94 0000 call SucheLuftruckOffset
639 0458 0F90 pop __tmp_reg__
640 045a 0F90 pop __tmp_reg__
641 045c 0F90 pop __tmp_reg__
642 045e 0F90 pop __tmp_reg__
643 .L64:
644 0460 C801 movw r24,r16
645 0462 0E94 0000 call CheckDelay
646 0466 8823 tst r24
647 0468 D9F3 breq .L64
648 046a 80E0 ldi r24,lo8(__c.5)
649 046c 90E0 ldi r25,hi8(__c.5)
650 046e 9F93 push r25
651 0470 8F93 push r24
652 0472 DF93 push r29
653 0474 CF93 push r28
654 0476 E091 0000 lds r30,_printf_P
655 047a F091 0000 lds r31,(_printf_P)+1
656 047e 0995 icall
657 0480 80E0 ldi r24,lo8(0)
658 0482 0E94 0000 call SetNeutral
659 0486 8091 0000 lds r24,PlatinenVersion
660 048a 0F90 pop __tmp_reg__
661 048c 0F90 pop __tmp_reg__
662 048e 0F90 pop __tmp_reg__
663 0490 0F90 pop __tmp_reg__
664 0492 8A30 cpi r24,lo8(10)
665 0494 11F0 breq .L68
666 0496 8431 cpi r24,lo8(20)
667 0498 10F0 brlo .L67
668 .L68:
669 049a 2898 cbi 37-0x20,0
670 049c 01C0 rjmp .L69
671 .L67:
672 049e 289A sbi 37-0x20,0
673 .L69:
674 04a0 80ED ldi r24,lo8(2000)
675 04a2 97E0 ldi r25,hi8(2000)
676 04a4 9093 0000 sts (beeptime)+1,r25
677 04a8 8093 0000 sts beeptime,r24
678 04ac 85E5 ldi r24,lo8(85)
679 04ae 8093 0000 sts ExternControl,r24
680 04b2 8EE0 ldi r24,lo8(14)
681 04b4 90E0 ldi r25,hi8(14)
682 04b6 0E94 0000 call GetParamByte
683 04ba 9927 clr r25
684 04bc 182F mov r17,r24
685 04be 0027 clr r16
686 04c0 8FE0 ldi r24,lo8(15)
687 04c2 90E0 ldi r25,hi8(15)
688 04c4 0E94 0000 call GetParamByte
689 04c8 080F add r16,r24
690 04ca 111D adc r17,__zero_reg__
691 04cc 1093 0000 sts (FlugMinuten)+1,r17
692 04d0 0093 0000 sts FlugMinuten,r16
693 04d4 8AE0 ldi r24,lo8(10)
694 04d6 90E0 ldi r25,hi8(10)
695 04d8 0E94 0000 call GetParamByte
696 04dc 9927 clr r25
697 04de 182F mov r17,r24
698 04e0 0027 clr r16
699 04e2 8BE0 ldi r24,lo8(11)
700 04e4 90E0 ldi r25,hi8(11)
701 04e6 0E94 0000 call GetParamByte
702 04ea 080F add r16,r24
703 04ec 111D adc r17,__zero_reg__
704 04ee 1093 0000 sts (FlugMinutenGesamt)+1,r17
705 04f2 0093 0000 sts FlugMinutenGesamt,r16
706 04f6 0F5F subi r16,lo8(-1)
707 04f8 1F4F sbci r17,hi8(-1)
708 04fa 39F0 breq .L71
709 04fc 8091 0000 lds r24,FlugMinuten
710 0500 9091 0000 lds r25,(FlugMinuten)+1
711 0504 8F5F subi r24,lo8(-1)
712 0506 9F4F sbci r25,hi8(-1)
713 0508 41F4 brne .L70
714 .L71:
715 050a 1092 0000 sts (FlugMinuten)+1,__zero_reg__
716 050e 1092 0000 sts FlugMinuten,__zero_reg__
717 0512 1092 0000 sts (FlugMinutenGesamt)+1,__zero_reg__
718 0516 1092 0000 sts FlugMinutenGesamt,__zero_reg__
719 .L70:
720 051a 8091 0000 lds r24,FlugMinutenGesamt
721 051e 9091 0000 lds r25,(FlugMinutenGesamt)+1
722 0522 9F93 push r25
723 0524 8F93 push r24
724 0526 8091 0000 lds r24,FlugMinuten
725 052a 9091 0000 lds r25,(FlugMinuten)+1
726 052e 9F93 push r25
727 0530 8F93 push r24
728 0532 80E0 ldi r24,lo8(__c.6)
729 0534 90E0 ldi r25,hi8(__c.6)
730 0536 9F93 push r25
731 0538 8F93 push r24
732 053a DF93 push r29
733 053c CF93 push r28
734 053e E091 0000 lds r30,_printf_P
735 0542 F091 0000 lds r31,(_printf_P)+1
736 0546 0995 icall
737 0548 8DB7 in r24,__SP_L__
738 054a 9EB7 in r25,__SP_H__
739 054c 0896 adiw r24,8
740 054e 8DBF out __SP_L__,r24
741 0550 80E0 ldi r24,lo8(__c.7)
742 0552 90E0 ldi r25,hi8(__c.7)
743 0554 9F93 push r25
744 0556 8F93 push r24
745 0558 DF93 push r29
746 055a CF93 push r28
747 055c E091 0000 lds r30,_printf_P
748 0560 F091 0000 lds r31,(_printf_P)+1
749 0564 0995 icall
750 0566 8091 0000 lds r24,EE_Parameter+13
751 056a 0F90 pop __tmp_reg__
752 056c 0F90 pop __tmp_reg__
753 056e 0F90 pop __tmp_reg__
754 0570 0F90 pop __tmp_reg__
755 0572 E091 0000 lds r30,_printf_P
756 0576 F091 0000 lds r31,(_printf_P)+1
757 057a 82FF sbrs r24,2
758 057c 07C0 rjmp .L72
759 057e 80E0 ldi r24,lo8(__c.8)
760 0580 90E0 ldi r25,hi8(__c.8)
761 0582 9F93 push r25
762 0584 8F93 push r24
763 0586 DF93 push r29
764 0588 CF93 push r28
765 058a 08C0 rjmp .L230
766 .L72:
767 058c 80E0 ldi r24,lo8(__c.9)
768 058e 90E0 ldi r25,hi8(__c.9)
769 0590 9F93 push r25
770 0592 8F93 push r24
771 0594 80E0 ldi r24,lo8(pm(uart_putchar))
772 0596 90E0 ldi r25,hi8(pm(uart_putchar))
773 0598 9F93 push r25
774 059a 8F93 push r24
775 .L230:
776 059c 0995 icall
777 059e 0F90 pop __tmp_reg__
778 05a0 0F90 pop __tmp_reg__
779 05a2 0F90 pop __tmp_reg__
780 05a4 0F90 pop __tmp_reg__
781 05a6 0E94 0000 call LcdClear
782 05aa 88E8 ldi r24,lo8(5000)
783 05ac 93E1 ldi r25,hi8(5000)
784 05ae 9093 0000 sts (I2CTimeout)+1,r25
785 05b2 8093 0000 sts I2CTimeout,r24
786 05b6 81E0 ldi r24,lo8(1)
787 05b8 8093 0000 sts WinkelOut+7,r24
788 05bc 0E94 0000 call LipoDetection
789 05c0 8091 0000 lds r24,EE_Parameter+39
790 05c4 0E94 0000 call LIBFC_ReceiverInit
791 05c8 80E0 ldi r24,lo8(__c.10)
792 05ca 90E0 ldi r25,hi8(__c.10)
793 05cc 9F93 push r25
794 05ce 8F93 push r24
795 05d0 DF93 push r29
796 05d2 CF93 push r28
797 05d4 E091 0000 lds r30,_printf_P
798 05d8 F091 0000 lds r31,(_printf_P)+1
799 05dc 0995 icall
800 05de 80ED ldi r24,lo8(2000)
801 05e0 97E0 ldi r25,hi8(2000)
802 05e2 0E94 0000 call SetDelay
803 05e6 8C01 movw r16,r24
804 05e8 8AEF ldi r24,lo8(250)
805 05ea 90E0 ldi r25,hi8(250)
806 05ec 0E94 0000 call SetDelay
807 05f0 EC01 movw r28,r24
808 05f2 83E0 ldi r24,lo8(3)
809 05f4 8093 0000 sts DebugOut,r24
810 05f8 0F90 pop __tmp_reg__
811 05fa 0F90 pop __tmp_reg__
812 05fc 0F90 pop __tmp_reg__
813 05fe 0F90 pop __tmp_reg__
814 .L234:
815 0600 CE01 movw r24,r28
816 0602 0E94 0000 call CheckDelay
817 0606 8823 tst r24
818 0608 39F0 breq .L76
819 060a 84E6 ldi r24,lo8(100)
820 060c 90E0 ldi r25,hi8(100)
821 060e 0E94 0000 call SetDelay
822 0612 EC01 movw r28,r24
823 0614 0E94 0000 call LIBFC_Polling
824 .L76:
825 0618 8091 0000 lds r24,UpdateMotor
826 061c 8823 tst r24
827 061e 09F4 brne .+2
828 0620 DFC1 rjmp .L77
829 0622 8091 0000 lds r24,AdReady
830 0626 8823 tst r24
831 0628 09F4 brne .+2
832 062a DAC1 rjmp .L77
833 062c 1092 0000 sts UpdateMotor,__zero_reg__
834 0630 8091 0000 lds r24,WinkelOut+6
835 0634 8823 tst r24
836 0636 19F0 breq .L78
837 0638 0E94 0000 call CalMk3Mag
838 063c 02C0 rjmp .L79
839 .L78:
840 063e 0E94 0000 call MotorRegler
841 .L79:
842 0642 0E94 0000 call SendMotorData
843 0646 2091 0000 lds r18,PlatinenVersion
844 064a 2A30 cpi r18,lo8(10)
845 064c 11F0 breq .L81
846 064e 2431 cpi r18,lo8(20)
847 0650 10F0 brlo .L80
848 .L81:
849 0652 2898 cbi 37-0x20,0
850 0654 01C0 rjmp .L82
851 .L80:
852 0656 289A sbi 37-0x20,0
853 .L82:
854 0658 8091 0000 lds r24,SenderOkay
855 065c 9091 0000 lds r25,VersionInfo+6
856 0660 8823 tst r24
857 0662 39F0 breq .L83
858 0664 8091 0000 lds r24,SenderOkay
859 0668 8150 subi r24,lo8(-(-1))
860 066a 8093 0000 sts SenderOkay,r24
861 066e 977F andi r25,lo8(-9)
862 0670 0AC0 rjmp .L231
863 .L83:
864 0672 8091 6F00 lds r24,111
865 0676 8062 ori r24,lo8(32)
866 0678 8093 6F00 sts 111,r24
867 067c 1092 0000 sts (PPM_in)+1,__zero_reg__
868 0680 1092 0000 sts PPM_in,__zero_reg__
869 0684 9860 ori r25,lo8(8)
870 .L231:
871 0686 9093 0000 sts VersionInfo+6,r25
872 068a 8091 0000 lds r24,I2CTimeout
873 068e 9091 0000 lds r25,(I2CTimeout)+1
874 0692 0197 sbiw r24,1
875 0694 9093 0000 sts (I2CTimeout)+1,r25
876 0698 8093 0000 sts I2CTimeout,r24
877 069c 8091 0000 lds r24,I2CTimeout
878 06a0 9091 0000 lds r25,(I2CTimeout)+1
879 06a4 892B or r24,r25
880 06a6 29F0 breq .L86
881 06a8 8091 0000 lds r24,MissingMotor
882 06ac 8823 tst r24
883 06ae 09F4 brne .+2
884 06b0 3EC0 rjmp .L85
885 .L86:
886 06b2 8091 0000 lds r24,I2CTimeout
887 06b6 9091 0000 lds r25,(I2CTimeout)+1
888 06ba 892B or r24,r25
889 06bc 01F5 brne .L87
890 06be 0E94 0000 call I2C_Reset
891 06c2 85E0 ldi r24,lo8(5)
892 06c4 90E0 ldi r25,hi8(5)
893 06c6 9093 0000 sts (I2CTimeout)+1,r25
894 06ca 8093 0000 sts I2CTimeout,r24
895 06ce 8091 0000 lds r24,DebugOut+58
896 06d2 9091 0000 lds r25,(DebugOut+58)+1
897 06d6 0196 adiw r24,1
898 06d8 9093 0000 sts (DebugOut+58)+1,r25
899 06dc 8093 0000 sts DebugOut+58,r24
900 06e0 8091 0000 lds r24,FCFlags
901 06e4 8068 ori r24,lo8(-128)
902 06e6 8093 0000 sts FCFlags,r24
903 06ea 8091 0000 lds r24,VersionInfo+6
904 06ee 8160 ori r24,lo8(1)
905 06f0 8093 0000 sts VersionInfo+6,r24
906 06f4 8091 0000 lds r24,DebugOut+1
907 06f8 8260 ori r24,lo8(2)
908 06fa 8093 0000 sts DebugOut+1,r24
909 .L87:
910 06fe 8091 0000 lds r24,BeepMuster
911 0702 9091 0000 lds r25,(BeepMuster)+1
912 0706 8F5F subi r24,lo8(-1)
913 0708 9F4F sbci r25,hi8(-1)
914 070a 19F5 brne .L89
915 070c 8091 0000 lds r24,MotorenEin
916 0710 8823 tst r24
917 0712 F9F0 breq .L89
918 0714 80E1 ldi r24,lo8(10000)
919 0716 97E2 ldi r25,hi8(10000)
920 0718 9093 0000 sts (beeptime)+1,r25
921 071c 8093 0000 sts beeptime,r24
922 0720 80E8 ldi r24,lo8(128)
923 0722 90E0 ldi r25,hi8(128)
924 0724 9093 0000 sts (BeepMuster)+1,r25
925 0728 8093 0000 sts BeepMuster,r24
926 072c 12C0 rjmp .L89
927 .L85:
928 072e 2A30 cpi r18,lo8(10)
929 0730 11F0 breq .L91
930 0732 2431 cpi r18,lo8(20)
931 0734 10F0 brlo .L90
932 .L91:
933 0736 2898 cbi 37-0x20,0
934 0738 01C0 rjmp .L92
935 .L90:
936 073a 289A sbi 37-0x20,0
937 .L92:
938 073c 8091 0000 lds r24,beeptime
939 0740 9091 0000 lds r25,(beeptime)+1
940 0744 892B or r24,r25
941 0746 29F4 brne .L89
942 0748 8091 0000 lds r24,FCFlags
943 074c 8F77 andi r24,lo8(127)
944 074e 8093 0000 sts FCFlags,r24
945 .L89:
946 0752 8091 0000 lds r24,UpdateMotor
947 0756 8823 tst r24
948 0758 09F0 breq .+2
949 075a 42C1 rjmp .L77
950 075c 0E94 0000 call DatenUebertragung
951 0760 0E94 0000 call BearbeiteRxDaten
952 0764 C801 movw r24,r16
953 0766 0E94 0000 call CheckDelay
954 076a 8823 tst r24
955 076c 09F4 brne .+2
956 076e 34C1 rjmp .L95
957 0770 0C5E subi r16,lo8(-(20))
958 0772 1F4F sbci r17,hi8(-(20))
959 0774 8091 0000 lds r24,MissingMotor
960 0778 9091 0000 lds r25,VersionInfo+6
961 077c 8823 tst r24
962 077e 39F0 breq .L96
963 0780 9260 ori r25,lo8(2)
964 0782 9093 0000 sts VersionInfo+6,r25
965 0786 8091 0000 lds r24,DebugOut+1
966 078a 8260 ori r24,lo8(2)
967 078c 0CC0 rjmp .L232
968 .L96:
969 078e 9D7F andi r25,lo8(-3)
970 0790 9093 0000 sts VersionInfo+6,r25
971 0794 8091 0000 lds r24,I2CTimeout
972 0798 9091 0000 lds r25,(I2CTimeout)+1
973 079c 0797 sbiw r24,7
974 079e 28F0 brlo .L97
975 07a0 8091 0000 lds r24,DebugOut+1
976 07a4 8D7F andi r24,lo8(-3)
977 .L232:
978 07a6 8093 0000 sts DebugOut+1,r24
979 .L97:
980 07aa 8091 0000 lds r24,I2CTimeout
981 07ae 9091 0000 lds r25,(I2CTimeout)+1
982 07b2 0797 sbiw r24,7
983 07b4 28F0 brlo .L99
984 07b6 8091 0000 lds r24,VersionInfo+6
985 07ba 8E7F andi r24,lo8(-2)
986 07bc 8093 0000 sts VersionInfo+6,r24
987 .L99:
988 07c0 8091 0000 lds r24,PcZugriff
989 07c4 8823 tst r24
990 07c6 21F0 breq .L100
991 07c8 8150 subi r24,lo8(-(-1))
992 07ca 8093 0000 sts PcZugriff,r24
993 07ce 25C0 rjmp .L101
994 .L100:
995 07d0 8093 0000 sts ExternControl+10,r24
996 07d4 1092 0000 sts (ExternStickNick)+1,__zero_reg__
997 07d8 1092 0000 sts ExternStickNick,__zero_reg__
998 07dc 1092 0000 sts (ExternStickRoll)+1,__zero_reg__
999 07e0 1092 0000 sts ExternStickRoll,__zero_reg__
1000 07e4 1092 0000 sts (ExternStickGier)+1,__zero_reg__
1001 07e8 1092 0000 sts ExternStickGier,__zero_reg__
1002 07ec 8091 0000 lds r24,BeepMuster
1003 07f0 9091 0000 lds r25,(BeepMuster)+1
1004 07f4 8F5F subi r24,lo8(-1)
1005 07f6 9F4F sbci r25,hi8(-1)
1006 07f8 81F4 brne .L101
1007 07fa 8091 0000 lds r24,SenderOkay
1008 07fe 8823 tst r24
1009 0800 61F4 brne .L101
1010 0802 88E9 ldi r24,lo8(15000)
1011 0804 9AE3 ldi r25,hi8(15000)
1012 0806 9093 0000 sts (beeptime)+1,r25
1013 080a 8093 0000 sts beeptime,r24
1014 080e 80E0 ldi r24,lo8(3072)
1015 0810 9CE0 ldi r25,hi8(3072)
1016 0812 9093 0000 sts (BeepMuster)+1,r25
1017 0816 8093 0000 sts BeepMuster,r24
1018 .L101:
1019 081a 8091 0000 lds r24,NaviDataOkay
1020 081e 893C cpi r24,lo8(-55)
1021 0820 70F0 brlo .L103
1022 0822 8150 subi r24,lo8(-(-1))
1023 0824 8093 0000 sts NaviDataOkay,r24
1024 0828 8091 0000 lds r24,FCFlags
1025 082c 8F7B andi r24,lo8(-65)
1026 082e 8093 0000 sts FCFlags,r24
1027 0832 8091 0000 lds r24,VersionInfo+6
1028 0836 8B7F andi r24,lo8(-5)
1029 0838 8093 0000 sts VersionInfo+6,r24
1030 083c 35C0 rjmp .L104
1031 .L103:
1032 083e 8091 0000 lds r24,NC_Version+3
1033 0842 8823 tst r24
1034 0844 09F1 breq .L105
1035 0846 8091 0000 lds r24,FCFlags
1036 084a 8064 ori r24,lo8(64)
1037 084c 8093 0000 sts FCFlags,r24
1038 0850 8091 0000 lds r24,VersionInfo+6
1039 0854 8460 ori r24,lo8(4)
1040 0856 8093 0000 sts VersionInfo+6,r24
1041 085a 8091 0000 lds r24,BeepMuster
1042 085e 9091 0000 lds r25,(BeepMuster)+1
1043 0862 8F5F subi r24,lo8(-1)
1044 0864 9F4F sbci r25,hi8(-1)
1045 0866 81F4 brne .L105
1046 0868 8091 0000 lds r24,MotorenEin
1047 086c 8823 tst r24
1048 086e 61F0 breq .L105
1049 0870 88E9 ldi r24,lo8(15000)
1050 0872 9AE3 ldi r25,hi8(15000)
1051 0874 9093 0000 sts (beeptime)+1,r25
1052 0878 8093 0000 sts beeptime,r24
1053 087c 80E0 ldi r24,lo8(-22528)
1054 087e 98EA ldi r25,hi8(-22528)
1055 0880 9093 0000 sts (BeepMuster)+1,r25
1056 0884 8093 0000 sts BeepMuster,r24
1057 .L105:
1058 0888 1092 0000 sts (GPS_Nick)+1,__zero_reg__
1059 088c 1092 0000 sts GPS_Nick,__zero_reg__
1060 0890 1092 0000 sts (GPS_Roll)+1,__zero_reg__
1061 0894 1092 0000 sts GPS_Roll,__zero_reg__
1062 0898 8FEF ldi r24,lo8(-1)
1063 089a 9FEF ldi r25,hi8(-1)
1064 089c 9093 0000 sts (FromNaviCtrl+7)+1,r25
1065 08a0 8093 0000 sts FromNaviCtrl+7,r24
1066 08a4 1092 0000 sts NaviDataOkay,__zero_reg__
1067 .L104:
1068 08a8 8091 0000 lds r24,BattLowVoltageWarning
1069 08ac 282F mov r18,r24
1070 08ae 3327 clr r19
1071 08b0 8091 0000 lds r24,UBat
1072 08b4 9091 0000 lds r25,(UBat)+1
1073 08b8 8217 cp r24,r18
1074 08ba 9307 cpc r25,r19
1075 08bc CCF4 brge .L107
1076 08be 8091 0000 lds r24,FCFlags
1077 08c2 8062 ori r24,lo8(32)
1078 08c4 8093 0000 sts FCFlags,r24
1079 08c8 8091 0000 lds r24,BeepMuster
1080 08cc 9091 0000 lds r25,(BeepMuster)+1
1081 08d0 8F5F subi r24,lo8(-1)
1082 08d2 9F4F sbci r25,hi8(-1)
1083 08d4 C1F4 brne .L109
1084 08d6 80E7 ldi r24,lo8(6000)
1085 08d8 97E1 ldi r25,hi8(6000)
1086 08da 9093 0000 sts (beeptime)+1,r25
1087 08de 8093 0000 sts beeptime,r24
1088 08e2 80E0 ldi r24,lo8(768)
1089 08e4 93E0 ldi r25,hi8(768)
1090 08e6 9093 0000 sts (BeepMuster)+1,r25
1091 08ea 8093 0000 sts BeepMuster,r24
1092 08ee 0BC0 rjmp .L109
1093 .L107:
1094 08f0 8091 0000 lds r24,beeptime
1095 08f4 9091 0000 lds r25,(beeptime)+1
1096 08f8 892B or r24,r25
1097 08fa 29F4 brne .L109
1098 08fc 8091 0000 lds r24,FCFlags
1099 0900 8F7D andi r24,lo8(-33)
1100 0902 8093 0000 sts FCFlags,r24
1101 .L109:
1102 0906 0E94 0000 call SPI_StartTransmitPacket
1103 090a 84E0 ldi r24,lo8(4)
1104 090c 8093 0000 sts SendSPI,r24
1105 0910 8091 0000 lds r24,MotorenEin
1106 0914 8823 tst r24
1107 0916 29F4 brne .L111
1108 0918 5AEA ldi r21,lo8(1450)
1109 091a 852E mov r8,r21
1110 091c 55E0 ldi r21,hi8(1450)
1111 091e 952E mov r9,r21
1112 0920 12C0 rjmp .L112
1113 .L111:
1114 0922 8091 0000 lds r24,second.11
1115 0926 8F5F subi r24,lo8(-(1))
1116 0928 8093 0000 sts second.11,r24
1117 092c 8133 cpi r24,lo8(49)
1118 092e 59F4 brne .L112
1119 0930 1092 0000 sts second.11,__zero_reg__
1120 0934 8091 0000 lds r24,FlugSekunden
1121 0938 9091 0000 lds r25,(FlugSekunden)+1
1122 093c 0196 adiw r24,1
1123 093e 9093 0000 sts (FlugSekunden)+1,r25
1124 0942 8093 0000 sts FlugSekunden,r24
1125 .L112:
1126 0946 0894 sec
1127 0948 811C adc r8,__zero_reg__
1128 094a 911C adc r9,__zero_reg__
1129 094c F2E7 ldi r31,lo8(2930)
1130 094e 8F16 cp r8,r31
1131 0950 FBE0 ldi r31,hi8(2930)
1132 0952 9F06 cpc r9,r31
1133 0954 09F0 breq .+2
1134 0956 40C0 rjmp .L95
1135 0958 8824 clr r8
1136 095a 9924 clr r9
1137 095c 2091 0000 lds r18,FlugMinuten
1138 0960 3091 0000 lds r19,(FlugMinuten)+1
1139 0964 2F5F subi r18,lo8(-(1))
1140 0966 3F4F sbci r19,hi8(-(1))
1141 0968 3093 0000 sts (FlugMinuten)+1,r19
1142 096c 2093 0000 sts FlugMinuten,r18
1143 0970 8091 0000 lds r24,FlugMinutenGesamt
1144 0974 9091 0000 lds r25,(FlugMinutenGesamt)+1
1145 0978 0196 adiw r24,1
1146 097a 9093 0000 sts (FlugMinutenGesamt)+1,r25
1147 097e 8093 0000 sts FlugMinutenGesamt,r24
1148 0982 832F mov r24,r19
1149 0984 9927 clr r25
1150 0986 682F mov r22,r24
1151 0988 8EE0 ldi r24,lo8(14)
1152 098a 90E0 ldi r25,hi8(14)
1153 098c 0E94 0000 call SetParamByte
1154 0990 8091 0000 lds r24,FlugMinuten
1155 0994 9091 0000 lds r25,(FlugMinuten)+1
1156 0998 9070 andi r25,hi8(255)
1157 099a 682F mov r22,r24
1158 099c 8FE0 ldi r24,lo8(15)
1159 099e 90E0 ldi r25,hi8(15)
1160 09a0 0E94 0000 call SetParamByte
1161 09a4 8091 0000 lds r24,FlugMinutenGesamt
1162 09a8 9091 0000 lds r25,(FlugMinutenGesamt)+1
1163 09ac 892F mov r24,r25
1164 09ae 9927 clr r25
1165 09b0 682F mov r22,r24
1166 09b2 8AE0 ldi r24,lo8(10)
1167 09b4 90E0 ldi r25,hi8(10)
1168 09b6 0E94 0000 call SetParamByte
1169 09ba 8091 0000 lds r24,FlugMinutenGesamt
1170 09be 9091 0000 lds r25,(FlugMinutenGesamt)+1
1171 09c2 9070 andi r25,hi8(255)
1172 09c4 682F mov r22,r24
1173 09c6 8BE0 ldi r24,lo8(11)
1174 09c8 90E0 ldi r25,hi8(11)
1175 09ca 0E94 0000 call SetParamByte
1176 09ce 84E1 ldi r24,lo8(20)
1177 09d0 90E0 ldi r25,hi8(20)
1178 09d2 0E94 0000 call SetDelay
1179 09d6 8C01 movw r16,r24
1180 .L95:
1181 09d8 0E94 0000 call LED_Update
1182 09dc 0E94 0000 call Capacity_Update
1183 .L77:
1184 09e0 8091 0000 lds r24,SendSPI
1185 09e4 8823 tst r24
1186 09e6 09F0 breq .+2
1187 09e8 0BCE rjmp .L234
1188 09ea 0E94 0000 call SPI_TransmitByte
1189 09ee 08CE rjmp .L234
1190 /* epilogue: frame size=0 */
1191 /* epilogue: noreturn */
1192 /* epilogue end (size=0) */
1193 /* function main size 1092 (1088) */
1195 .comm _printf_P,2,1
1196 /* File "main.c": code 1285 = 0x0505 (1273), prologues 7, epilogues 5 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:15 .bss:00000000 FoundMotors
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:21 .bss:00000001 FlugSekunden
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:27 .bss:00000003 FlugMinutenGesamt
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:33 .bss:00000005 FlugMinuten
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:39 .data:00000000 BattLowVoltageWarning
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:44 .data:00000001 SendVersionToNavi
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:49 .data:00000002 PlatinenVersion
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:53 .data:00000003 stick.15
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:58 .text:00000000 CalMk3Mag
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:112 .progmem.data:00000000 __c.12
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:116 .progmem.data:00000008 __c.13
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:120 .progmem.data:00000013 __c.14
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:125 .text:0000006a LipoDetection
*COM*:00000002 _printf_P
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:262 .progmem.data:0000002d __c.0
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:266 .progmem.data:0000003f __c.1
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:270 .progmem.data:00000042 __c.2
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:274 .progmem.data:00000060 __c.3
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:278 .progmem.data:00000086 __c.4
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:282 .progmem.data:000000a6 __c.5
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:286 .progmem.data:000000ab __c.6
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:290 .progmem.data:000000ce __c.7
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:294 .progmem.data:000000da __c.8
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:298 .progmem.data:000000e6 __c.9
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:302 .progmem.data:000000f8 __c.10
.bss:00000007 second.11
C:\Users\Arthur-P\AppData\Local\Temp/cc8Waaaa.s:308 .text:0000017e main
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
EE_Parameter
PPM_in
WinkelOut
beeptime
Piep
DebugOut
uart_putchar
SetDelay
CheckDelay
UBat
__udivmodqi4
__stack
StickGier
StickRoll
StickNick
GIER_GRAD_FAKTOR
Timer_Init
TIMER2_Init
UART_Init
rc_sum_init
ADC_Init
I2C_Init
SPI_MasterInit
Capacity_Init
LIBFC_Init
ParamSet_Init
BLFlags
motor_read
SendMotorData
Motor
Mixer
ServoActive
RequiredMotors
VersionInfo
SucheLuftruckOffset
SetNeutral
ExternControl
GetParamByte
LcdClear
I2CTimeout
LIBFC_ReceiverInit
LIBFC_Polling
UpdateMotor
AdReady
MotorRegler
SenderOkay
MissingMotor
I2C_Reset
FCFlags
BeepMuster
MotorenEin
DatenUebertragung
BearbeiteRxDaten
PcZugriff
ExternStickNick
ExternStickRoll
ExternStickGier
NaviDataOkay
NC_Version
GPS_Nick
GPS_Roll
FromNaviCtrl
SPI_StartTransmitPacket
SendSPI
SetParamByte
LED_Update
Capacity_Update
SPI_TransmitByte
/branches/V0.80d-Arthur-P/makefile
0,0 → 1,464
#--------------------------------------------------------------------
# MCU name
#MCU = atmega1284p
MCU = atmega644p
F_CPU = 20000000
#-------------------------------------------------------------------
VERSION_MAJOR = 0
VERSION_MINOR = 80
VERSION_PATCH = 3
VERSION_SERIAL_MAJOR = 11 # Serial Protocol
VERSION_SERIAL_MINOR = 0 # Serial Protocol
NC_SPI_COMPATIBLE = 14 # Navi-Kompatibilität
#-------------------------------------------------------------------
 
# get SVN revision
REV := $(shell sh -c "cat .svn/entries | sed -n '4p'")
 
ifeq ($(MCU), atmega1284p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA1284P
LIBFC_EXT = 1284
endif
 
ifeq ($(MCU), atmega644p)
FUSE_SETTINGS = -u -U lfuse:w:0xff:m -U hfuse:w:0xdf:m
HEX_NAME = MEGA644
LIBFC_EXT = 644
endif
 
ifeq ($(F_CPU), 16000000)
QUARZ = 16MHZ
endif
 
ifeq ($(F_CPU), 20000000)
QUARZ = 20MHZ
endif
 
 
# Output format. (can be srec, ihex, binary)
FORMAT = ihex
 
# Target file name (without extension).
 
ifeq ($(VERSION_PATCH), 0)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)a_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 1)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)b_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 2)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)c_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 3)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)d_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 4)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)e_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 5)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)f_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 6)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)g_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 7)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)h_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 8)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)i_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 9)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)j_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 10)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)k_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 11)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)L_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 12)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)m_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 13)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)n_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 14)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)o_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 15)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)p_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 16)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)q_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 17)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)r_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 18)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)s_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 19)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)t_SVN$(REV)
endif
ifeq ($(VERSION_PATCH), 20)
TARGET = Flight-Ctrl_$(HEX_NAME)_V$(VERSION_MAJOR)_$(VERSION_MINOR)u_SVN$(REV)
endif
 
 
# Optimization level, can be [0, 1, 2, 3, s]. 0 turns off optimization.
# (Note: 3 is not always the best optimization level. See avr-libc FAQ.)
OPT = s
#OPT = 2
 
##########################################################################################################
# List C source files here. (C dependencies are automatically generated.)
SRC = main.c uart.c timer0.c analog.c menu.c eeprom.c
SRC += twimaster.c rc.c fc.c GPS.c spi.c led.c Spektrum.c
SRC += mymath.c jetimenu.c capacity.c debug.c
 
##########################################################################################################
 
 
# List Assembler source files here.
# Make them always end in a capital .S. Files ending in a lowercase .s
# will not be considered source files but generated files (assembler
# output from the compiler), and will be deleted upon "make clean"!
# Even though the DOS/Win* filesystem matches both .s and .S the same,
# it will preserve the spelling of the filenames, and gcc itself does
# care about how the name is spelled on its command-line.
ASRC = isqrt.S
 
 
 
# List any extra directories to look for include files here.
# Each directory must be seperated by a space.
EXTRAINCDIRS =
 
 
# Optional compiler flags.
# -g: generate debugging information (for GDB, or for COFF conversion)
# -O*: optimization level
# -f...: tuning, see gcc manual and avr-libc documentation
# -Wall...: warning level
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create assembler listing
CFLAGS = -O$(OPT) -funsigned-char -funsigned-bitfields -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=$(<:%.c=%.lst) $(patsubst %,-I%,$(EXTRAINCDIRS))
 
 
# Set a "language standard" compiler flag.
# Unremark just one line below to set the language standard to use.
# gnu99 = C99 + GNU extensions. See GCC manual for more information.
#CFLAGS += -std=c89
#CFLAGS += -std=gnu89
#CFLAGS += -std=c99
CFLAGS += -std=gnu99
 
# shrink code size
CFLAGS += -mtiny-stack
#CFLAGS += -fno-inline-functions
CFLAGS += -mcall-prologues
 
CFLAGS += -DF_CPU=$(F_CPU) -DVERSION_MAJOR=$(VERSION_MAJOR) -DVERSION_MINOR=$(VERSION_MINOR) -DVERSION_PATCH=$(VERSION_PATCH) -DVERSION_SERIAL_MAJOR=$(VERSION_SERIAL_MAJOR) -DVERSION_SERIAL_MINOR=$(VERSION_SERIAL_MINOR) -DNC_SPI_COMPATIBLE=$(NC_SPI_COMPATIBLE)
 
 
# Optional assembler flags.
# -Wa,...: tell GCC to pass this to the assembler.
# -ahlms: create listing
# -gstabs: have the assembler create line number information; note that
# for use in COFF files, additional information about filenames
# and function names needs to be present in the assembler source
# files -- see avr-libc docs [FIXME: not yet described there]
ASFLAGS = -Wa,-adhlns=$(<:.S=.lst),-gstabs
 
 
 
# Optional linker flags.
# -Wl,...: tell GCC to pass this to linker.
# -Map: create map file
# --cref: add cross reference to map file
LDFLAGS = -Wl,-Map=$(TARGET).map,--cref
 
# Additional libraries
 
# Minimalistic printf version
#LDFLAGS += -Wl,-u,vfprintf -lprintf_min
 
# Floating point printf version (requires -lm below)
#LDFLAGS += -Wl,-u,vfprintf -lprintf_flt
 
# -lm = math library
LDFLAGS += -lm
 
LDFLAGS += libfc$(LIBFC_EXT).a
 
##LDFLAGS += -T./linkerfile/avr5.x
 
 
 
# Programming support using avrdude. Settings and variables.
 
# Programming hardware: alf avr910 avrisp bascom bsd
# dt006 pavr picoweb pony-stk200 sp12 stk200 stk500
#
# Type: avrdude -c ?
# to get a full listing.
#
#AVRDUDE_PROGRAMMER = dt006
#AVRDUDE_PROGRAMMER = stk200
#AVRDUDE_PROGRAMMER = ponyser
AVRDUDE_PROGRAMMER = avrispv2
#falls Ponyser ausgewählt wird, muss sich unsere avrdude-Configdatei im Bin-Verzeichnis des Compilers befinden
 
#AVRDUDE_PORT = com1 # programmer connected to serial device
#AVRDUDE_PORT = lpt1 # programmer connected to parallel port
AVRDUDE_PORT = usb # programmer connected to USB
 
#AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex
AVRDUDE_WRITE_FLASH = -U flash:w:$(TARGET).hex $(FUSE_SETTINGS)
#AVRDUDE_WRITE_EEPROM = -U eeprom:w:$(TARGET).eep
 
#avrdude -c avrispv2 -P usb -p m32 -U flash:w:blink.hex
AVRDUDE_FLAGS = -p $(MCU) -P $(AVRDUDE_PORT) -c $(AVRDUDE_PROGRAMMER)
 
# Uncomment the following if you want avrdude's erase cycle counter.
# Note that this counter needs to be initialized first using -Yn,
# see avrdude manual.
#AVRDUDE_ERASE += -y
 
# Uncomment the following if you do /not/ wish a verification to be
# performed after programming the device.
AVRDUDE_FLAGS += -V
 
# Increase verbosity level. Please use this when submitting bug
# reports about avrdude. See <http://savannah.nongnu.org/projects/avrdude>
# to submit bug reports.
#AVRDUDE_FLAGS += -v -v
 
# ---------------------------------------------------------------------------
# Define directories, if needed.
DIRAVR = c:/winavr
DIRAVRBIN = $(DIRAVR)/bin
DIRAVRUTILS = $(DIRAVR)/utils/bin
DIRINC = .
DIRLIB = $(DIRAVR)/avr/lib
 
 
# Define programs and commands.
SHELL = sh
 
CC = avr-gcc
 
OBJCOPY = avr-objcopy
OBJDUMP = avr-objdump
SIZE = avr-size
 
# Programming support using avrdude.
AVRDUDE = avrdude
 
REMOVE = rm -f
COPY = cp
 
HEXSIZE = $(SIZE) --target=$(FORMAT) $(TARGET).hex
ELFSIZE = $(SIZE) -x -A $(TARGET).elf
LIMITS = $(SIZE) --mcu=$(MCU) -C $(TARGET).elf
 
 
# Define Messages
# English
MSG_ERRORS_NONE = Errors: none
MSG_BEGIN = -------- begin --------
MSG_END = -------- end --------
MSG_SIZE_BEFORE = Size before:
MSG_SIZE_AFTER = Size after:
MSG_COFF = Converting to AVR COFF:
MSG_EXTENDED_COFF = Converting to AVR Extended COFF:
MSG_FLASH = Creating load file for Flash:
MSG_EEPROM = Creating load file for EEPROM:
MSG_EXTENDED_LISTING = Creating Extended Listing:
MSG_SYMBOL_TABLE = Creating Symbol Table:
MSG_LINKING = Linking:
MSG_COMPILING = Compiling:
MSG_ASSEMBLING = Assembling:
MSG_CLEANING = Cleaning project:
 
 
# Define all object files.
OBJ = $(SRC:.c=.o) $(ASRC:.S=.o)
 
# Define all listing files.
LST = $(ASRC:.S=.lst) $(SRC:.c=.lst)
 
# Combine all necessary flags and optional flags.
# Add target processor to flags.
#ALL_CFLAGS = -mmcu=$(MCU) -DF_CPU=$(F_CPU) -I. $(CFLAGS)
ALL_CFLAGS = -mmcu=$(MCU) -I. $(CFLAGS)
ALL_ASFLAGS = -mmcu=$(MCU) -I. -x assembler-with-cpp $(ASFLAGS)
 
 
# Default target.
all: begin gccversion sizebefore $(TARGET).elf $(TARGET).hex sizeafter finished end
 
 
# Eye candy.
# AVR Studio 3.x does not check make's exit code but relies on
# the following magic strings to be generated by the compile job.
begin:
@echo
@echo $(MSG_BEGIN)
 
finished:
@echo $(MSG_ERRORS_NONE)
 
end:
@echo $(MSG_END)
@echo
 
 
# Display size of file.
sizebefore:
@if [ -f $(TARGET).elf ]; then echo Size before:; $(ELFSIZE); $(HEXSIZE); $(LIMITS); echo; fi
sizeafter:
@if [ -f $(TARGET).elf ]; then echo Size after:; $(ELFSIZE); $(HEXSIZE); $(LIMITS); echo; fi
 
 
# Display compiler version information.
gccversion :
@$(CC) --version
 
 
# Convert ELF to COFF for use in debugging / simulating in
# AVR Studio or VMLAB.
COFFCONVERT=$(OBJCOPY) --debugging \
--change-section-address .data-0x800000 \
--change-section-address .bss-0x800000 \
--change-section-address .noinit-0x800000 \
--change-section-address .eeprom-0x810000
 
 
coff: $(TARGET).elf
@echo
@echo $(MSG_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-avr $< $(TARGET).cof
 
 
extcoff: $(TARGET).elf
@echo
@echo $(MSG_EXTENDED_COFF) $(TARGET).cof
$(COFFCONVERT) -O coff-ext-avr $< $(TARGET).cof
 
 
 
 
# Program the device.
program: $(TARGET).hex $(TARGET).eep
$(AVRDUDE) $(AVRDUDE_FLAGS) $(AVRDUDE_WRITE_FLASH) $(AVRDUDE_WRITE_EEPROM)
 
 
 
 
# Create final output files (.hex, .eep) from ELF output file.
%.hex: %.elf
@echo
@echo $(MSG_FLASH) $@
$(OBJCOPY) -O $(FORMAT) -R .eeprom $< $@
 
%.eep: %.elf
@echo
@echo $(MSG_EEPROM) $@
-$(OBJCOPY) -j .eeprom --set-section-flags=.eeprom="alloc,load" \
--change-section-lma .eeprom=0 -O $(FORMAT) $< $@
 
# Create extended listing file from ELF output file.
%.lss: %.elf
@echo
@echo $(MSG_EXTENDED_LISTING) $@
$(OBJDUMP) -h -S $< > $@
 
# Create a symbol table from ELF output file.
%.sym: %.elf
@echo
@echo $(MSG_SYMBOL_TABLE) $@
avr-nm -n $< > $@
 
 
 
# Link: create ELF output file from object files.
.SECONDARY : $(TARGET).elf
.PRECIOUS : $(OBJ)
%.elf: $(OBJ)
@echo
@echo $(MSG_LINKING) $@
$(CC) $(ALL_CFLAGS) $(OBJ) --output $@ $(LDFLAGS)
 
 
# Compile: create object files from C source files.
%.o : %.c
@echo
@echo $(MSG_COMPILING) $<
$(CC) -c $(ALL_CFLAGS) $< -o $@
 
 
# Compile: create assembler files from C source files.
%.s : %.c
$(CC) -S $(ALL_CFLAGS) $< -o $@
 
 
# Assemble: create object files from assembler source files.
%.o : %.S
@echo
@echo $(MSG_ASSEMBLING) $<
$(CC) -c $(ALL_ASFLAGS) $< -o $@
 
 
 
 
 
 
# Target: clean project.
clean: begin clean_list finished end
 
clean_list :
@echo
@echo $(MSG_CLEANING)
$(REMOVE) Flight-Ctrl_*.hex
$(REMOVE) Flight-Ctrl_*.eep
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).cof
$(REMOVE) Flight-Ctrl_*.elf
$(REMOVE) Flight-Ctrl_*.map
$(REMOVE) $(TARGET).obj
$(REMOVE) $(TARGET).a90
$(REMOVE) Flight-Ctrl_*.sym
$(REMOVE) $(TARGET).lnk
$(REMOVE) $(TARGET).lss
$(REMOVE) $(OBJ)
$(REMOVE) $(LST)
$(REMOVE) $(SRC:.c=.s)
$(REMOVE) $(SRC:.c=.d)
$(REMOVE) $(SRC:.c=.o)
 
 
# Automatically generate C source code dependencies.
# (Code originally taken from the GNU make user manual and modified
# (See README.txt Credits).)
#
# Note that this will work with sh (bash) and sed that is shipped with WinAVR
# (see the SHELL variable defined above).
# This may not work with other shells or other seds.
#
%.d: %.c
set -e; $(CC) -MM $(ALL_CFLAGS) $< \
| sed 's,\(.*\)\.o[ :]*,\1.o \1.d : ,g' > $@; \
[ -s $@ ] || rm -f $@
 
 
# Remove the '-' if you want to see the dependency files generated.
-include $(SRC:%.c=%.d)
 
 
 
# Listing of phony targets.
.PHONY : all begin finish end sizebefore sizeafter gccversion coff extcoff \
clean clean_list program
 
/branches/V0.80d-Arthur-P/menu.c
0,0 → 1,204
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include "main.h"
#include "eeprom.h"
 
char DisplayBuff[80] = "Hello World";
unsigned char DispPtr = 0;
 
unsigned char MaxMenue = 17;
unsigned char MenuePunkt = 0;
unsigned char RemoteKeys = 0;
 
#define KEY1 0x01
#define KEY2 0x02
#define KEY3 0x04
#define KEY4 0x08
#define KEY5 0x10
 
void LcdClear(void)
{
unsigned char i;
for(i=0;i<80;i++) DisplayBuff[i] = ' ';
}
 
void Menu_Putchar(char c)
{
DisplayBuff[DispPtr++] = c;
}
 
void Menu(void)
{
if(RemoteKeys & KEY1) { if(MenuePunkt) MenuePunkt--; else MenuePunkt = MaxMenue;}
if(RemoteKeys & KEY2) { if(MenuePunkt == MaxMenue) MenuePunkt = 0; else MenuePunkt++;}
if((RemoteKeys & KEY1) && (RemoteKeys & KEY2)) MenuePunkt = 0;
LcdClear();
if(MenuePunkt < 10) {LCD_printfxy(17,0,"[%i]",MenuePunkt);}
else {LCD_printfxy(16,0,"[%i]",MenuePunkt);};
 
switch(MenuePunkt)
{
case 0:
LCD_printfxy(0,0,"+ MikroKopter +");
LCD_printfxy(0,1,"HW:V%d.%d SW:%d.%d%c-Arthur-P",PlatinenVersion/10,PlatinenVersion%10, VERSION_MAJOR, VERSION_MINOR, VERSION_PATCH +'a');
LCD_printfxy(0,2,"Setting:%d %s", GetActiveParamSet(),Mixer.Name);
if(VersionInfo.HardwareError[0]) LCD_printfxy(0,3,"Hardware Error 1:%d !!",VersionInfo.HardwareError[0])
else
if(MissingMotor) LCD_printfxy(0,3,"Missing BL-Ctrl:%d!!",MissingMotor)
else
if(VersionInfo.HardwareError[1] & DEFEKT_MIXER_ERR) LCD_printfxy(0,3,"Mixer Error!")
else
// if(VersionInfo.HardwareError[1]) LCD_printfxy(0,3,"Error 2:%d !!",VersionInfo.HardwareError[1])
// else
if(I2CTimeout < 6) LCD_printfxy(0,3,"I2C ERROR!!!")
break;
case 1:
if(EE_Parameter.GlobalConfig & CFG_HOEHENREGELUNG)
{
LCD_printfxy(0,0,"Height: %5i",(int)(HoehenWert/5));
LCD_printfxy(0,1,"Setpoint:%5i",(int)(SollHoehe/5));
LCD_printfxy(0,2,"Pressure:%5i",MessLuftdruck);
LCD_printfxy(0,3,"Offset: %5i",OCR0A);
}
else
{
LCD_printfxy(0,0,"Height control");
LCD_printfxy(0,1,"DISABLED");
LCD_printfxy(0,2,"Height control");
LCD_printfxy(0,3,"DISABLED");
}
 
break;
case 2:
LCD_printfxy(0,0,"act. bearing");
LCD_printfxy(0,1,"Nick: %5i",IntegralNick/1024);
LCD_printfxy(0,2,"Roll: %5i",IntegralRoll/1024);
LCD_printfxy(0,3,"Compass: %5i",KompassValue);
break;
case 3:
LCD_printfxy(0,0,"K1:%4i K2:%4i ",PPM_in[1],PPM_in[2]);
LCD_printfxy(0,1,"K3:%4i K4:%4i ",PPM_in[3],PPM_in[4]);
LCD_printfxy(0,2,"K5:%4i K6:%4i ",PPM_in[5],PPM_in[6]);
LCD_printfxy(0,3,"K7:%4i K8:%4i ",PPM_in[7],PPM_in[8]);
break;
case 4:
LCD_printfxy(0,0,"Ni:%4i Ro:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_NICK]],PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]);
LCD_printfxy(0,1,"Gs:%4i Gi:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]+120,PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]);
LCD_printfxy(0,2,"P1:%4i P2:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI1]]+110,PPM_in[EE_Parameter.Kanalbelegung[K_POTI2]]+110);
LCD_printfxy(0,3,"P3:%4i P4:%4i ",PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]]+110,PPM_in[EE_Parameter.Kanalbelegung[K_POTI4]]+110);
break;
case 5:
LCD_printfxy(0,0,"Gyro - Sensor");
if(PlatinenVersion == 10)
{
LCD_printfxy(0,1,"Nick%4i (%3i.%i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/8, AdNeutralNick%8);
LCD_printfxy(0,2,"Roll%4i (%3i.%i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/8, AdNeutralRoll%8);
LCD_printfxy(0,3,"Gier%4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier);
}
else
if((PlatinenVersion == 11) || (PlatinenVersion >= 20))
{
LCD_printfxy(0,1,"Nick %4i (%3i.%x)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16, (AdNeutralNick%16)/2);
LCD_printfxy(0,2,"Roll %4i (%3i.%x)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16, (AdNeutralRoll%16)/2);
LCD_printfxy(0,3,"Yaw %4i (%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2);
}
else
if(PlatinenVersion == 13)
{
LCD_printfxy(0,1,"Nick %4i (%3i)(%3i)",AdWertNick - AdNeutralNick/8, AdNeutralNick/16,AnalogOffsetNick);
LCD_printfxy(0,2,"Roll %4i (%3i)(%3i)",AdWertRoll - AdNeutralRoll/8, AdNeutralRoll/16,AnalogOffsetRoll);
LCD_printfxy(0,3,"Yaw %4i (%3i)(%3i)",AdNeutralGier - AdWertGier, AdNeutralGier/2,AnalogOffsetGier);
}
break;
case 6:
LCD_printfxy(0,0,"ACC - Sensor");
LCD_printfxy(0,1,"Nick %4i (%3i)",AdWertAccNick,NeutralAccX);
LCD_printfxy(0,2,"Roll %4i (%3i)",AdWertAccRoll,NeutralAccY);
LCD_printfxy(0,3,"Z %4i (%3i)",AdWertAccHoch,(int)NeutralAccZ);
break;
case 7:
LCD_printfxy(0,0,"Voltage: %3i.%1iV",UBat/10, UBat%10);
LCD_printfxy(0,1,"Current: %3i.%1iA",Capacity.ActualCurrent/10, Capacity.ActualCurrent%10);
LCD_printfxy(0,2,"Power: %4iW",Capacity.ActualPower);
LCD_printfxy(0,3,"Discharge: %5imAh", Capacity.UsedCapacity);
break;
case 8:
LCD_printfxy(0,0,"Receiver");
LCD_printfxy(0,1,"RC-RSSI: %4i", PPM_in[0]);
LCD_printfxy(0,2,"RC-Quality: %4i", SenderOkay);
LCD_printfxy(0,3,"RC-Channels:%4i", Channels-1);
break;
case 9:
LCD_printfxy(0,0,"Compass");
LCD_printfxy(0,1,"Heading: %5i",KompassRichtung);
LCD_printfxy(0,2,"Value: %5i",KompassValue);
LCD_printfxy(0,3,"Start: %5i",KompassStartwert);
break;
case 10:
LCD_printfxy(0,0,"Poti1: %3i",Poti[0]);
LCD_printfxy(0,1,"Poti2: %3i",Poti[1]);
LCD_printfxy(0,2,"Poti3: %3i",Poti[2]);
LCD_printfxy(0,3,"Poti4: %3i",Poti[3]);
break;
case 11:
LCD_printfxy(0,0,"Poti5: %3i",Poti[4]);
LCD_printfxy(0,1,"Poti6: %3i",Poti[5]);
LCD_printfxy(0,2,"Poti7: %3i",Poti[6]);
LCD_printfxy(0,3,"Poti8: %3i",Poti[7]);
break;
case 12:
LCD_printfxy(0,0,"Servo " );
LCD_printfxy(0,1,"Setpoint %3i",Parameter_ServoNickControl);
LCD_printfxy(0,2,"Position: %3i",ServoNickValue);
LCD_printfxy(0,3,"Range:%3i-%3i",EE_Parameter.ServoNickMin,EE_Parameter.ServoNickMax);
break;
case 13:
LCD_printfxy(0,0,"ExternControl " );
LCD_printfxy(0,1,"Ni:%4i Ro:%4i ",ExternControl.Nick,ExternControl.Roll);
LCD_printfxy(0,2,"Gs:%4i Gi:%4i ",ExternControl.Gas,ExternControl.Gier);
LCD_printfxy(0,3,"Hi:%4i Cf:%4i ",ExternControl.Hight,ExternControl.Config);
break;
case 14:
LCD_printfxy(0,0,"BL-Ctrl Errors " );
LCD_printfxy(0,1,"%3d %3d %3d %3d ",Motor[0].State & MOTOR_STATE_ERROR_MASK,Motor[1].State & MOTOR_STATE_ERROR_MASK,Motor[2].State & MOTOR_STATE_ERROR_MASK,Motor[3].State & MOTOR_STATE_ERROR_MASK);
LCD_printfxy(0,2,"%3d %3d %3d %3d ",Motor[4].State & MOTOR_STATE_ERROR_MASK,Motor[5].State & MOTOR_STATE_ERROR_MASK,Motor[6].State & MOTOR_STATE_ERROR_MASK,Motor[7].State & MOTOR_STATE_ERROR_MASK);
LCD_printfxy(0,3,"%3d %3d %3d %3d ",Motor[8].State & MOTOR_STATE_ERROR_MASK,Motor[9].State & MOTOR_STATE_ERROR_MASK,Motor[10].State & MOTOR_STATE_ERROR_MASK,Motor[11].State & MOTOR_STATE_ERROR_MASK);
break;
case 15:
LCD_printfxy(0,0,"BL Temperature" );
LCD_printfxy(0,1,"%3i %3i %3i %3i ",Motor[0].Temperature,Motor[1].Temperature,Motor[2].Temperature,Motor[3].Temperature);
LCD_printfxy(0,2,"%3i %3i %3i %3i ",Motor[4].Temperature,Motor[5].Temperature,Motor[6].Temperature,Motor[7].Temperature);
LCD_printfxy(0,3,"%3i %3i %3i %3i ",Motor[8].Temperature,Motor[9].Temperature,Motor[10].Temperature,Motor[11].Temperature);
break;
case 16:
LCD_printfxy(0,0,"BL-Ctrl found " );
LCD_printfxy(0,1," %c %c %c %c ",'-' + 4 * (Motor[0].State>>7),'-' + 5 * (Motor[1].State>>7),'-' + 6 * (Motor[2].State>>7),'-' + 7 * (Motor[3].State>>7));
LCD_printfxy(0,2," %c %c %c %c ",'-' + 8 * (Motor[4].State>>7),'-' + 9 * (Motor[5].State>>7),'-' + 10 * (Motor[6].State>>7),'-' + 11 * (Motor[7].State>>7));
LCD_printfxy(0,3," %c - - - ",'-' + 12 * (Motor[8].State>>7));
if(Motor[9].State>>7) LCD_printfxy(4,3,"10");
if(Motor[10].State>>7) LCD_printfxy(8,3,"11");
if(Motor[11].State>>7) LCD_printfxy(12,3,"12");
break;
case 17:
LCD_printfxy(0,0,"Flight-Time " );
LCD_printfxy(0,1,"Total:%5umin",FlugMinutenGesamt);
LCD_printfxy(0,2,"Act: %5umin",FlugMinuten);
LCD_printfxy(13,3,"(reset)");
if(RemoteKeys & KEY4)
{
FlugMinuten = 0;
SetParamWord(PID_FLIGHT_MINUTES, FlugMinuten);
}
break;
default:
if(MenuePunkt == MaxMenue) MaxMenue--;
MenuePunkt = 0;
break;
}
RemoteKeys = 0;
}
/branches/V0.80d-Arthur-P/menu.d
0,0 → 1,3
menu.o menu.d : menu.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/menu.h
0,0 → 1,17
#ifndef _MENU_H
#define _MENU_H
 
extern void Menu(void);
extern void LcdClear(void);
extern void Menu_Putchar(char c);
extern char DisplayBuff[80];
extern unsigned char DispPtr;
 
extern unsigned char MaxMenue;
extern unsigned char MenuePunkt;
extern unsigned char RemoteKeys;
 
#define LCD_printfxy(x,y,format, args...) { DispPtr = y * 20 + x; _printf_P(&Menu_Putchar,PSTR(format) , ## args);}
#define LCD_printf(format, args...) { _printf_P(&Menu_Putchar, PSTR(format) , ## args);}
 
#endif //_MENU_H
/branches/V0.80d-Arthur-P/menu.lst
0,0 → 1,3075
1 .file "menu.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global RemoteKeys
11 .global RemoteKeys
12 .section .bss
15 RemoteKeys:
16 0000 00 .skip 1,0
17 .global MenuePunkt
18 .global MenuePunkt
21 MenuePunkt:
22 0001 00 .skip 1,0
23 .global MaxMenue
24 .data
27 MaxMenue:
28 0000 11 .byte 17
29 .global DispPtr
30 .global DispPtr
31 .section .bss
34 DispPtr:
35 0002 00 .skip 1,0
36 .global DisplayBuff
37 .data
40 DisplayBuff:
41 0001 4865 6C6C .string "Hello World"
41 6F20 576F
41 726C 6400
42 000d 0000 0000 .skip 68,0
42 0000 0000
42 0000 0000
42 0000 0000
42 0000 0000
43 .text
44 .global LcdClear
46 LcdClear:
47 /* prologue: frame size=0 */
48 /* prologue end (size=0) */
49 0000 90E2 ldi r25,lo8(32)
50 0002 E0E0 ldi r30,lo8(DisplayBuff)
51 0004 F0E0 ldi r31,hi8(DisplayBuff)
52 0006 8FE4 ldi r24,lo8(79)
53 .L5:
54 0008 9193 st Z+,r25
55 000a 8150 subi r24,lo8(-(-1))
56 000c 87FF sbrs r24,7
57 000e FCCF rjmp .L5
58 /* epilogue: frame size=0 */
59 0010 0895 ret
60 /* epilogue end (size=1) */
61 /* function LcdClear size 9 (8) */
63 .global Menu_Putchar
65 Menu_Putchar:
66 /* prologue: frame size=0 */
67 /* prologue end (size=0) */
68 0012 9091 0000 lds r25,DispPtr
69 0016 E0E0 ldi r30,lo8(DisplayBuff)
70 0018 F0E0 ldi r31,hi8(DisplayBuff)
71 001a E90F add r30,r25
72 001c F11D adc r31,__zero_reg__
73 001e 8083 st Z,r24
74 0020 9F5F subi r25,lo8(-(1))
75 0022 9093 0000 sts DispPtr,r25
76 /* epilogue: frame size=0 */
77 0026 0895 ret
78 /* epilogue end (size=1) */
79 /* function Menu_Putchar size 11 (10) */
81 .section .progmem.data,"a",@progbits
84 __c.0:
85 0000 5B25 695D .string "[%i]"
85 00
88 __c.1:
89 0005 5B25 695D .string "[%i]"
89 00
92 __c.2:
93 000a 2B20 4D69 .string "+ MikroKopter +"
93 6B72 6F4B
93 6F70 7465
93 7220 2B00
96 __c.3:
97 001a 4857 3A56 .string "HW:V%d.%d SW:%d.%d%c-Arthur-P"
97 2564 2E25
97 6420 5357
97 3A25 642E
97 2564 2563
100 __c.4:
101 0038 5365 7474 .string "Setting:%d %s"
101 696E 673A
101 2564 2025
101 7300
104 __c.5:
105 0046 4861 7264 .string "Hardware Error 1:%d !!"
105 7761 7265
105 2045 7272
105 6F72 2031
105 3A25 6420
108 __c.6:
109 005d 4D69 7373 .string "Missing BL-Ctrl:%d!!"
109 696E 6720
109 424C 2D43
109 7472 6C3A
109 2564 2121
112 __c.7:
113 0072 4D69 7865 .string "Mixer Error!"
113 7220 4572
113 726F 7221
113 00
116 __c.8:
117 007f 4932 4320 .string "I2C ERROR!!!"
117 4552 524F
117 5221 2121
117 00
120 __c.9:
121 008c 4865 6967 .string "Height: %5i"
121 6874 3A20
121 2025 3569
121 00
124 __c.10:
125 0099 5365 7470 .string "Setpoint:%5i"
125 6F69 6E74
125 3A25 3569
125 00
128 __c.11:
129 00a6 5072 6573 .string "Pressure:%5i"
129 7375 7265
129 3A25 3569
129 00
132 __c.12:
133 00b3 4F66 6673 .string "Offset: %5i"
133 6574 3A20
133 2025 3569
133 00
136 __c.13:
137 00c0 4865 6967 .string "Height control"
137 6874 2063
137 6F6E 7472
137 6F6C 00
140 __c.14:
141 00cf 4449 5341 .string "DISABLED"
141 424C 4544
141 00
144 __c.15:
145 00d8 4865 6967 .string "Height control"
145 6874 2063
145 6F6E 7472
145 6F6C 00
148 __c.16:
149 00e7 4449 5341 .string "DISABLED"
149 424C 4544
149 00
152 __c.17:
153 00f0 6163 742E .string "act. bearing"
153 2062 6561
153 7269 6E67
153 00
156 __c.18:
157 00fd 4E69 636B .string "Nick: %5i"
157 3A20 2020
157 2020 2025
157 3569 00
160 __c.19:
161 010c 526F 6C6C .string "Roll: %5i"
161 3A20 2020
161 2020 2025
161 3569 00
164 __c.20:
165 011b 436F 6D70 .string "Compass: %5i"
165 6173 733A
165 2020 2025
165 3569 00
168 __c.21:
169 012a 4B31 3A25 .string "K1:%4i K2:%4i "
169 3469 2020
169 4B32 3A25
169 3469 2000
172 __c.22:
173 013a 4B33 3A25 .string "K3:%4i K4:%4i "
173 3469 2020
173 4B34 3A25
173 3469 2000
176 __c.23:
177 014a 4B35 3A25 .string "K5:%4i K6:%4i "
177 3469 2020
177 4B36 3A25
177 3469 2000
180 __c.24:
181 015a 4B37 3A25 .string "K7:%4i K8:%4i "
181 3469 2020
181 4B38 3A25
181 3469 2000
184 __c.25:
185 016a 4E69 3A25 .string "Ni:%4i Ro:%4i "
185 3469 2020
185 526F 3A25
185 3469 2000
188 __c.26:
189 017a 4773 3A25 .string "Gs:%4i Gi:%4i "
189 3469 2020
189 4769 3A25
189 3469 2000
192 __c.27:
193 018a 5031 3A25 .string "P1:%4i P2:%4i "
193 3469 2020
193 5032 3A25
193 3469 2000
196 __c.28:
197 019a 5033 3A25 .string "P3:%4i P4:%4i "
197 3469 2020
197 5034 3A25
197 3469 2000
200 __c.29:
201 01aa 4779 726F .string "Gyro - Sensor"
201 202D 2053
201 656E 736F
201 7200
204 __c.30:
205 01b8 4E69 636B .string "Nick%4i (%3i.%i)"
205 2534 6920
205 2825 3369
205 2E25 6929
205 00
208 __c.31:
209 01c9 526F 6C6C .string "Roll%4i (%3i.%i)"
209 2534 6920
209 2825 3369
209 2E25 6929
209 00
212 __c.32:
213 01da 4769 6572 .string "Gier%4i (%3i)"
213 2534 6920
213 2825 3369
213 2900
216 __c.33:
217 01e8 4E69 636B .string "Nick %4i (%3i.%x)"
217 2025 3469
217 2028 2533
217 692E 2578
217 2900
220 __c.34:
221 01fa 526F 6C6C .string "Roll %4i (%3i.%x)"
221 2025 3469
221 2028 2533
221 692E 2578
221 2900
224 __c.35:
225 020c 5961 7720 .string "Yaw %4i (%3i)"
225 2025 3469
225 2028 2533
225 6929 00
228 __c.36:
229 021b 4E69 636B .string "Nick %4i (%3i)(%3i)"
229 2025 3469
229 2028 2533
229 6929 2825
229 3369 2900
232 __c.37:
233 022f 526F 6C6C .string "Roll %4i (%3i)(%3i)"
233 2025 3469
233 2028 2533
233 6929 2825
233 3369 2900
236 __c.38:
237 0243 5961 7720 .string "Yaw %4i (%3i)(%3i)"
237 2025 3469
237 2028 2533
237 6929 2825
237 3369 2900
240 __c.39:
241 0257 4143 4320 .string "ACC - Sensor"
241 2D20 5365
241 6E73 6F72
241 00
244 __c.40:
245 0264 4E69 636B .string "Nick %4i (%3i)"
245 2025 3469
245 2028 2533
245 6929 00
248 __c.41:
249 0273 526F 6C6C .string "Roll %4i (%3i)"
249 2025 3469
249 2028 2533
249 6929 00
252 __c.42:
253 0282 5A20 2020 .string "Z %4i (%3i)"
253 2025 3469
253 2028 2533
253 6929 00
256 __c.43:
257 0291 566F 6C74 .string "Voltage: %3i.%1iV"
257 6167 653A
257 2020 2025
257 3369 2E25
257 3169 5600
260 __c.44:
261 02a5 4375 7272 .string "Current: %3i.%1iA"
261 656E 743A
261 2020 2025
261 3369 2E25
261 3169 4100
264 __c.45:
265 02b9 506F 7765 .string "Power: %4iW"
265 723A 2020
265 2020 2025
265 3469 5700
268 __c.46:
269 02c9 4469 7363 .string "Discharge: %5imAh"
269 6861 7267
269 653A 2025
269 3569 6D41
269 6800
272 __c.47:
273 02db 5265 6365 .string "Receiver"
273 6976 6572
273 00
276 __c.48:
277 02e4 5243 2D52 .string "RC-RSSI: %4i"
277 5353 493A
277 2020 2020
277 2534 6900
280 __c.49:
281 02f4 5243 2D51 .string "RC-Quality: %4i"
281 7561 6C69
281 7479 3A20
281 2534 6900
284 __c.50:
285 0304 5243 2D43 .string "RC-Channels:%4i"
285 6861 6E6E
285 656C 733A
285 2534 6900
288 __c.51:
289 0314 436F 6D70 .string "Compass"
289 6173 7300
292 __c.52:
293 031c 4865 6164 .string "Heading: %5i"
293 696E 673A
293 2020 2535
293 6900
296 __c.53:
297 032a 5661 6C75 .string "Value: %5i"
297 653A 2020
297 2020 2535
297 6900
300 __c.54:
301 0338 5374 6172 .string "Start: %5i"
301 743A 2020
301 2020 2535
301 6900
304 __c.55:
305 0346 506F 7469 .string "Poti1: %3i"
305 313A 2020
305 2533 6900
308 __c.56:
309 0352 506F 7469 .string "Poti2: %3i"
309 323A 2020
309 2533 6900
312 __c.57:
313 035e 506F 7469 .string "Poti3: %3i"
313 333A 2020
313 2533 6900
316 __c.58:
317 036a 506F 7469 .string "Poti4: %3i"
317 343A 2020
317 2533 6900
320 __c.59:
321 0376 506F 7469 .string "Poti5: %3i"
321 353A 2020
321 2533 6900
324 __c.60:
325 0382 506F 7469 .string "Poti6: %3i"
325 363A 2020
325 2533 6900
328 __c.61:
329 038e 506F 7469 .string "Poti7: %3i"
329 373A 2020
329 2533 6900
332 __c.62:
333 039a 506F 7469 .string "Poti8: %3i"
333 383A 2020
333 2533 6900
336 __c.63:
337 03a6 5365 7276 .string "Servo "
337 6F20 2000
340 __c.64:
341 03ae 5365 7470 .string "Setpoint %3i"
341 6F69 6E74
341 2020 2533
341 6900
344 __c.65:
345 03bc 506F 7369 .string "Position: %3i"
345 7469 6F6E
345 3A20 2533
345 6900
348 __c.66:
349 03ca 5261 6E67 .string "Range:%3i-%3i"
349 653A 2533
349 692D 2533
349 6900
352 __c.67:
353 03d8 4578 7465 .string "ExternControl "
353 726E 436F
353 6E74 726F
353 6C20 2000
356 __c.68:
357 03e8 4E69 3A25 .string "Ni:%4i Ro:%4i "
357 3469 2020
357 526F 3A25
357 3469 2000
360 __c.69:
361 03f8 4773 3A25 .string "Gs:%4i Gi:%4i "
361 3469 2020
361 4769 3A25
361 3469 2000
364 __c.70:
365 0408 4869 3A25 .string "Hi:%4i Cf:%4i "
365 3469 2020
365 4366 3A25
365 3469 2000
368 __c.71:
369 0418 424C 2D43 .string "BL-Ctrl Errors "
369 7472 6C20
369 4572 726F
369 7273 2000
372 __c.72:
373 0428 2533 6420 .string "%3d %3d %3d %3d "
373 2533 6420
373 2533 6420
373 2533 6420
373 00
376 __c.73:
377 0439 2533 6420 .string "%3d %3d %3d %3d "
377 2533 6420
377 2533 6420
377 2533 6420
377 00
380 __c.74:
381 044a 2533 6420 .string "%3d %3d %3d %3d "
381 2533 6420
381 2533 6420
381 2533 6420
381 00
384 __c.75:
385 045b 424C 2054 .string "BL Temperature"
385 656D 7065
385 7261 7475
385 7265 00
388 __c.76:
389 046a 2533 6920 .string "%3i %3i %3i %3i "
389 2533 6920
389 2533 6920
389 2533 6920
389 00
392 __c.77:
393 047b 2533 6920 .string "%3i %3i %3i %3i "
393 2533 6920
393 2533 6920
393 2533 6920
393 00
396 __c.78:
397 048c 2533 6920 .string "%3i %3i %3i %3i "
397 2533 6920
397 2533 6920
397 2533 6920
397 00
400 __c.79:
401 049d 424C 2D43 .string "BL-Ctrl found "
401 7472 6C20
401 666F 756E
401 6420 00
404 __c.80:
405 04ac 2025 6320 .string " %c %c %c %c "
405 2020 2563
405 2020 2025
405 6320 2020
405 2563 2000
408 __c.81:
409 04c0 2025 6320 .string " %c %c %c %c "
409 2020 2563
409 2020 2025
409 6320 2020
409 2563 2000
412 __c.82:
413 04d4 2025 6320 .string " %c - - - "
413 2020 2D20
413 2020 2D20
413 2020 2D20
413 00
416 __c.83:
417 04e5 3130 00 .string "10"
420 __c.84:
421 04e8 3131 00 .string "11"
424 __c.85:
425 04eb 3132 00 .string "12"
428 __c.86:
429 04ee 466C 6967 .string "Flight-Time "
429 6874 2D54
429 696D 6520
429 2000
432 __c.87:
433 04fc 546F 7461 .string "Total:%5umin"
433 6C3A 2535
433 756D 696E
433 00
436 __c.88:
437 0509 4163 743A .string "Act: %5umin"
437 2020 2535
437 756D 696E
437 00
440 __c.89:
441 0516 2872 6573 .string "(reset)"
441 6574 2900
442 .text
443 .global Menu
445 Menu:
446 /* prologue: frame size=0 */
447 0028 EF92 push r14
448 002a FF92 push r15
449 002c 0F93 push r16
450 002e 1F93 push r17
451 0030 CF93 push r28
452 0032 DF93 push r29
453 /* prologue end (size=6) */
454 0034 2091 0000 lds r18,RemoteKeys
455 0038 20FF sbrs r18,0
456 003a 0AC0 rjmp .L10
457 003c 8091 0000 lds r24,MenuePunkt
458 0040 8823 tst r24
459 0042 11F0 breq .L11
460 0044 8150 subi r24,lo8(-(-1))
461 0046 02C0 rjmp .L82
462 .L11:
463 0048 8091 0000 lds r24,MaxMenue
464 .L82:
465 004c 8093 0000 sts MenuePunkt,r24
466 .L10:
467 0050 21FF sbrs r18,1
468 0052 0CC0 rjmp .L13
469 0054 9091 0000 lds r25,MenuePunkt
470 0058 8091 0000 lds r24,MaxMenue
471 005c 9817 cp r25,r24
472 005e 19F4 brne .L14
473 0060 1092 0000 sts MenuePunkt,__zero_reg__
474 0064 03C0 rjmp .L13
475 .L14:
476 0066 9F5F subi r25,lo8(-(1))
477 0068 9093 0000 sts MenuePunkt,r25
478 .L13:
479 006c 822F mov r24,r18
480 006e 9927 clr r25
481 0070 80FF sbrs r24,0
482 0072 04C0 rjmp .L16
483 0074 81FF sbrs r24,1
484 0076 02C0 rjmp .L16
485 0078 1092 0000 sts MenuePunkt,__zero_reg__
486 .L16:
487 007c 0E94 0000 call LcdClear
488 0080 8091 0000 lds r24,MenuePunkt
489 0084 282F mov r18,r24
490 0086 3327 clr r19
491 0088 C0E0 ldi r28,lo8(pm(Menu_Putchar))
492 008a EC2E mov r14,r28
493 008c C0E0 ldi r28,hi8(pm(Menu_Putchar))
494 008e FC2E mov r15,r28
495 0090 C091 0000 lds r28,_printf_P
496 0094 D091 0000 lds r29,(_printf_P)+1
497 0098 8A30 cpi r24,lo8(10)
498 009a 98F4 brsh .L17
499 009c 81E1 ldi r24,lo8(17)
500 009e 8093 0000 sts DispPtr,r24
501 00a2 3F93 push r19
502 00a4 2F93 push r18
503 00a6 80E0 ldi r24,lo8(__c.0)
504 00a8 90E0 ldi r25,hi8(__c.0)
505 00aa 9F93 push r25
506 00ac 8F93 push r24
507 00ae FF92 push r15
508 00b0 EF92 push r14
509 00b2 FE01 movw r30,r28
510 00b4 0995 icall
511 00b6 2DB7 in r18,__SP_L__
512 00b8 3EB7 in r19,__SP_H__
513 00ba 2A5F subi r18,lo8(-(6))
514 00bc 3F4F sbci r19,hi8(-(6))
515 00be 2DBF out __SP_L__,r18
516 00c0 11C0 rjmp .L18
517 .L17:
518 00c2 80E1 ldi r24,lo8(16)
519 00c4 8093 0000 sts DispPtr,r24
520 00c8 3F93 push r19
521 00ca 2F93 push r18
522 00cc 80E0 ldi r24,lo8(__c.1)
523 00ce 90E0 ldi r25,hi8(__c.1)
524 00d0 9F93 push r25
525 00d2 8F93 push r24
526 00d4 FF92 push r15
527 00d6 EF92 push r14
528 00d8 FE01 movw r30,r28
529 00da 0995 icall
530 00dc 8DB7 in r24,__SP_L__
531 00de 9EB7 in r25,__SP_H__
532 00e0 0696 adiw r24,6
533 00e2 8DBF out __SP_L__,r24
534 .L18:
535 00e4 2091 0000 lds r18,MenuePunkt
536 00e8 822F mov r24,r18
537 00ea 9927 clr r25
538 00ec AA27 clr r26
539 00ee BB27 clr r27
540 00f0 FC01 movw r30,r24
541 00f2 4297 sbiw r24,18
542 00f4 10F0 brlo .+4
543 00f6 0C94 0000 jmp .L79
544 00fa E050 subi r30,lo8(-(pm(.L81)))
545 00fc F040 sbci r31,hi8(-(pm(.L81)))
546 00fe B0E0 ldi r27,lo8(pm(Menu_Putchar))
547 0100 EB2E mov r14,r27
548 0102 B0E0 ldi r27,hi8(pm(Menu_Putchar))
549 0104 FB2E mov r15,r27
550 0106 C091 0000 lds r28,_printf_P
551 010a D091 0000 lds r29,(_printf_P)+1
552 010e 0C94 0000 jmp __tablejump2__
553 .data
554 .section .progmem.gcc_sw_table, "a", @progbits
555 .p2align 1
556 .L81:
557 0000 0000 .word pm(.L20)
558 0002 0000 .word pm(.L28)
559 0004 0000 .word pm(.L31)
560 0006 0000 .word pm(.L34)
561 0008 0000 .word pm(.L35)
562 000a 0000 .word pm(.L36)
563 000c 0000 .word pm(.L63)
564 000e 0000 .word pm(.L64)
565 0010 0000 .word pm(.L65)
566 0012 0000 .word pm(.L66)
567 0014 0000 .word pm(.L67)
568 0016 0000 .word pm(.L68)
569 0018 0000 .word pm(.L69)
570 001a 0000 .word pm(.L70)
571 001c 0000 .word pm(.L71)
572 001e 0000 .word pm(.L72)
573 0020 0000 .word pm(.L73)
574 0022 0000 .word pm(.L77)
575 .text
576 .L20:
577 0112 1092 0000 sts DispPtr,__zero_reg__
578 0116 80E0 ldi r24,lo8(__c.2)
579 0118 90E0 ldi r25,hi8(__c.2)
580 011a 9F93 push r25
581 011c 8F93 push r24
582 011e 00E0 ldi r16,lo8(pm(Menu_Putchar))
583 0120 10E0 ldi r17,hi8(pm(Menu_Putchar))
584 0122 FF92 push r15
585 0124 EF92 push r14
586 0126 FE01 movw r30,r28
587 0128 0995 icall
588 012a 84E1 ldi r24,lo8(20)
589 012c 8093 0000 sts DispPtr,r24
590 0130 0F90 pop __tmp_reg__
591 0132 0F90 pop __tmp_reg__
592 0134 0F90 pop __tmp_reg__
593 0136 0F90 pop __tmp_reg__
594 0138 84E6 ldi r24,lo8(100)
595 013a 90E0 ldi r25,hi8(100)
596 013c 9F93 push r25
597 013e 8F93 push r24
598 0140 80E5 ldi r24,lo8(80)
599 0142 90E0 ldi r25,hi8(80)
600 0144 9F93 push r25
601 0146 8F93 push r24
602 0148 1F92 push __zero_reg__
603 014a 1F92 push __zero_reg__
604 014c 8091 0000 lds r24,PlatinenVersion
605 0150 6AE0 ldi r22,lo8(10)
606 0152 0E94 0000 call __udivmodqi4
607 0156 892F mov r24,r25
608 0158 9927 clr r25
609 015a 9F93 push r25
610 015c 8F93 push r24
611 015e 8091 0000 lds r24,PlatinenVersion
612 0162 0E94 0000 call __udivmodqi4
613 0166 9927 clr r25
614 0168 9F93 push r25
615 016a 8F93 push r24
616 016c 80E0 ldi r24,lo8(__c.3)
617 016e 90E0 ldi r25,hi8(__c.3)
618 0170 9F93 push r25
619 0172 8F93 push r24
620 0174 FF92 push r15
621 0176 EF92 push r14
622 0178 E091 0000 lds r30,_printf_P
623 017c F091 0000 lds r31,(_printf_P)+1
624 0180 0995 icall
625 0182 88E2 ldi r24,lo8(40)
626 0184 8093 0000 sts DispPtr,r24
627 0188 2DB7 in r18,__SP_L__
628 018a 3EB7 in r19,__SP_H__
629 018c 225F subi r18,lo8(-(14))
630 018e 3F4F sbci r19,hi8(-(14))
631 0190 2DBF out __SP_L__,r18
632 0192 80E0 ldi r24,lo8(Mixer+1)
633 0194 90E0 ldi r25,hi8(Mixer+1)
634 0196 9F93 push r25
635 0198 8F93 push r24
636 019a 0E94 0000 call GetActiveParamSet
637 019e 9927 clr r25
638 01a0 9F93 push r25
639 01a2 8F93 push r24
640 01a4 80E0 ldi r24,lo8(__c.4)
641 01a6 90E0 ldi r25,hi8(__c.4)
642 01a8 9F93 push r25
643 01aa 8F93 push r24
644 01ac FF92 push r15
645 01ae EF92 push r14
646 01b0 E091 0000 lds r30,_printf_P
647 01b4 F091 0000 lds r31,(_printf_P)+1
648 01b8 0995 icall
649 01ba 8DB7 in r24,__SP_L__
650 01bc 9EB7 in r25,__SP_H__
651 01be 0896 adiw r24,8
652 01c0 8DBF out __SP_L__,r24
653 01c2 9091 0000 lds r25,VersionInfo+5
654 01c6 9923 tst r25
655 01c8 51F0 breq .L21
656 01ca 8CE3 ldi r24,lo8(60)
657 01cc 8093 0000 sts DispPtr,r24
658 01d0 892F mov r24,r25
659 01d2 9927 clr r25
660 01d4 9F93 push r25
661 01d6 8F93 push r24
662 01d8 80E0 ldi r24,lo8(__c.5)
663 01da 90E0 ldi r25,hi8(__c.5)
664 01dc 85C6 rjmp .L93
665 .L21:
666 01de 9091 0000 lds r25,MissingMotor
667 01e2 9923 tst r25
668 01e4 71F0 breq .L23
669 01e6 8CE3 ldi r24,lo8(60)
670 01e8 8093 0000 sts DispPtr,r24
671 01ec 892F mov r24,r25
672 01ee 9927 clr r25
673 01f0 9F93 push r25
674 01f2 8F93 push r24
675 01f4 80E0 ldi r24,lo8(__c.6)
676 01f6 90E0 ldi r25,hi8(__c.6)
677 01f8 9F93 push r25
678 01fa 8F93 push r24
679 01fc 1F93 push r17
680 01fe 0F93 push r16
681 0200 91C0 rjmp .L86
682 .L23:
683 0202 8091 0000 lds r24,VersionInfo+6
684 0206 84FF sbrs r24,4
685 0208 07C0 rjmp .L25
686 020a 8CE3 ldi r24,lo8(60)
687 020c 8093 0000 sts DispPtr,r24
688 0210 80E0 ldi r24,lo8(__c.7)
689 0212 90E0 ldi r25,hi8(__c.7)
690 0214 0C94 0000 jmp .L91
691 .L25:
692 0218 8091 0000 lds r24,I2CTimeout
693 021c 9091 0000 lds r25,(I2CTimeout)+1
694 0220 0697 sbiw r24,6
695 0222 10F0 brlo .+4
696 0224 0C94 0000 jmp .L19
697 0228 8CE3 ldi r24,lo8(60)
698 022a 8093 0000 sts DispPtr,r24
699 022e 80E0 ldi r24,lo8(__c.8)
700 0230 90E0 ldi r25,hi8(__c.8)
701 0232 0C94 0000 jmp .L91
702 .L28:
703 0236 8091 0000 lds r24,EE_Parameter+13
704 023a A0E0 ldi r26,lo8(pm(Menu_Putchar))
705 023c EA2E mov r14,r26
706 023e A0E0 ldi r26,hi8(pm(Menu_Putchar))
707 0240 FA2E mov r15,r26
708 0242 C091 0000 lds r28,_printf_P
709 0246 D091 0000 lds r29,(_printf_P)+1
710 024a 80FF sbrs r24,0
711 024c 74C0 rjmp .L29
712 024e 1092 0000 sts DispPtr,__zero_reg__
713 0252 8091 0000 lds r24,HoehenWert
714 0256 9091 0000 lds r25,(HoehenWert)+1
715 025a A091 0000 lds r26,(HoehenWert)+2
716 025e B091 0000 lds r27,(HoehenWert)+3
717 0262 BC01 movw r22,r24
718 0264 CD01 movw r24,r26
719 0266 25E0 ldi r18,lo8(5)
720 0268 30E0 ldi r19,hi8(5)
721 026a 40E0 ldi r20,hlo8(5)
722 026c 50E0 ldi r21,hhi8(5)
723 026e 0E94 0000 call __divmodsi4
724 0272 3F93 push r19
725 0274 2F93 push r18
726 0276 80E0 ldi r24,lo8(__c.9)
727 0278 90E0 ldi r25,hi8(__c.9)
728 027a 9F93 push r25
729 027c 8F93 push r24
730 027e FF92 push r15
731 0280 EF92 push r14
732 0282 FE01 movw r30,r28
733 0284 0995 icall
734 0286 84E1 ldi r24,lo8(20)
735 0288 8093 0000 sts DispPtr,r24
736 028c 2DB7 in r18,__SP_L__
737 028e 3EB7 in r19,__SP_H__
738 0290 2A5F subi r18,lo8(-(6))
739 0292 3F4F sbci r19,hi8(-(6))
740 0294 2DBF out __SP_L__,r18
741 0296 8091 0000 lds r24,SollHoehe
742 029a 9091 0000 lds r25,(SollHoehe)+1
743 029e A091 0000 lds r26,(SollHoehe)+2
744 02a2 B091 0000 lds r27,(SollHoehe)+3
745 02a6 BC01 movw r22,r24
746 02a8 CD01 movw r24,r26
747 02aa 25E0 ldi r18,lo8(5)
748 02ac 30E0 ldi r19,hi8(5)
749 02ae 40E0 ldi r20,hlo8(5)
750 02b0 50E0 ldi r21,hhi8(5)
751 02b2 0E94 0000 call __divmodsi4
752 02b6 3F93 push r19
753 02b8 2F93 push r18
754 02ba 80E0 ldi r24,lo8(__c.10)
755 02bc 90E0 ldi r25,hi8(__c.10)
756 02be 9F93 push r25
757 02c0 8F93 push r24
758 02c2 FF92 push r15
759 02c4 EF92 push r14
760 02c6 E091 0000 lds r30,_printf_P
761 02ca F091 0000 lds r31,(_printf_P)+1
762 02ce 0995 icall
763 02d0 88E2 ldi r24,lo8(40)
764 02d2 8093 0000 sts DispPtr,r24
765 02d6 8DB7 in r24,__SP_L__
766 02d8 9EB7 in r25,__SP_H__
767 02da 0696 adiw r24,6
768 02dc 8DBF out __SP_L__,r24
769 02de 8091 0000 lds r24,MessLuftdruck
770 02e2 9091 0000 lds r25,(MessLuftdruck)+1
771 02e6 9F93 push r25
772 02e8 8F93 push r24
773 02ea 80E0 ldi r24,lo8(__c.11)
774 02ec 90E0 ldi r25,hi8(__c.11)
775 02ee 9F93 push r25
776 02f0 8F93 push r24
777 02f2 FF92 push r15
778 02f4 EF92 push r14
779 02f6 E091 0000 lds r30,_printf_P
780 02fa F091 0000 lds r31,(_printf_P)+1
781 02fe 0995 icall
782 0300 8CE3 ldi r24,lo8(60)
783 0302 8093 0000 sts DispPtr,r24
784 0306 2DB7 in r18,__SP_L__
785 0308 3EB7 in r19,__SP_H__
786 030a 2A5F subi r18,lo8(-(6))
787 030c 3F4F sbci r19,hi8(-(6))
788 030e 2DBF out __SP_L__,r18
789 0310 87B5 in r24,71-0x20
790 0312 9927 clr r25
791 0314 9F93 push r25
792 0316 8F93 push r24
793 0318 80E0 ldi r24,lo8(__c.12)
794 031a 90E0 ldi r25,hi8(__c.12)
795 .L92:
796 031c 9F93 push r25
797 031e 8F93 push r24
798 0320 FF92 push r15
799 0322 EF92 push r14
800 .L86:
801 0324 E091 0000 lds r30,_printf_P
802 0328 F091 0000 lds r31,(_printf_P)+1
803 032c 0995 icall
804 032e 8DB7 in r24,__SP_L__
805 0330 9EB7 in r25,__SP_H__
806 0332 0696 adiw r24,6
807 0334 2FC7 rjmp .L84
808 .L29:
809 0336 1092 0000 sts DispPtr,__zero_reg__
810 033a 80E0 ldi r24,lo8(__c.13)
811 033c 90E0 ldi r25,hi8(__c.13)
812 033e 9F93 push r25
813 0340 8F93 push r24
814 0342 FF92 push r15
815 0344 EF92 push r14
816 0346 FE01 movw r30,r28
817 0348 0995 icall
818 034a 84E1 ldi r24,lo8(20)
819 034c 8093 0000 sts DispPtr,r24
820 0350 0F90 pop __tmp_reg__
821 0352 0F90 pop __tmp_reg__
822 0354 0F90 pop __tmp_reg__
823 0356 0F90 pop __tmp_reg__
824 0358 80E0 ldi r24,lo8(__c.14)
825 035a 90E0 ldi r25,hi8(__c.14)
826 035c 9F93 push r25
827 035e 8F93 push r24
828 0360 FF92 push r15
829 0362 EF92 push r14
830 0364 E091 0000 lds r30,_printf_P
831 0368 F091 0000 lds r31,(_printf_P)+1
832 036c 0995 icall
833 036e 88E2 ldi r24,lo8(40)
834 0370 8093 0000 sts DispPtr,r24
835 0374 0F90 pop __tmp_reg__
836 0376 0F90 pop __tmp_reg__
837 0378 0F90 pop __tmp_reg__
838 037a 0F90 pop __tmp_reg__
839 037c 80E0 ldi r24,lo8(__c.15)
840 037e 90E0 ldi r25,hi8(__c.15)
841 0380 9F93 push r25
842 0382 8F93 push r24
843 0384 FF92 push r15
844 0386 EF92 push r14
845 0388 E091 0000 lds r30,_printf_P
846 038c F091 0000 lds r31,(_printf_P)+1
847 0390 0995 icall
848 0392 8CE3 ldi r24,lo8(60)
849 0394 8093 0000 sts DispPtr,r24
850 0398 0F90 pop __tmp_reg__
851 039a 0F90 pop __tmp_reg__
852 039c 0F90 pop __tmp_reg__
853 039e 0F90 pop __tmp_reg__
854 03a0 80E0 ldi r24,lo8(__c.16)
855 03a2 90E0 ldi r25,hi8(__c.16)
856 03a4 9F93 push r25
857 03a6 8F93 push r24
858 03a8 FF92 push r15
859 03aa EF92 push r14
860 03ac 0C94 0000 jmp .L85
861 .L31:
862 03b0 1092 0000 sts DispPtr,__zero_reg__
863 03b4 80E0 ldi r24,lo8(__c.17)
864 03b6 90E0 ldi r25,hi8(__c.17)
865 03b8 9F93 push r25
866 03ba 8F93 push r24
867 03bc 00E0 ldi r16,lo8(pm(Menu_Putchar))
868 03be 10E0 ldi r17,hi8(pm(Menu_Putchar))
869 03c0 FF92 push r15
870 03c2 EF92 push r14
871 03c4 FE01 movw r30,r28
872 03c6 0995 icall
873 03c8 84E1 ldi r24,lo8(20)
874 03ca 8093 0000 sts DispPtr,r24
875 03ce 0F90 pop __tmp_reg__
876 03d0 0F90 pop __tmp_reg__
877 03d2 0F90 pop __tmp_reg__
878 03d4 0F90 pop __tmp_reg__
879 03d6 8091 0000 lds r24,IntegralNick
880 03da 9091 0000 lds r25,(IntegralNick)+1
881 03de A091 0000 lds r26,(IntegralNick)+2
882 03e2 B091 0000 lds r27,(IntegralNick)+3
883 03e6 B7FF sbrs r27,7
884 03e8 04C0 rjmp .L32
885 03ea 8150 subi r24,lo8(-(1023))
886 03ec 9C4F sbci r25,hi8(-(1023))
887 03ee AF4F sbci r26,hlo8(-(1023))
888 03f0 BF4F sbci r27,hhi8(-(1023))
889 .L32:
890 03f2 FAE0 ldi r31,10
891 03f4 B595 1: asr r27
892 03f6 A795 ror r26
893 03f8 9795 ror r25
894 03fa 8795 ror r24
895 03fc FA95 dec r31
896 03fe D1F7 brne 1b
897 0400 BF93 push r27
898 0402 AF93 push r26
899 0404 9F93 push r25
900 0406 8F93 push r24
901 0408 80E0 ldi r24,lo8(__c.18)
902 040a 90E0 ldi r25,hi8(__c.18)
903 040c 9F93 push r25
904 040e 8F93 push r24
905 0410 1F93 push r17
906 0412 0F93 push r16
907 0414 E091 0000 lds r30,_printf_P
908 0418 F091 0000 lds r31,(_printf_P)+1
909 041c 0995 icall
910 041e 88E2 ldi r24,lo8(40)
911 0420 8093 0000 sts DispPtr,r24
912 0424 2DB7 in r18,__SP_L__
913 0426 3EB7 in r19,__SP_H__
914 0428 285F subi r18,lo8(-(8))
915 042a 3F4F sbci r19,hi8(-(8))
916 042c 2DBF out __SP_L__,r18
917 042e 8091 0000 lds r24,IntegralRoll
918 0432 9091 0000 lds r25,(IntegralRoll)+1
919 0436 A091 0000 lds r26,(IntegralRoll)+2
920 043a B091 0000 lds r27,(IntegralRoll)+3
921 043e B7FF sbrs r27,7
922 0440 04C0 rjmp .L33
923 0442 8150 subi r24,lo8(-(1023))
924 0444 9C4F sbci r25,hi8(-(1023))
925 0446 AF4F sbci r26,hlo8(-(1023))
926 0448 BF4F sbci r27,hhi8(-(1023))
927 .L33:
928 044a EAE0 ldi r30,10
929 044c B595 1: asr r27
930 044e A795 ror r26
931 0450 9795 ror r25
932 0452 8795 ror r24
933 0454 EA95 dec r30
934 0456 D1F7 brne 1b
935 0458 BF93 push r27
936 045a AF93 push r26
937 045c 9F93 push r25
938 045e 8F93 push r24
939 0460 80E0 ldi r24,lo8(__c.19)
940 0462 90E0 ldi r25,hi8(__c.19)
941 0464 9F93 push r25
942 0466 8F93 push r24
943 0468 1F93 push r17
944 046a 0F93 push r16
945 046c E091 0000 lds r30,_printf_P
946 0470 F091 0000 lds r31,(_printf_P)+1
947 0474 0995 icall
948 0476 8CE3 ldi r24,lo8(60)
949 0478 8093 0000 sts DispPtr,r24
950 047c 8DB7 in r24,__SP_L__
951 047e 9EB7 in r25,__SP_H__
952 0480 0896 adiw r24,8
953 0482 8DBF out __SP_L__,r24
954 0484 8091 0000 lds r24,KompassValue
955 0488 9091 0000 lds r25,(KompassValue)+1
956 048c 9F93 push r25
957 048e 8F93 push r24
958 0490 80E0 ldi r24,lo8(__c.20)
959 0492 90E0 ldi r25,hi8(__c.20)
960 0494 9F93 push r25
961 0496 8F93 push r24
962 0498 1F93 push r17
963 049a 0F93 push r16
964 .L88:
965 049c E091 0000 lds r30,_printf_P
966 04a0 F091 0000 lds r31,(_printf_P)+1
967 04a4 0995 icall
968 04a6 2DB7 in r18,__SP_L__
969 04a8 3EB7 in r19,__SP_H__
970 04aa 2A5F subi r18,lo8(-(6))
971 04ac 3F4F sbci r19,hi8(-(6))
972 04ae 0DC7 rjmp .L83
973 .L34:
974 04b0 1092 0000 sts DispPtr,__zero_reg__
975 04b4 8091 0000 lds r24,PPM_in+4
976 04b8 9091 0000 lds r25,(PPM_in+4)+1
977 04bc 9F93 push r25
978 04be 8F93 push r24
979 04c0 8091 0000 lds r24,PPM_in+2
980 04c4 9091 0000 lds r25,(PPM_in+2)+1
981 04c8 9F93 push r25
982 04ca 8F93 push r24
983 04cc 80E0 ldi r24,lo8(__c.21)
984 04ce 90E0 ldi r25,hi8(__c.21)
985 04d0 9F93 push r25
986 04d2 8F93 push r24
987 04d4 FF92 push r15
988 04d6 EF92 push r14
989 04d8 FE01 movw r30,r28
990 04da 0995 icall
991 04dc 84E1 ldi r24,lo8(20)
992 04de 8093 0000 sts DispPtr,r24
993 04e2 8DB7 in r24,__SP_L__
994 04e4 9EB7 in r25,__SP_H__
995 04e6 0896 adiw r24,8
996 04e8 8DBF out __SP_L__,r24
997 04ea 8091 0000 lds r24,PPM_in+8
998 04ee 9091 0000 lds r25,(PPM_in+8)+1
999 04f2 9F93 push r25
1000 04f4 8F93 push r24
1001 04f6 8091 0000 lds r24,PPM_in+6
1002 04fa 9091 0000 lds r25,(PPM_in+6)+1
1003 04fe 9F93 push r25
1004 0500 8F93 push r24
1005 0502 80E0 ldi r24,lo8(__c.22)
1006 0504 90E0 ldi r25,hi8(__c.22)
1007 0506 9F93 push r25
1008 0508 8F93 push r24
1009 050a FF92 push r15
1010 050c EF92 push r14
1011 050e E091 0000 lds r30,_printf_P
1012 0512 F091 0000 lds r31,(_printf_P)+1
1013 0516 0995 icall
1014 0518 88E2 ldi r24,lo8(40)
1015 051a 8093 0000 sts DispPtr,r24
1016 051e 2DB7 in r18,__SP_L__
1017 0520 3EB7 in r19,__SP_H__
1018 0522 285F subi r18,lo8(-(8))
1019 0524 3F4F sbci r19,hi8(-(8))
1020 0526 2DBF out __SP_L__,r18
1021 0528 8091 0000 lds r24,PPM_in+12
1022 052c 9091 0000 lds r25,(PPM_in+12)+1
1023 0530 9F93 push r25
1024 0532 8F93 push r24
1025 0534 8091 0000 lds r24,PPM_in+10
1026 0538 9091 0000 lds r25,(PPM_in+10)+1
1027 053c 9F93 push r25
1028 053e 8F93 push r24
1029 0540 80E0 ldi r24,lo8(__c.23)
1030 0542 90E0 ldi r25,hi8(__c.23)
1031 0544 9F93 push r25
1032 0546 8F93 push r24
1033 0548 FF92 push r15
1034 054a EF92 push r14
1035 054c E091 0000 lds r30,_printf_P
1036 0550 F091 0000 lds r31,(_printf_P)+1
1037 0554 0995 icall
1038 0556 8CE3 ldi r24,lo8(60)
1039 0558 8093 0000 sts DispPtr,r24
1040 055c 8DB7 in r24,__SP_L__
1041 055e 9EB7 in r25,__SP_H__
1042 0560 0896 adiw r24,8
1043 0562 8DBF out __SP_L__,r24
1044 0564 8091 0000 lds r24,PPM_in+16
1045 0568 9091 0000 lds r25,(PPM_in+16)+1
1046 056c 9F93 push r25
1047 056e 8F93 push r24
1048 0570 8091 0000 lds r24,PPM_in+14
1049 0574 9091 0000 lds r25,(PPM_in+14)+1
1050 0578 9F93 push r25
1051 057a 8F93 push r24
1052 057c 80E0 ldi r24,lo8(__c.24)
1053 057e 90E0 ldi r25,hi8(__c.24)
1054 0580 A2C0 rjmp .L89
1055 .L35:
1056 0582 1092 0000 sts DispPtr,__zero_reg__
1057 0586 8091 0000 lds r24,EE_Parameter+2
1058 058a E82F mov r30,r24
1059 058c FF27 clr r31
1060 058e EE0F add r30,r30
1061 0590 FF1F adc r31,r31
1062 0592 E050 subi r30,lo8(-(PPM_in))
1063 0594 F040 sbci r31,hi8(-(PPM_in))
1064 0596 8081 ld r24,Z
1065 0598 9181 ldd r25,Z+1
1066 059a 9F93 push r25
1067 059c 8F93 push r24
1068 059e 8091 0000 lds r24,EE_Parameter+1
1069 05a2 E82F mov r30,r24
1070 05a4 FF27 clr r31
1071 05a6 EE0F add r30,r30
1072 05a8 FF1F adc r31,r31
1073 05aa E050 subi r30,lo8(-(PPM_in))
1074 05ac F040 sbci r31,hi8(-(PPM_in))
1075 05ae 8081 ld r24,Z
1076 05b0 9181 ldd r25,Z+1
1077 05b2 9F93 push r25
1078 05b4 8F93 push r24
1079 05b6 80E0 ldi r24,lo8(__c.25)
1080 05b8 90E0 ldi r25,hi8(__c.25)
1081 05ba 9F93 push r25
1082 05bc 8F93 push r24
1083 05be FF92 push r15
1084 05c0 EF92 push r14
1085 05c2 FE01 movw r30,r28
1086 05c4 0995 icall
1087 05c6 84E1 ldi r24,lo8(20)
1088 05c8 8093 0000 sts DispPtr,r24
1089 05cc 8DB7 in r24,__SP_L__
1090 05ce 9EB7 in r25,__SP_H__
1091 05d0 0896 adiw r24,8
1092 05d2 8DBF out __SP_L__,r24
1093 05d4 8091 0000 lds r24,EE_Parameter+4
1094 05d8 E82F mov r30,r24
1095 05da FF27 clr r31
1096 05dc EE0F add r30,r30
1097 05de FF1F adc r31,r31
1098 05e0 E050 subi r30,lo8(-(PPM_in))
1099 05e2 F040 sbci r31,hi8(-(PPM_in))
1100 05e4 8081 ld r24,Z
1101 05e6 9181 ldd r25,Z+1
1102 05e8 9F93 push r25
1103 05ea 8F93 push r24
1104 05ec 8091 0000 lds r24,EE_Parameter+3
1105 05f0 E82F mov r30,r24
1106 05f2 FF27 clr r31
1107 05f4 EE0F add r30,r30
1108 05f6 FF1F adc r31,r31
1109 05f8 E050 subi r30,lo8(-(PPM_in))
1110 05fa F040 sbci r31,hi8(-(PPM_in))
1111 05fc 8081 ld r24,Z
1112 05fe 9181 ldd r25,Z+1
1113 0600 8858 subi r24,lo8(-(120))
1114 0602 9F4F sbci r25,hi8(-(120))
1115 0604 9F93 push r25
1116 0606 8F93 push r24
1117 0608 80E0 ldi r24,lo8(__c.26)
1118 060a 90E0 ldi r25,hi8(__c.26)
1119 060c 9F93 push r25
1120 060e 8F93 push r24
1121 0610 FF92 push r15
1122 0612 EF92 push r14
1123 0614 E091 0000 lds r30,_printf_P
1124 0618 F091 0000 lds r31,(_printf_P)+1
1125 061c 0995 icall
1126 061e 88E2 ldi r24,lo8(40)
1127 0620 8093 0000 sts DispPtr,r24
1128 0624 2DB7 in r18,__SP_L__
1129 0626 3EB7 in r19,__SP_H__
1130 0628 285F subi r18,lo8(-(8))
1131 062a 3F4F sbci r19,hi8(-(8))
1132 062c 2DBF out __SP_L__,r18
1133 062e 8091 0000 lds r24,EE_Parameter+6
1134 0632 E82F mov r30,r24
1135 0634 FF27 clr r31
1136 0636 EE0F add r30,r30
1137 0638 FF1F adc r31,r31
1138 063a E050 subi r30,lo8(-(PPM_in))
1139 063c F040 sbci r31,hi8(-(PPM_in))
1140 063e 8081 ld r24,Z
1141 0640 9181 ldd r25,Z+1
1142 0642 8259 subi r24,lo8(-(110))
1143 0644 9F4F sbci r25,hi8(-(110))
1144 0646 9F93 push r25
1145 0648 8F93 push r24
1146 064a 8091 0000 lds r24,EE_Parameter+5
1147 064e E82F mov r30,r24
1148 0650 FF27 clr r31
1149 0652 EE0F add r30,r30
1150 0654 FF1F adc r31,r31
1151 0656 E050 subi r30,lo8(-(PPM_in))
1152 0658 F040 sbci r31,hi8(-(PPM_in))
1153 065a 8081 ld r24,Z
1154 065c 9181 ldd r25,Z+1
1155 065e 8259 subi r24,lo8(-(110))
1156 0660 9F4F sbci r25,hi8(-(110))
1157 0662 9F93 push r25
1158 0664 8F93 push r24
1159 0666 80E0 ldi r24,lo8(__c.27)
1160 0668 90E0 ldi r25,hi8(__c.27)
1161 066a 9F93 push r25
1162 066c 8F93 push r24
1163 066e FF92 push r15
1164 0670 EF92 push r14
1165 0672 E091 0000 lds r30,_printf_P
1166 0676 F091 0000 lds r31,(_printf_P)+1
1167 067a 0995 icall
1168 067c 8CE3 ldi r24,lo8(60)
1169 067e 8093 0000 sts DispPtr,r24
1170 0682 8DB7 in r24,__SP_L__
1171 0684 9EB7 in r25,__SP_H__
1172 0686 0896 adiw r24,8
1173 0688 8DBF out __SP_L__,r24
1174 068a 8091 0000 lds r24,EE_Parameter+8
1175 068e E82F mov r30,r24
1176 0690 FF27 clr r31
1177 0692 EE0F add r30,r30
1178 0694 FF1F adc r31,r31
1179 0696 E050 subi r30,lo8(-(PPM_in))
1180 0698 F040 sbci r31,hi8(-(PPM_in))
1181 069a 8081 ld r24,Z
1182 069c 9181 ldd r25,Z+1
1183 069e 8259 subi r24,lo8(-(110))
1184 06a0 9F4F sbci r25,hi8(-(110))
1185 06a2 9F93 push r25
1186 06a4 8F93 push r24
1187 06a6 8091 0000 lds r24,EE_Parameter+7
1188 06aa E82F mov r30,r24
1189 06ac FF27 clr r31
1190 06ae EE0F add r30,r30
1191 06b0 FF1F adc r31,r31
1192 06b2 E050 subi r30,lo8(-(PPM_in))
1193 06b4 F040 sbci r31,hi8(-(PPM_in))
1194 06b6 8081 ld r24,Z
1195 06b8 9181 ldd r25,Z+1
1196 06ba 8259 subi r24,lo8(-(110))
1197 06bc 9F4F sbci r25,hi8(-(110))
1198 06be 9F93 push r25
1199 06c0 8F93 push r24
1200 06c2 80E0 ldi r24,lo8(__c.28)
1201 06c4 90E0 ldi r25,hi8(__c.28)
1202 .L89:
1203 06c6 9F93 push r25
1204 06c8 8F93 push r24
1205 06ca FF92 push r15
1206 06cc EF92 push r14
1207 .L90:
1208 06ce E091 0000 lds r30,_printf_P
1209 06d2 F091 0000 lds r31,(_printf_P)+1
1210 06d6 0995 icall
1211 06d8 2DB7 in r18,__SP_L__
1212 06da 3EB7 in r19,__SP_H__
1213 06dc 285F subi r18,lo8(-(8))
1214 06de 3F4F sbci r19,hi8(-(8))
1215 06e0 F4C5 rjmp .L83
1216 .L36:
1217 06e2 1092 0000 sts DispPtr,__zero_reg__
1218 06e6 80E0 ldi r24,lo8(__c.29)
1219 06e8 90E0 ldi r25,hi8(__c.29)
1220 06ea 9F93 push r25
1221 06ec 8F93 push r24
1222 06ee 00E0 ldi r16,lo8(pm(Menu_Putchar))
1223 06f0 10E0 ldi r17,hi8(pm(Menu_Putchar))
1224 06f2 FF92 push r15
1225 06f4 EF92 push r14
1226 06f6 FE01 movw r30,r28
1227 06f8 0995 icall
1228 06fa 8091 0000 lds r24,PlatinenVersion
1229 06fe 0F90 pop __tmp_reg__
1230 0700 0F90 pop __tmp_reg__
1231 0702 0F90 pop __tmp_reg__
1232 0704 0F90 pop __tmp_reg__
1233 0706 8A30 cpi r24,lo8(10)
1234 0708 09F0 breq .+2
1235 070a A1C0 rjmp .L37
1236 070c 84E1 ldi r24,lo8(20)
1237 070e 8093 0000 sts DispPtr,r24
1238 0712 8091 0000 lds r24,AdNeutralNick
1239 0716 9091 0000 lds r25,(AdNeutralNick)+1
1240 071a 9C01 movw r18,r24
1241 071c 97FF sbrs r25,7
1242 071e 02C0 rjmp .L38
1243 0720 295F subi r18,lo8(-(7))
1244 0722 3F4F sbci r19,hi8(-(7))
1245 .L38:
1246 0724 287F andi r18,lo8(-8)
1247 0726 821B sub r24,r18
1248 0728 930B sbc r25,r19
1249 072a 9F93 push r25
1250 072c 8F93 push r24
1251 072e 8091 0000 lds r24,AdNeutralNick
1252 0732 9091 0000 lds r25,(AdNeutralNick)+1
1253 0736 97FD sbrc r25,7
1254 0738 0796 adiw r24,7
1255 .L39:
1256 073a 73E0 ldi r23,3
1257 073c 9595 1: asr r25
1258 073e 8795 ror r24
1259 0740 7A95 dec r23
1260 0742 E1F7 brne 1b
1261 0744 9F93 push r25
1262 0746 8F93 push r24
1263 0748 2091 0000 lds r18,AdNeutralNick
1264 074c 3091 0000 lds r19,(AdNeutralNick)+1
1265 0750 37FF sbrs r19,7
1266 0752 02C0 rjmp .L40
1267 0754 295F subi r18,lo8(-(7))
1268 0756 3F4F sbci r19,hi8(-(7))
1269 .L40:
1270 0758 63E0 ldi r22,3
1271 075a 3595 1: asr r19
1272 075c 2795 ror r18
1273 075e 6A95 dec r22
1274 0760 E1F7 brne 1b
1275 0762 8091 0000 lds r24,AdWertNick
1276 0766 9091 0000 lds r25,(AdWertNick)+1
1277 076a 821B sub r24,r18
1278 076c 930B sbc r25,r19
1279 076e 9F93 push r25
1280 0770 8F93 push r24
1281 0772 80E0 ldi r24,lo8(__c.30)
1282 0774 90E0 ldi r25,hi8(__c.30)
1283 0776 9F93 push r25
1284 0778 8F93 push r24
1285 077a 1F93 push r17
1286 077c 0F93 push r16
1287 077e E091 0000 lds r30,_printf_P
1288 0782 F091 0000 lds r31,(_printf_P)+1
1289 0786 0995 icall
1290 0788 88E2 ldi r24,lo8(40)
1291 078a 8093 0000 sts DispPtr,r24
1292 078e 8DB7 in r24,__SP_L__
1293 0790 9EB7 in r25,__SP_H__
1294 0792 0A96 adiw r24,10
1295 0794 8DBF out __SP_L__,r24
1296 0796 8091 0000 lds r24,AdNeutralRoll
1297 079a 9091 0000 lds r25,(AdNeutralRoll)+1
1298 079e 9C01 movw r18,r24
1299 07a0 97FF sbrs r25,7
1300 07a2 02C0 rjmp .L41
1301 07a4 295F subi r18,lo8(-(7))
1302 07a6 3F4F sbci r19,hi8(-(7))
1303 .L41:
1304 07a8 287F andi r18,lo8(-8)
1305 07aa 821B sub r24,r18
1306 07ac 930B sbc r25,r19
1307 07ae 9F93 push r25
1308 07b0 8F93 push r24
1309 07b2 8091 0000 lds r24,AdNeutralRoll
1310 07b6 9091 0000 lds r25,(AdNeutralRoll)+1
1311 07ba 97FD sbrc r25,7
1312 07bc 0796 adiw r24,7
1313 .L42:
1314 07be 53E0 ldi r21,3
1315 07c0 9595 1: asr r25
1316 07c2 8795 ror r24
1317 07c4 5A95 dec r21
1318 07c6 E1F7 brne 1b
1319 07c8 9F93 push r25
1320 07ca 8F93 push r24
1321 07cc 2091 0000 lds r18,AdNeutralRoll
1322 07d0 3091 0000 lds r19,(AdNeutralRoll)+1
1323 07d4 37FF sbrs r19,7
1324 07d6 02C0 rjmp .L43
1325 07d8 295F subi r18,lo8(-(7))
1326 07da 3F4F sbci r19,hi8(-(7))
1327 .L43:
1328 07dc 43E0 ldi r20,3
1329 07de 3595 1: asr r19
1330 07e0 2795 ror r18
1331 07e2 4A95 dec r20
1332 07e4 E1F7 brne 1b
1333 07e6 8091 0000 lds r24,AdWertRoll
1334 07ea 9091 0000 lds r25,(AdWertRoll)+1
1335 07ee 821B sub r24,r18
1336 07f0 930B sbc r25,r19
1337 07f2 9F93 push r25
1338 07f4 8F93 push r24
1339 07f6 80E0 ldi r24,lo8(__c.31)
1340 07f8 90E0 ldi r25,hi8(__c.31)
1341 07fa 9F93 push r25
1342 07fc 8F93 push r24
1343 07fe 1F93 push r17
1344 0800 0F93 push r16
1345 0802 E091 0000 lds r30,_printf_P
1346 0806 F091 0000 lds r31,(_printf_P)+1
1347 080a 0995 icall
1348 080c 8CE3 ldi r24,lo8(60)
1349 080e 8093 0000 sts DispPtr,r24
1350 0812 2DB7 in r18,__SP_L__
1351 0814 3EB7 in r19,__SP_H__
1352 0816 265F subi r18,lo8(-(10))
1353 0818 3F4F sbci r19,hi8(-(10))
1354 081a 2DBF out __SP_L__,r18
1355 081c 8091 0000 lds r24,AdNeutralGier
1356 0820 9091 0000 lds r25,(AdNeutralGier)+1
1357 0824 9F93 push r25
1358 0826 8F93 push r24
1359 0828 8091 0000 lds r24,AdNeutralGier
1360 082c 9091 0000 lds r25,(AdNeutralGier)+1
1361 0830 2091 0000 lds r18,AdWertGier
1362 0834 3091 0000 lds r19,(AdWertGier)+1
1363 0838 821B sub r24,r18
1364 083a 930B sbc r25,r19
1365 083c 9F93 push r25
1366 083e 8F93 push r24
1367 0840 80E0 ldi r24,lo8(__c.32)
1368 0842 90E0 ldi r25,hi8(__c.32)
1369 0844 9F93 push r25
1370 0846 8F93 push r24
1371 0848 1F93 push r17
1372 084a 0F93 push r16
1373 084c A3C3 rjmp .L87
1374 .L37:
1375 084e 8B30 cpi r24,lo8(11)
1376 0850 19F0 breq .L46
1377 0852 8431 cpi r24,lo8(20)
1378 0854 08F4 brsh .+2
1379 0856 ADC0 rjmp .L45
1380 .L46:
1381 0858 84E1 ldi r24,lo8(20)
1382 085a 8093 0000 sts DispPtr,r24
1383 085e 8091 0000 lds r24,AdNeutralNick
1384 0862 9091 0000 lds r25,(AdNeutralNick)+1
1385 0866 9C01 movw r18,r24
1386 0868 97FF sbrs r25,7
1387 086a 02C0 rjmp .L47
1388 086c 215F subi r18,lo8(-(15))
1389 086e 3F4F sbci r19,hi8(-(15))
1390 .L47:
1391 0870 207F andi r18,lo8(-16)
1392 0872 821B sub r24,r18
1393 0874 930B sbc r25,r19
1394 0876 97FD sbrc r25,7
1395 0878 0196 adiw r24,1
1396 .L48:
1397 087a 9595 asr r25
1398 087c 8795 ror r24
1399 087e 9F93 push r25
1400 0880 8F93 push r24
1401 0882 8091 0000 lds r24,AdNeutralNick
1402 0886 9091 0000 lds r25,(AdNeutralNick)+1
1403 088a 97FD sbrc r25,7
1404 088c 0F96 adiw r24,15
1405 .L49:
1406 088e 24E0 ldi r18,4
1407 0890 9595 1: asr r25
1408 0892 8795 ror r24
1409 0894 2A95 dec r18
1410 0896 E1F7 brne 1b
1411 0898 9F93 push r25
1412 089a 8F93 push r24
1413 089c 2091 0000 lds r18,AdNeutralNick
1414 08a0 3091 0000 lds r19,(AdNeutralNick)+1
1415 08a4 37FF sbrs r19,7
1416 08a6 02C0 rjmp .L50
1417 08a8 295F subi r18,lo8(-(7))
1418 08aa 3F4F sbci r19,hi8(-(7))
1419 .L50:
1420 08ac 83E0 ldi r24,3
1421 08ae 3595 1: asr r19
1422 08b0 2795 ror r18
1423 08b2 8A95 dec r24
1424 08b4 E1F7 brne 1b
1425 08b6 8091 0000 lds r24,AdWertNick
1426 08ba 9091 0000 lds r25,(AdWertNick)+1
1427 08be 821B sub r24,r18
1428 08c0 930B sbc r25,r19
1429 08c2 9F93 push r25
1430 08c4 8F93 push r24
1431 08c6 80E0 ldi r24,lo8(__c.33)
1432 08c8 90E0 ldi r25,hi8(__c.33)
1433 08ca 9F93 push r25
1434 08cc 8F93 push r24
1435 08ce 1F93 push r17
1436 08d0 0F93 push r16
1437 08d2 E091 0000 lds r30,_printf_P
1438 08d6 F091 0000 lds r31,(_printf_P)+1
1439 08da 0995 icall
1440 08dc 88E2 ldi r24,lo8(40)
1441 08de 8093 0000 sts DispPtr,r24
1442 08e2 2DB7 in r18,__SP_L__
1443 08e4 3EB7 in r19,__SP_H__
1444 08e6 265F subi r18,lo8(-(10))
1445 08e8 3F4F sbci r19,hi8(-(10))
1446 08ea 2DBF out __SP_L__,r18
1447 08ec 8091 0000 lds r24,AdNeutralRoll
1448 08f0 9091 0000 lds r25,(AdNeutralRoll)+1
1449 08f4 9C01 movw r18,r24
1450 08f6 97FF sbrs r25,7
1451 08f8 02C0 rjmp .L51
1452 08fa 215F subi r18,lo8(-(15))
1453 08fc 3F4F sbci r19,hi8(-(15))
1454 .L51:
1455 08fe 207F andi r18,lo8(-16)
1456 0900 821B sub r24,r18
1457 0902 930B sbc r25,r19
1458 0904 97FD sbrc r25,7
1459 0906 0196 adiw r24,1
1460 .L52:
1461 0908 9595 asr r25
1462 090a 8795 ror r24
1463 090c 9F93 push r25
1464 090e 8F93 push r24
1465 0910 8091 0000 lds r24,AdNeutralRoll
1466 0914 9091 0000 lds r25,(AdNeutralRoll)+1
1467 0918 97FD sbrc r25,7
1468 091a 0F96 adiw r24,15
1469 .L53:
1470 091c B4E0 ldi r27,4
1471 091e 9595 1: asr r25
1472 0920 8795 ror r24
1473 0922 BA95 dec r27
1474 0924 E1F7 brne 1b
1475 0926 9F93 push r25
1476 0928 8F93 push r24
1477 092a 2091 0000 lds r18,AdNeutralRoll
1478 092e 3091 0000 lds r19,(AdNeutralRoll)+1
1479 0932 37FF sbrs r19,7
1480 0934 02C0 rjmp .L54
1481 0936 295F subi r18,lo8(-(7))
1482 0938 3F4F sbci r19,hi8(-(7))
1483 .L54:
1484 093a A3E0 ldi r26,3
1485 093c 3595 1: asr r19
1486 093e 2795 ror r18
1487 0940 AA95 dec r26
1488 0942 E1F7 brne 1b
1489 0944 8091 0000 lds r24,AdWertRoll
1490 0948 9091 0000 lds r25,(AdWertRoll)+1
1491 094c 821B sub r24,r18
1492 094e 930B sbc r25,r19
1493 0950 9F93 push r25
1494 0952 8F93 push r24
1495 0954 80E0 ldi r24,lo8(__c.34)
1496 0956 90E0 ldi r25,hi8(__c.34)
1497 0958 9F93 push r25
1498 095a 8F93 push r24
1499 095c 1F93 push r17
1500 095e 0F93 push r16
1501 0960 E091 0000 lds r30,_printf_P
1502 0964 F091 0000 lds r31,(_printf_P)+1
1503 0968 0995 icall
1504 096a 8CE3 ldi r24,lo8(60)
1505 096c 8093 0000 sts DispPtr,r24
1506 0970 8DB7 in r24,__SP_L__
1507 0972 9EB7 in r25,__SP_H__
1508 0974 0A96 adiw r24,10
1509 0976 8DBF out __SP_L__,r24
1510 0978 8091 0000 lds r24,AdNeutralGier
1511 097c 9091 0000 lds r25,(AdNeutralGier)+1
1512 0980 97FD sbrc r25,7
1513 0982 0196 adiw r24,1
1514 .L55:
1515 0984 9595 asr r25
1516 0986 8795 ror r24
1517 0988 9F93 push r25
1518 098a 8F93 push r24
1519 098c 8091 0000 lds r24,AdNeutralGier
1520 0990 9091 0000 lds r25,(AdNeutralGier)+1
1521 0994 2091 0000 lds r18,AdWertGier
1522 0998 3091 0000 lds r19,(AdWertGier)+1
1523 099c 821B sub r24,r18
1524 099e 930B sbc r25,r19
1525 09a0 9F93 push r25
1526 09a2 8F93 push r24
1527 09a4 80E0 ldi r24,lo8(__c.35)
1528 09a6 90E0 ldi r25,hi8(__c.35)
1529 09a8 9F93 push r25
1530 09aa 8F93 push r24
1531 09ac 1F93 push r17
1532 09ae 0F93 push r16
1533 09b0 8ECE rjmp .L90
1534 .L45:
1535 09b2 8D30 cpi r24,lo8(13)
1536 09b4 09F0 breq .+2
1537 09b6 EEC5 rjmp .L19
1538 09b8 84E1 ldi r24,lo8(20)
1539 09ba 8093 0000 sts DispPtr,r24
1540 09be 8091 0000 lds r24,AnalogOffsetNick
1541 09c2 9927 clr r25
1542 09c4 9F93 push r25
1543 09c6 8F93 push r24
1544 09c8 8091 0000 lds r24,AdNeutralNick
1545 09cc 9091 0000 lds r25,(AdNeutralNick)+1
1546 09d0 97FD sbrc r25,7
1547 09d2 0F96 adiw r24,15
1548 .L58:
1549 09d4 E4E0 ldi r30,4
1550 09d6 9595 1: asr r25
1551 09d8 8795 ror r24
1552 09da EA95 dec r30
1553 09dc E1F7 brne 1b
1554 09de 9F93 push r25
1555 09e0 8F93 push r24
1556 09e2 2091 0000 lds r18,AdNeutralNick
1557 09e6 3091 0000 lds r19,(AdNeutralNick)+1
1558 09ea 37FF sbrs r19,7
1559 09ec 02C0 rjmp .L59
1560 09ee 295F subi r18,lo8(-(7))
1561 09f0 3F4F sbci r19,hi8(-(7))
1562 .L59:
1563 09f2 73E0 ldi r23,3
1564 09f4 3595 1: asr r19
1565 09f6 2795 ror r18
1566 09f8 7A95 dec r23
1567 09fa E1F7 brne 1b
1568 09fc 8091 0000 lds r24,AdWertNick
1569 0a00 9091 0000 lds r25,(AdWertNick)+1
1570 0a04 821B sub r24,r18
1571 0a06 930B sbc r25,r19
1572 0a08 9F93 push r25
1573 0a0a 8F93 push r24
1574 0a0c 80E0 ldi r24,lo8(__c.36)
1575 0a0e 90E0 ldi r25,hi8(__c.36)
1576 0a10 9F93 push r25
1577 0a12 8F93 push r24
1578 0a14 1F93 push r17
1579 0a16 0F93 push r16
1580 0a18 E091 0000 lds r30,_printf_P
1581 0a1c F091 0000 lds r31,(_printf_P)+1
1582 0a20 0995 icall
1583 0a22 88E2 ldi r24,lo8(40)
1584 0a24 8093 0000 sts DispPtr,r24
1585 0a28 8DB7 in r24,__SP_L__
1586 0a2a 9EB7 in r25,__SP_H__
1587 0a2c 0A96 adiw r24,10
1588 0a2e 8DBF out __SP_L__,r24
1589 0a30 8091 0000 lds r24,AnalogOffsetRoll
1590 0a34 9927 clr r25
1591 0a36 9F93 push r25
1592 0a38 8F93 push r24
1593 0a3a 8091 0000 lds r24,AdNeutralRoll
1594 0a3e 9091 0000 lds r25,(AdNeutralRoll)+1
1595 0a42 97FD sbrc r25,7
1596 0a44 0F96 adiw r24,15
1597 .L60:
1598 0a46 64E0 ldi r22,4
1599 0a48 9595 1: asr r25
1600 0a4a 8795 ror r24
1601 0a4c 6A95 dec r22
1602 0a4e E1F7 brne 1b
1603 0a50 9F93 push r25
1604 0a52 8F93 push r24
1605 0a54 2091 0000 lds r18,AdNeutralRoll
1606 0a58 3091 0000 lds r19,(AdNeutralRoll)+1
1607 0a5c 37FF sbrs r19,7
1608 0a5e 02C0 rjmp .L61
1609 0a60 295F subi r18,lo8(-(7))
1610 0a62 3F4F sbci r19,hi8(-(7))
1611 .L61:
1612 0a64 53E0 ldi r21,3
1613 0a66 3595 1: asr r19
1614 0a68 2795 ror r18
1615 0a6a 5A95 dec r21
1616 0a6c E1F7 brne 1b
1617 0a6e 8091 0000 lds r24,AdWertRoll
1618 0a72 9091 0000 lds r25,(AdWertRoll)+1
1619 0a76 821B sub r24,r18
1620 0a78 930B sbc r25,r19
1621 0a7a 9F93 push r25
1622 0a7c 8F93 push r24
1623 0a7e 80E0 ldi r24,lo8(__c.37)
1624 0a80 90E0 ldi r25,hi8(__c.37)
1625 0a82 9F93 push r25
1626 0a84 8F93 push r24
1627 0a86 1F93 push r17
1628 0a88 0F93 push r16
1629 0a8a E091 0000 lds r30,_printf_P
1630 0a8e F091 0000 lds r31,(_printf_P)+1
1631 0a92 0995 icall
1632 0a94 8CE3 ldi r24,lo8(60)
1633 0a96 8093 0000 sts DispPtr,r24
1634 0a9a 2DB7 in r18,__SP_L__
1635 0a9c 3EB7 in r19,__SP_H__
1636 0a9e 265F subi r18,lo8(-(10))
1637 0aa0 3F4F sbci r19,hi8(-(10))
1638 0aa2 2DBF out __SP_L__,r18
1639 0aa4 8091 0000 lds r24,AnalogOffsetGier
1640 0aa8 9927 clr r25
1641 0aaa 9F93 push r25
1642 0aac 8F93 push r24
1643 0aae 8091 0000 lds r24,AdNeutralGier
1644 0ab2 9091 0000 lds r25,(AdNeutralGier)+1
1645 0ab6 97FD sbrc r25,7
1646 0ab8 0196 adiw r24,1
1647 .L62:
1648 0aba 9595 asr r25
1649 0abc 8795 ror r24
1650 0abe 9F93 push r25
1651 0ac0 8F93 push r24
1652 0ac2 8091 0000 lds r24,AdNeutralGier
1653 0ac6 9091 0000 lds r25,(AdNeutralGier)+1
1654 0aca 2091 0000 lds r18,AdWertGier
1655 0ace 3091 0000 lds r19,(AdWertGier)+1
1656 0ad2 821B sub r24,r18
1657 0ad4 930B sbc r25,r19
1658 0ad6 9F93 push r25
1659 0ad8 8F93 push r24
1660 0ada 80E0 ldi r24,lo8(__c.38)
1661 0adc 90E0 ldi r25,hi8(__c.38)
1662 0ade 9F93 push r25
1663 0ae0 8F93 push r24
1664 0ae2 1F93 push r17
1665 0ae4 0F93 push r16
1666 0ae6 E091 0000 lds r30,_printf_P
1667 0aea F091 0000 lds r31,(_printf_P)+1
1668 0aee 0995 icall
1669 0af0 8DB7 in r24,__SP_L__
1670 0af2 9EB7 in r25,__SP_H__
1671 0af4 0A96 adiw r24,10
1672 0af6 4EC3 rjmp .L84
1673 .L63:
1674 0af8 1092 0000 sts DispPtr,__zero_reg__
1675 0afc 80E0 ldi r24,lo8(__c.39)
1676 0afe 90E0 ldi r25,hi8(__c.39)
1677 0b00 9F93 push r25
1678 0b02 8F93 push r24
1679 0b04 FF92 push r15
1680 0b06 EF92 push r14
1681 0b08 FE01 movw r30,r28
1682 0b0a 0995 icall
1683 0b0c 84E1 ldi r24,lo8(20)
1684 0b0e 8093 0000 sts DispPtr,r24
1685 0b12 0F90 pop __tmp_reg__
1686 0b14 0F90 pop __tmp_reg__
1687 0b16 0F90 pop __tmp_reg__
1688 0b18 0F90 pop __tmp_reg__
1689 0b1a 8091 0000 lds r24,NeutralAccX
1690 0b1e 9091 0000 lds r25,(NeutralAccX)+1
1691 0b22 9F93 push r25
1692 0b24 8F93 push r24
1693 0b26 8091 0000 lds r24,AdWertAccNick
1694 0b2a 9091 0000 lds r25,(AdWertAccNick)+1
1695 0b2e 9F93 push r25
1696 0b30 8F93 push r24
1697 0b32 80E0 ldi r24,lo8(__c.40)
1698 0b34 90E0 ldi r25,hi8(__c.40)
1699 0b36 9F93 push r25
1700 0b38 8F93 push r24
1701 0b3a FF92 push r15
1702 0b3c EF92 push r14
1703 0b3e E091 0000 lds r30,_printf_P
1704 0b42 F091 0000 lds r31,(_printf_P)+1
1705 0b46 0995 icall
1706 0b48 88E2 ldi r24,lo8(40)
1707 0b4a 8093 0000 sts DispPtr,r24
1708 0b4e 2DB7 in r18,__SP_L__
1709 0b50 3EB7 in r19,__SP_H__
1710 0b52 285F subi r18,lo8(-(8))
1711 0b54 3F4F sbci r19,hi8(-(8))
1712 0b56 2DBF out __SP_L__,r18
1713 0b58 8091 0000 lds r24,NeutralAccY
1714 0b5c 9091 0000 lds r25,(NeutralAccY)+1
1715 0b60 9F93 push r25
1716 0b62 8F93 push r24
1717 0b64 8091 0000 lds r24,AdWertAccRoll
1718 0b68 9091 0000 lds r25,(AdWertAccRoll)+1
1719 0b6c 9F93 push r25
1720 0b6e 8F93 push r24
1721 0b70 80E0 ldi r24,lo8(__c.41)
1722 0b72 90E0 ldi r25,hi8(__c.41)
1723 0b74 9F93 push r25
1724 0b76 8F93 push r24
1725 0b78 FF92 push r15
1726 0b7a EF92 push r14
1727 0b7c E091 0000 lds r30,_printf_P
1728 0b80 F091 0000 lds r31,(_printf_P)+1
1729 0b84 0995 icall
1730 0b86 8CE3 ldi r24,lo8(60)
1731 0b88 8093 0000 sts DispPtr,r24
1732 0b8c 8DB7 in r24,__SP_L__
1733 0b8e 9EB7 in r25,__SP_H__
1734 0b90 0896 adiw r24,8
1735 0b92 8DBF out __SP_L__,r24
1736 0b94 8091 0000 lds r24,NeutralAccZ
1737 0b98 9091 0000 lds r25,(NeutralAccZ)+1
1738 0b9c 9F93 push r25
1739 0b9e 8F93 push r24
1740 0ba0 8091 0000 lds r24,AdWertAccHoch
1741 0ba4 9091 0000 lds r25,(AdWertAccHoch)+1
1742 0ba8 9F93 push r25
1743 0baa 8F93 push r24
1744 0bac 80E0 ldi r24,lo8(__c.42)
1745 0bae 90E0 ldi r25,hi8(__c.42)
1746 0bb0 8ACD rjmp .L89
1747 .L64:
1748 0bb2 1092 0000 sts DispPtr,__zero_reg__
1749 0bb6 8091 0000 lds r24,UBat
1750 0bba 9091 0000 lds r25,(UBat)+1
1751 0bbe 6AE0 ldi r22,lo8(10)
1752 0bc0 70E0 ldi r23,hi8(10)
1753 0bc2 0E94 0000 call __divmodhi4
1754 0bc6 9F93 push r25
1755 0bc8 8F93 push r24
1756 0bca 8091 0000 lds r24,UBat
1757 0bce 9091 0000 lds r25,(UBat)+1
1758 0bd2 6AE0 ldi r22,lo8(10)
1759 0bd4 70E0 ldi r23,hi8(10)
1760 0bd6 0E94 0000 call __divmodhi4
1761 0bda 7F93 push r23
1762 0bdc 6F93 push r22
1763 0bde 80E0 ldi r24,lo8(__c.43)
1764 0be0 90E0 ldi r25,hi8(__c.43)
1765 0be2 9F93 push r25
1766 0be4 8F93 push r24
1767 0be6 FF92 push r15
1768 0be8 EF92 push r14
1769 0bea FE01 movw r30,r28
1770 0bec 0995 icall
1771 0bee 84E1 ldi r24,lo8(20)
1772 0bf0 8093 0000 sts DispPtr,r24
1773 0bf4 8DB7 in r24,__SP_L__
1774 0bf6 9EB7 in r25,__SP_H__
1775 0bf8 0896 adiw r24,8
1776 0bfa 8DBF out __SP_L__,r24
1777 0bfc 8091 0000 lds r24,Capacity
1778 0c00 9091 0000 lds r25,(Capacity)+1
1779 0c04 6AE0 ldi r22,lo8(10)
1780 0c06 70E0 ldi r23,hi8(10)
1781 0c08 0E94 0000 call __udivmodhi4
1782 0c0c 9F93 push r25
1783 0c0e 8F93 push r24
1784 0c10 8091 0000 lds r24,Capacity
1785 0c14 9091 0000 lds r25,(Capacity)+1
1786 0c18 6AE0 ldi r22,lo8(10)
1787 0c1a 70E0 ldi r23,hi8(10)
1788 0c1c 0E94 0000 call __udivmodhi4
1789 0c20 7F93 push r23
1790 0c22 6F93 push r22
1791 0c24 80E0 ldi r24,lo8(__c.44)
1792 0c26 90E0 ldi r25,hi8(__c.44)
1793 0c28 9F93 push r25
1794 0c2a 8F93 push r24
1795 0c2c FF92 push r15
1796 0c2e EF92 push r14
1797 0c30 E091 0000 lds r30,_printf_P
1798 0c34 F091 0000 lds r31,(_printf_P)+1
1799 0c38 0995 icall
1800 0c3a 88E2 ldi r24,lo8(40)
1801 0c3c 8093 0000 sts DispPtr,r24
1802 0c40 2DB7 in r18,__SP_L__
1803 0c42 3EB7 in r19,__SP_H__
1804 0c44 285F subi r18,lo8(-(8))
1805 0c46 3F4F sbci r19,hi8(-(8))
1806 0c48 2DBF out __SP_L__,r18
1807 0c4a 8091 0000 lds r24,Capacity+2
1808 0c4e 9091 0000 lds r25,(Capacity+2)+1
1809 0c52 9F93 push r25
1810 0c54 8F93 push r24
1811 0c56 80E0 ldi r24,lo8(__c.45)
1812 0c58 90E0 ldi r25,hi8(__c.45)
1813 0c5a 9F93 push r25
1814 0c5c 8F93 push r24
1815 0c5e FF92 push r15
1816 0c60 EF92 push r14
1817 0c62 E091 0000 lds r30,_printf_P
1818 0c66 F091 0000 lds r31,(_printf_P)+1
1819 0c6a 0995 icall
1820 0c6c 8CE3 ldi r24,lo8(60)
1821 0c6e 8093 0000 sts DispPtr,r24
1822 0c72 8DB7 in r24,__SP_L__
1823 0c74 9EB7 in r25,__SP_H__
1824 0c76 0696 adiw r24,6
1825 0c78 8DBF out __SP_L__,r24
1826 0c7a 8091 0000 lds r24,Capacity+4
1827 0c7e 9091 0000 lds r25,(Capacity+4)+1
1828 0c82 9F93 push r25
1829 0c84 8F93 push r24
1830 0c86 80E0 ldi r24,lo8(__c.46)
1831 0c88 90E0 ldi r25,hi8(__c.46)
1832 0c8a 2EC1 rjmp .L93
1833 .L65:
1834 0c8c 1092 0000 sts DispPtr,__zero_reg__
1835 0c90 80E0 ldi r24,lo8(__c.47)
1836 0c92 90E0 ldi r25,hi8(__c.47)
1837 0c94 9F93 push r25
1838 0c96 8F93 push r24
1839 0c98 FF92 push r15
1840 0c9a EF92 push r14
1841 0c9c FE01 movw r30,r28
1842 0c9e 0995 icall
1843 0ca0 84E1 ldi r24,lo8(20)
1844 0ca2 8093 0000 sts DispPtr,r24
1845 0ca6 0F90 pop __tmp_reg__
1846 0ca8 0F90 pop __tmp_reg__
1847 0caa 0F90 pop __tmp_reg__
1848 0cac 0F90 pop __tmp_reg__
1849 0cae 8091 0000 lds r24,PPM_in
1850 0cb2 9091 0000 lds r25,(PPM_in)+1
1851 0cb6 9F93 push r25
1852 0cb8 8F93 push r24
1853 0cba 80E0 ldi r24,lo8(__c.48)
1854 0cbc 90E0 ldi r25,hi8(__c.48)
1855 0cbe 9F93 push r25
1856 0cc0 8F93 push r24
1857 0cc2 FF92 push r15
1858 0cc4 EF92 push r14
1859 0cc6 E091 0000 lds r30,_printf_P
1860 0cca F091 0000 lds r31,(_printf_P)+1
1861 0cce 0995 icall
1862 0cd0 88E2 ldi r24,lo8(40)
1863 0cd2 8093 0000 sts DispPtr,r24
1864 0cd6 8DB7 in r24,__SP_L__
1865 0cd8 9EB7 in r25,__SP_H__
1866 0cda 0696 adiw r24,6
1867 0cdc 8DBF out __SP_L__,r24
1868 0cde 8091 0000 lds r24,SenderOkay
1869 0ce2 9927 clr r25
1870 0ce4 9F93 push r25
1871 0ce6 8F93 push r24
1872 0ce8 80E0 ldi r24,lo8(__c.49)
1873 0cea 90E0 ldi r25,hi8(__c.49)
1874 0cec 9F93 push r25
1875 0cee 8F93 push r24
1876 0cf0 FF92 push r15
1877 0cf2 EF92 push r14
1878 0cf4 E091 0000 lds r30,_printf_P
1879 0cf8 F091 0000 lds r31,(_printf_P)+1
1880 0cfc 0995 icall
1881 0cfe 8CE3 ldi r24,lo8(60)
1882 0d00 8093 0000 sts DispPtr,r24
1883 0d04 2DB7 in r18,__SP_L__
1884 0d06 3EB7 in r19,__SP_H__
1885 0d08 2A5F subi r18,lo8(-(6))
1886 0d0a 3F4F sbci r19,hi8(-(6))
1887 0d0c 2DBF out __SP_L__,r18
1888 0d0e 8091 0000 lds r24,Channels
1889 0d12 9927 clr r25
1890 0d14 0197 sbiw r24,1
1891 0d16 9F93 push r25
1892 0d18 8F93 push r24
1893 0d1a 80E0 ldi r24,lo8(__c.50)
1894 0d1c 90E0 ldi r25,hi8(__c.50)
1895 0d1e FECA rjmp .L92
1896 .L66:
1897 0d20 1092 0000 sts DispPtr,__zero_reg__
1898 0d24 80E0 ldi r24,lo8(__c.51)
1899 0d26 90E0 ldi r25,hi8(__c.51)
1900 0d28 9F93 push r25
1901 0d2a 8F93 push r24
1902 0d2c FF92 push r15
1903 0d2e EF92 push r14
1904 0d30 FE01 movw r30,r28
1905 0d32 0995 icall
1906 0d34 84E1 ldi r24,lo8(20)
1907 0d36 8093 0000 sts DispPtr,r24
1908 0d3a 0F90 pop __tmp_reg__
1909 0d3c 0F90 pop __tmp_reg__
1910 0d3e 0F90 pop __tmp_reg__
1911 0d40 0F90 pop __tmp_reg__
1912 0d42 8091 0000 lds r24,KompassRichtung
1913 0d46 9091 0000 lds r25,(KompassRichtung)+1
1914 0d4a 9F93 push r25
1915 0d4c 8F93 push r24
1916 0d4e 80E0 ldi r24,lo8(__c.52)
1917 0d50 90E0 ldi r25,hi8(__c.52)
1918 0d52 9F93 push r25
1919 0d54 8F93 push r24
1920 0d56 FF92 push r15
1921 0d58 EF92 push r14
1922 0d5a E091 0000 lds r30,_printf_P
1923 0d5e F091 0000 lds r31,(_printf_P)+1
1924 0d62 0995 icall
1925 0d64 88E2 ldi r24,lo8(40)
1926 0d66 8093 0000 sts DispPtr,r24
1927 0d6a 2DB7 in r18,__SP_L__
1928 0d6c 3EB7 in r19,__SP_H__
1929 0d6e 2A5F subi r18,lo8(-(6))
1930 0d70 3F4F sbci r19,hi8(-(6))
1931 0d72 2DBF out __SP_L__,r18
1932 0d74 8091 0000 lds r24,KompassValue
1933 0d78 9091 0000 lds r25,(KompassValue)+1
1934 0d7c 9F93 push r25
1935 0d7e 8F93 push r24
1936 0d80 80E0 ldi r24,lo8(__c.53)
1937 0d82 90E0 ldi r25,hi8(__c.53)
1938 0d84 9F93 push r25
1939 0d86 8F93 push r24
1940 0d88 FF92 push r15
1941 0d8a EF92 push r14
1942 0d8c E091 0000 lds r30,_printf_P
1943 0d90 F091 0000 lds r31,(_printf_P)+1
1944 0d94 0995 icall
1945 0d96 8CE3 ldi r24,lo8(60)
1946 0d98 8093 0000 sts DispPtr,r24
1947 0d9c 8DB7 in r24,__SP_L__
1948 0d9e 9EB7 in r25,__SP_H__
1949 0da0 0696 adiw r24,6
1950 0da2 8DBF out __SP_L__,r24
1951 0da4 8091 0000 lds r24,KompassStartwert
1952 0da8 9091 0000 lds r25,(KompassStartwert)+1
1953 0dac 9F93 push r25
1954 0dae 8F93 push r24
1955 0db0 80E0 ldi r24,lo8(__c.54)
1956 0db2 90E0 ldi r25,hi8(__c.54)
1957 0db4 99C0 rjmp .L93
1958 .L67:
1959 0db6 1092 0000 sts DispPtr,__zero_reg__
1960 0dba 8091 0000 lds r24,Poti
1961 0dbe 9927 clr r25
1962 0dc0 9F93 push r25
1963 0dc2 8F93 push r24
1964 0dc4 80E0 ldi r24,lo8(__c.55)
1965 0dc6 90E0 ldi r25,hi8(__c.55)
1966 0dc8 9F93 push r25
1967 0dca 8F93 push r24
1968 0dcc FF92 push r15
1969 0dce EF92 push r14
1970 0dd0 FE01 movw r30,r28
1971 0dd2 0995 icall
1972 0dd4 84E1 ldi r24,lo8(20)
1973 0dd6 8093 0000 sts DispPtr,r24
1974 0dda 8DB7 in r24,__SP_L__
1975 0ddc 9EB7 in r25,__SP_H__
1976 0dde 0696 adiw r24,6
1977 0de0 8DBF out __SP_L__,r24
1978 0de2 8091 0000 lds r24,Poti+1
1979 0de6 9927 clr r25
1980 0de8 9F93 push r25
1981 0dea 8F93 push r24
1982 0dec 80E0 ldi r24,lo8(__c.56)
1983 0dee 90E0 ldi r25,hi8(__c.56)
1984 0df0 9F93 push r25
1985 0df2 8F93 push r24
1986 0df4 FF92 push r15
1987 0df6 EF92 push r14
1988 0df8 E091 0000 lds r30,_printf_P
1989 0dfc F091 0000 lds r31,(_printf_P)+1
1990 0e00 0995 icall
1991 0e02 88E2 ldi r24,lo8(40)
1992 0e04 8093 0000 sts DispPtr,r24
1993 0e08 2DB7 in r18,__SP_L__
1994 0e0a 3EB7 in r19,__SP_H__
1995 0e0c 2A5F subi r18,lo8(-(6))
1996 0e0e 3F4F sbci r19,hi8(-(6))
1997 0e10 2DBF out __SP_L__,r18
1998 0e12 8091 0000 lds r24,Poti+2
1999 0e16 9927 clr r25
2000 0e18 9F93 push r25
2001 0e1a 8F93 push r24
2002 0e1c 80E0 ldi r24,lo8(__c.57)
2003 0e1e 90E0 ldi r25,hi8(__c.57)
2004 0e20 9F93 push r25
2005 0e22 8F93 push r24
2006 0e24 FF92 push r15
2007 0e26 EF92 push r14
2008 0e28 E091 0000 lds r30,_printf_P
2009 0e2c F091 0000 lds r31,(_printf_P)+1
2010 0e30 0995 icall
2011 0e32 8CE3 ldi r24,lo8(60)
2012 0e34 8093 0000 sts DispPtr,r24
2013 0e38 8DB7 in r24,__SP_L__
2014 0e3a 9EB7 in r25,__SP_H__
2015 0e3c 0696 adiw r24,6
2016 0e3e 8DBF out __SP_L__,r24
2017 0e40 8091 0000 lds r24,Poti+3
2018 0e44 9927 clr r25
2019 0e46 9F93 push r25
2020 0e48 8F93 push r24
2021 0e4a 80E0 ldi r24,lo8(__c.58)
2022 0e4c 90E0 ldi r25,hi8(__c.58)
2023 0e4e 4CC0 rjmp .L93
2024 .L68:
2025 0e50 1092 0000 sts DispPtr,__zero_reg__
2026 0e54 8091 0000 lds r24,Poti+4
2027 0e58 9927 clr r25
2028 0e5a 9F93 push r25
2029 0e5c 8F93 push r24
2030 0e5e 80E0 ldi r24,lo8(__c.59)
2031 0e60 90E0 ldi r25,hi8(__c.59)
2032 0e62 9F93 push r25
2033 0e64 8F93 push r24
2034 0e66 FF92 push r15
2035 0e68 EF92 push r14
2036 0e6a FE01 movw r30,r28
2037 0e6c 0995 icall
2038 0e6e 84E1 ldi r24,lo8(20)
2039 0e70 8093 0000 sts DispPtr,r24
2040 0e74 8DB7 in r24,__SP_L__
2041 0e76 9EB7 in r25,__SP_H__
2042 0e78 0696 adiw r24,6
2043 0e7a 8DBF out __SP_L__,r24
2044 0e7c 8091 0000 lds r24,Poti+5
2045 0e80 9927 clr r25
2046 0e82 9F93 push r25
2047 0e84 8F93 push r24
2048 0e86 80E0 ldi r24,lo8(__c.60)
2049 0e88 90E0 ldi r25,hi8(__c.60)
2050 0e8a 9F93 push r25
2051 0e8c 8F93 push r24
2052 0e8e FF92 push r15
2053 0e90 EF92 push r14
2054 0e92 E091 0000 lds r30,_printf_P
2055 0e96 F091 0000 lds r31,(_printf_P)+1
2056 0e9a 0995 icall
2057 0e9c 88E2 ldi r24,lo8(40)
2058 0e9e 8093 0000 sts DispPtr,r24
2059 0ea2 2DB7 in r18,__SP_L__
2060 0ea4 3EB7 in r19,__SP_H__
2061 0ea6 2A5F subi r18,lo8(-(6))
2062 0ea8 3F4F sbci r19,hi8(-(6))
2063 0eaa 2DBF out __SP_L__,r18
2064 0eac 8091 0000 lds r24,Poti+6
2065 0eb0 9927 clr r25
2066 0eb2 9F93 push r25
2067 0eb4 8F93 push r24
2068 0eb6 80E0 ldi r24,lo8(__c.61)
2069 0eb8 90E0 ldi r25,hi8(__c.61)
2070 0eba 9F93 push r25
2071 0ebc 8F93 push r24
2072 0ebe FF92 push r15
2073 0ec0 EF92 push r14
2074 0ec2 E091 0000 lds r30,_printf_P
2075 0ec6 F091 0000 lds r31,(_printf_P)+1
2076 0eca 0995 icall
2077 0ecc 8CE3 ldi r24,lo8(60)
2078 0ece 8093 0000 sts DispPtr,r24
2079 0ed2 8DB7 in r24,__SP_L__
2080 0ed4 9EB7 in r25,__SP_H__
2081 0ed6 0696 adiw r24,6
2082 0ed8 8DBF out __SP_L__,r24
2083 0eda 8091 0000 lds r24,Poti+7
2084 0ede 9927 clr r25
2085 0ee0 9F93 push r25
2086 0ee2 8F93 push r24
2087 0ee4 80E0 ldi r24,lo8(__c.62)
2088 0ee6 90E0 ldi r25,hi8(__c.62)
2089 .L93:
2090 0ee8 9F93 push r25
2091 0eea 8F93 push r24
2092 0eec FF92 push r15
2093 0eee EF92 push r14
2094 0ef0 D5CA rjmp .L88
2095 .L69:
2096 0ef2 1092 0000 sts DispPtr,__zero_reg__
2097 0ef6 80E0 ldi r24,lo8(__c.63)
2098 0ef8 90E0 ldi r25,hi8(__c.63)
2099 0efa 9F93 push r25
2100 0efc 8F93 push r24
2101 0efe FF92 push r15
2102 0f00 EF92 push r14
2103 0f02 FE01 movw r30,r28
2104 0f04 0995 icall
2105 0f06 84E1 ldi r24,lo8(20)
2106 0f08 8093 0000 sts DispPtr,r24
2107 0f0c 0F90 pop __tmp_reg__
2108 0f0e 0F90 pop __tmp_reg__
2109 0f10 0F90 pop __tmp_reg__
2110 0f12 0F90 pop __tmp_reg__
2111 0f14 8091 0000 lds r24,Parameter_ServoNickControl
2112 0f18 9927 clr r25
2113 0f1a 9F93 push r25
2114 0f1c 8F93 push r24
2115 0f1e 80E0 ldi r24,lo8(__c.64)
2116 0f20 90E0 ldi r25,hi8(__c.64)
2117 0f22 9F93 push r25
2118 0f24 8F93 push r24
2119 0f26 FF92 push r15
2120 0f28 EF92 push r14
2121 0f2a E091 0000 lds r30,_printf_P
2122 0f2e F091 0000 lds r31,(_printf_P)+1
2123 0f32 0995 icall
2124 0f34 88E2 ldi r24,lo8(40)
2125 0f36 8093 0000 sts DispPtr,r24
2126 0f3a 8DB7 in r24,__SP_L__
2127 0f3c 9EB7 in r25,__SP_H__
2128 0f3e 0696 adiw r24,6
2129 0f40 8DBF out __SP_L__,r24
2130 0f42 8091 0000 lds r24,ServoNickValue
2131 0f46 9091 0000 lds r25,(ServoNickValue)+1
2132 0f4a 9F93 push r25
2133 0f4c 8F93 push r24
2134 0f4e 80E0 ldi r24,lo8(__c.65)
2135 0f50 90E0 ldi r25,hi8(__c.65)
2136 0f52 9F93 push r25
2137 0f54 8F93 push r24
2138 0f56 FF92 push r15
2139 0f58 EF92 push r14
2140 0f5a E091 0000 lds r30,_printf_P
2141 0f5e F091 0000 lds r31,(_printf_P)+1
2142 0f62 0995 icall
2143 0f64 8CE3 ldi r24,lo8(60)
2144 0f66 8093 0000 sts DispPtr,r24
2145 0f6a 2DB7 in r18,__SP_L__
2146 0f6c 3EB7 in r19,__SP_H__
2147 0f6e 2A5F subi r18,lo8(-(6))
2148 0f70 3F4F sbci r19,hi8(-(6))
2149 0f72 2DBF out __SP_L__,r18
2150 0f74 8091 0000 lds r24,EE_Parameter+48
2151 0f78 9927 clr r25
2152 0f7a 9F93 push r25
2153 0f7c 8F93 push r24
2154 0f7e 8091 0000 lds r24,EE_Parameter+47
2155 0f82 9927 clr r25
2156 0f84 9F93 push r25
2157 0f86 8F93 push r24
2158 0f88 80E0 ldi r24,lo8(__c.66)
2159 0f8a 90E0 ldi r25,hi8(__c.66)
2160 0f8c 9F93 push r25
2161 0f8e 8F93 push r24
2162 0f90 FF92 push r15
2163 0f92 EF92 push r14
2164 .L87:
2165 0f94 E091 0000 lds r30,_printf_P
2166 0f98 F091 0000 lds r31,(_printf_P)+1
2167 0f9c 0995 icall
2168 0f9e 8DB7 in r24,__SP_L__
2169 0fa0 9EB7 in r25,__SP_H__
2170 0fa2 0896 adiw r24,8
2171 0fa4 F7C0 rjmp .L84
2172 .L70:
2173 0fa6 1092 0000 sts DispPtr,__zero_reg__
2174 0faa 80E0 ldi r24,lo8(__c.67)
2175 0fac 90E0 ldi r25,hi8(__c.67)
2176 0fae 9F93 push r25
2177 0fb0 8F93 push r24
2178 0fb2 FF92 push r15
2179 0fb4 EF92 push r14
2180 0fb6 FE01 movw r30,r28
2181 0fb8 0995 icall
2182 0fba 84E1 ldi r24,lo8(20)
2183 0fbc 8093 0000 sts DispPtr,r24
2184 0fc0 0F90 pop __tmp_reg__
2185 0fc2 0F90 pop __tmp_reg__
2186 0fc4 0F90 pop __tmp_reg__
2187 0fc6 0F90 pop __tmp_reg__
2188 0fc8 8091 0000 lds r24,ExternControl+4
2189 0fcc 9927 clr r25
2190 0fce 87FD sbrc r24,7
2191 0fd0 9095 com r25
2192 0fd2 9F93 push r25
2193 0fd4 8F93 push r24
2194 0fd6 8091 0000 lds r24,ExternControl+3
2195 0fda 9927 clr r25
2196 0fdc 87FD sbrc r24,7
2197 0fde 9095 com r25
2198 0fe0 9F93 push r25
2199 0fe2 8F93 push r24
2200 0fe4 80E0 ldi r24,lo8(__c.68)
2201 0fe6 90E0 ldi r25,hi8(__c.68)
2202 0fe8 9F93 push r25
2203 0fea 8F93 push r24
2204 0fec FF92 push r15
2205 0fee EF92 push r14
2206 0ff0 E091 0000 lds r30,_printf_P
2207 0ff4 F091 0000 lds r31,(_printf_P)+1
2208 0ff8 0995 icall
2209 0ffa 88E2 ldi r24,lo8(40)
2210 0ffc 8093 0000 sts DispPtr,r24
2211 1000 2DB7 in r18,__SP_L__
2212 1002 3EB7 in r19,__SP_H__
2213 1004 285F subi r18,lo8(-(8))
2214 1006 3F4F sbci r19,hi8(-(8))
2215 1008 2DBF out __SP_L__,r18
2216 100a 8091 0000 lds r24,ExternControl+5
2217 100e 9927 clr r25
2218 1010 87FD sbrc r24,7
2219 1012 9095 com r25
2220 1014 9F93 push r25
2221 1016 8F93 push r24
2222 1018 8091 0000 lds r24,ExternControl+6
2223 101c 9927 clr r25
2224 101e 9F93 push r25
2225 1020 8F93 push r24
2226 1022 80E0 ldi r24,lo8(__c.69)
2227 1024 90E0 ldi r25,hi8(__c.69)
2228 1026 9F93 push r25
2229 1028 8F93 push r24
2230 102a FF92 push r15
2231 102c EF92 push r14
2232 102e E091 0000 lds r30,_printf_P
2233 1032 F091 0000 lds r31,(_printf_P)+1
2234 1036 0995 icall
2235 1038 8CE3 ldi r24,lo8(60)
2236 103a 8093 0000 sts DispPtr,r24
2237 103e 8DB7 in r24,__SP_L__
2238 1040 9EB7 in r25,__SP_H__
2239 1042 0896 adiw r24,8
2240 1044 8DBF out __SP_L__,r24
2241 1046 8091 0000 lds r24,ExternControl+10
2242 104a 9927 clr r25
2243 104c 9F93 push r25
2244 104e 8F93 push r24
2245 1050 8091 0000 lds r24,ExternControl+7
2246 1054 9927 clr r25
2247 1056 87FD sbrc r24,7
2248 1058 9095 com r25
2249 105a 9F93 push r25
2250 105c 8F93 push r24
2251 105e 80E0 ldi r24,lo8(__c.70)
2252 1060 90E0 ldi r25,hi8(__c.70)
2253 1062 31CB rjmp .L89
2254 .L71:
2255 1064 1092 0000 sts DispPtr,__zero_reg__
2256 1068 80E0 ldi r24,lo8(__c.71)
2257 106a 90E0 ldi r25,hi8(__c.71)
2258 106c 9F93 push r25
2259 106e 8F93 push r24
2260 1070 FF92 push r15
2261 1072 EF92 push r14
2262 1074 FE01 movw r30,r28
2263 1076 0995 icall
2264 1078 84E1 ldi r24,lo8(20)
2265 107a 8093 0000 sts DispPtr,r24
2266 107e 0F90 pop __tmp_reg__
2267 1080 0F90 pop __tmp_reg__
2268 1082 0F90 pop __tmp_reg__
2269 1084 0F90 pop __tmp_reg__
2270 1086 8091 0000 lds r24,Motor+27
2271 108a 9927 clr r25
2272 108c 8F77 andi r24,lo8(127)
2273 108e 9070 andi r25,hi8(127)
2274 1090 9F93 push r25
2275 1092 8F93 push r24
2276 1094 8091 0000 lds r24,Motor+19
2277 1098 9927 clr r25
2278 109a 8F77 andi r24,lo8(127)
2279 109c 9070 andi r25,hi8(127)
2280 109e 9F93 push r25
2281 10a0 8F93 push r24
2282 10a2 8091 0000 lds r24,Motor+11
2283 10a6 9927 clr r25
2284 10a8 8F77 andi r24,lo8(127)
2285 10aa 9070 andi r25,hi8(127)
2286 10ac 9F93 push r25
2287 10ae 8F93 push r24
2288 10b0 8091 0000 lds r24,Motor+3
2289 10b4 9927 clr r25
2290 10b6 8F77 andi r24,lo8(127)
2291 10b8 9070 andi r25,hi8(127)
2292 10ba 9F93 push r25
2293 10bc 8F93 push r24
2294 10be 80E0 ldi r24,lo8(__c.72)
2295 10c0 90E0 ldi r25,hi8(__c.72)
2296 10c2 9F93 push r25
2297 10c4 8F93 push r24
2298 10c6 FF92 push r15
2299 10c8 EF92 push r14
2300 10ca E091 0000 lds r30,_printf_P
2301 10ce F091 0000 lds r31,(_printf_P)+1
2302 10d2 0995 icall
2303 10d4 88E2 ldi r24,lo8(40)
2304 10d6 8093 0000 sts DispPtr,r24
2305 10da 8DB7 in r24,__SP_L__
2306 10dc 9EB7 in r25,__SP_H__
2307 10de 0C96 adiw r24,12
2308 10e0 8DBF out __SP_L__,r24
2309 10e2 8091 0000 lds r24,Motor+59
2310 10e6 9927 clr r25
2311 10e8 8F77 andi r24,lo8(127)
2312 10ea 9070 andi r25,hi8(127)
2313 10ec 9F93 push r25
2314 10ee 8F93 push r24
2315 10f0 8091 0000 lds r24,Motor+51
2316 10f4 9927 clr r25
2317 10f6 8F77 andi r24,lo8(127)
2318 10f8 9070 andi r25,hi8(127)
2319 10fa 9F93 push r25
2320 10fc 8F93 push r24
2321 10fe 8091 0000 lds r24,Motor+43
2322 1102 9927 clr r25
2323 1104 8F77 andi r24,lo8(127)
2324 1106 9070 andi r25,hi8(127)
2325 1108 9F93 push r25
2326 110a 8F93 push r24
2327 110c 8091 0000 lds r24,Motor+35
2328 1110 9927 clr r25
2329 1112 8F77 andi r24,lo8(127)
2330 1114 9070 andi r25,hi8(127)
2331 1116 9F93 push r25
2332 1118 8F93 push r24
2333 111a 80E0 ldi r24,lo8(__c.73)
2334 111c 90E0 ldi r25,hi8(__c.73)
2335 111e 9F93 push r25
2336 1120 8F93 push r24
2337 1122 FF92 push r15
2338 1124 EF92 push r14
2339 1126 E091 0000 lds r30,_printf_P
2340 112a F091 0000 lds r31,(_printf_P)+1
2341 112e 0995 icall
2342 1130 8CE3 ldi r24,lo8(60)
2343 1132 8093 0000 sts DispPtr,r24
2344 1136 2DB7 in r18,__SP_L__
2345 1138 3EB7 in r19,__SP_H__
2346 113a 245F subi r18,lo8(-(12))
2347 113c 3F4F sbci r19,hi8(-(12))
2348 113e 2DBF out __SP_L__,r18
2349 1140 8091 0000 lds r24,Motor+91
2350 1144 9927 clr r25
2351 1146 8F77 andi r24,lo8(127)
2352 1148 9070 andi r25,hi8(127)
2353 114a 9F93 push r25
2354 114c 8F93 push r24
2355 114e 8091 0000 lds r24,Motor+83
2356 1152 9927 clr r25
2357 1154 8F77 andi r24,lo8(127)
2358 1156 9070 andi r25,hi8(127)
2359 1158 9F93 push r25
2360 115a 8F93 push r24
2361 115c 8091 0000 lds r24,Motor+75
2362 1160 9927 clr r25
2363 1162 8F77 andi r24,lo8(127)
2364 1164 9070 andi r25,hi8(127)
2365 1166 9F93 push r25
2366 1168 8F93 push r24
2367 116a 8091 0000 lds r24,Motor+67
2368 116e 9927 clr r25
2369 1170 8F77 andi r24,lo8(127)
2370 1172 9070 andi r25,hi8(127)
2371 1174 9F93 push r25
2372 1176 8F93 push r24
2373 1178 80E0 ldi r24,lo8(__c.74)
2374 117a 90E0 ldi r25,hi8(__c.74)
2375 117c 9F93 push r25
2376 117e 8F93 push r24
2377 1180 FF92 push r15
2378 1182 EF92 push r14
2379 1184 E091 0000 lds r30,_printf_P
2380 1188 F091 0000 lds r31,(_printf_P)+1
2381 118c 0995 icall
2382 118e 8DB7 in r24,__SP_L__
2383 1190 9EB7 in r25,__SP_H__
2384 1192 0C96 adiw r24,12
2385 .L84:
2386 1194 8DBF out __SP_L__,r24
2387 1196 FEC1 rjmp .L19
2388 .L72:
2389 1198 1092 0000 sts DispPtr,__zero_reg__
2390 119c 80E0 ldi r24,lo8(__c.75)
2391 119e 90E0 ldi r25,hi8(__c.75)
2392 11a0 9F93 push r25
2393 11a2 8F93 push r24
2394 11a4 FF92 push r15
2395 11a6 EF92 push r14
2396 11a8 FE01 movw r30,r28
2397 11aa 0995 icall
2398 11ac 84E1 ldi r24,lo8(20)
2399 11ae 8093 0000 sts DispPtr,r24
2400 11b2 0F90 pop __tmp_reg__
2401 11b4 0F90 pop __tmp_reg__
2402 11b6 0F90 pop __tmp_reg__
2403 11b8 0F90 pop __tmp_reg__
2404 11ba 8091 0000 lds r24,Motor+31
2405 11be 9927 clr r25
2406 11c0 87FD sbrc r24,7
2407 11c2 9095 com r25
2408 11c4 9F93 push r25
2409 11c6 8F93 push r24
2410 11c8 8091 0000 lds r24,Motor+23
2411 11cc 9927 clr r25
2412 11ce 87FD sbrc r24,7
2413 11d0 9095 com r25
2414 11d2 9F93 push r25
2415 11d4 8F93 push r24
2416 11d6 8091 0000 lds r24,Motor+15
2417 11da 9927 clr r25
2418 11dc 87FD sbrc r24,7
2419 11de 9095 com r25
2420 11e0 9F93 push r25
2421 11e2 8F93 push r24
2422 11e4 8091 0000 lds r24,Motor+7
2423 11e8 9927 clr r25
2424 11ea 87FD sbrc r24,7
2425 11ec 9095 com r25
2426 11ee 9F93 push r25
2427 11f0 8F93 push r24
2428 11f2 80E0 ldi r24,lo8(__c.76)
2429 11f4 90E0 ldi r25,hi8(__c.76)
2430 11f6 9F93 push r25
2431 11f8 8F93 push r24
2432 11fa FF92 push r15
2433 11fc EF92 push r14
2434 11fe E091 0000 lds r30,_printf_P
2435 1202 F091 0000 lds r31,(_printf_P)+1
2436 1206 0995 icall
2437 1208 88E2 ldi r24,lo8(40)
2438 120a 8093 0000 sts DispPtr,r24
2439 120e 2DB7 in r18,__SP_L__
2440 1210 3EB7 in r19,__SP_H__
2441 1212 245F subi r18,lo8(-(12))
2442 1214 3F4F sbci r19,hi8(-(12))
2443 1216 2DBF out __SP_L__,r18
2444 1218 8091 0000 lds r24,Motor+63
2445 121c 9927 clr r25
2446 121e 87FD sbrc r24,7
2447 1220 9095 com r25
2448 1222 9F93 push r25
2449 1224 8F93 push r24
2450 1226 8091 0000 lds r24,Motor+55
2451 122a 9927 clr r25
2452 122c 87FD sbrc r24,7
2453 122e 9095 com r25
2454 1230 9F93 push r25
2455 1232 8F93 push r24
2456 1234 8091 0000 lds r24,Motor+47
2457 1238 9927 clr r25
2458 123a 87FD sbrc r24,7
2459 123c 9095 com r25
2460 123e 9F93 push r25
2461 1240 8F93 push r24
2462 1242 8091 0000 lds r24,Motor+39
2463 1246 9927 clr r25
2464 1248 87FD sbrc r24,7
2465 124a 9095 com r25
2466 124c 9F93 push r25
2467 124e 8F93 push r24
2468 1250 80E0 ldi r24,lo8(__c.77)
2469 1252 90E0 ldi r25,hi8(__c.77)
2470 1254 9F93 push r25
2471 1256 8F93 push r24
2472 1258 FF92 push r15
2473 125a EF92 push r14
2474 125c E091 0000 lds r30,_printf_P
2475 1260 F091 0000 lds r31,(_printf_P)+1
2476 1264 0995 icall
2477 1266 8CE3 ldi r24,lo8(60)
2478 1268 8093 0000 sts DispPtr,r24
2479 126c 8DB7 in r24,__SP_L__
2480 126e 9EB7 in r25,__SP_H__
2481 1270 0C96 adiw r24,12
2482 1272 8DBF out __SP_L__,r24
2483 1274 8091 0000 lds r24,Motor+95
2484 1278 9927 clr r25
2485 127a 87FD sbrc r24,7
2486 127c 9095 com r25
2487 127e 9F93 push r25
2488 1280 8F93 push r24
2489 1282 8091 0000 lds r24,Motor+87
2490 1286 9927 clr r25
2491 1288 87FD sbrc r24,7
2492 128a 9095 com r25
2493 128c 9F93 push r25
2494 128e 8F93 push r24
2495 1290 8091 0000 lds r24,Motor+79
2496 1294 9927 clr r25
2497 1296 87FD sbrc r24,7
2498 1298 9095 com r25
2499 129a 9F93 push r25
2500 129c 8F93 push r24
2501 129e 8091 0000 lds r24,Motor+71
2502 12a2 9927 clr r25
2503 12a4 87FD sbrc r24,7
2504 12a6 9095 com r25
2505 12a8 9F93 push r25
2506 12aa 8F93 push r24
2507 12ac 80E0 ldi r24,lo8(__c.78)
2508 12ae 90E0 ldi r25,hi8(__c.78)
2509 12b0 9F93 push r25
2510 12b2 8F93 push r24
2511 12b4 FF92 push r15
2512 12b6 EF92 push r14
2513 12b8 E091 0000 lds r30,_printf_P
2514 12bc F091 0000 lds r31,(_printf_P)+1
2515 12c0 0995 icall
2516 12c2 2DB7 in r18,__SP_L__
2517 12c4 3EB7 in r19,__SP_H__
2518 12c6 245F subi r18,lo8(-(12))
2519 12c8 3F4F sbci r19,hi8(-(12))
2520 .L83:
2521 12ca 2DBF out __SP_L__,r18
2522 12cc 63C1 rjmp .L19
2523 .L73:
2524 12ce 1092 0000 sts DispPtr,__zero_reg__
2525 12d2 80E0 ldi r24,lo8(__c.79)
2526 12d4 90E0 ldi r25,hi8(__c.79)
2527 12d6 9F93 push r25
2528 12d8 8F93 push r24
2529 12da 00E0 ldi r16,lo8(pm(Menu_Putchar))
2530 12dc 10E0 ldi r17,hi8(pm(Menu_Putchar))
2531 12de FF92 push r15
2532 12e0 EF92 push r14
2533 12e2 FE01 movw r30,r28
2534 12e4 0995 icall
2535 12e6 84E1 ldi r24,lo8(20)
2536 12e8 8093 0000 sts DispPtr,r24
2537 12ec 0F90 pop __tmp_reg__
2538 12ee 0F90 pop __tmp_reg__
2539 12f0 0F90 pop __tmp_reg__
2540 12f2 0F90 pop __tmp_reg__
2541 12f4 8091 0000 lds r24,Motor+27
2542 12f8 881F rol r24
2543 12fa 8827 clr r24
2544 12fc 881F rol r24
2545 12fe 97E0 ldi r25,lo8(7)
2546 1300 899F mul r24,r25
2547 1302 C001 movw r24,r0
2548 1304 1124 clr r1
2549 1306 8D96 adiw r24,45
2550 1308 9F93 push r25
2551 130a 8F93 push r24
2552 130c 8091 0000 lds r24,Motor+19
2553 1310 881F rol r24
2554 1312 8827 clr r24
2555 1314 881F rol r24
2556 1316 96E0 ldi r25,lo8(6)
2557 1318 899F mul r24,r25
2558 131a C001 movw r24,r0
2559 131c 1124 clr r1
2560 131e 8D96 adiw r24,45
2561 1320 9F93 push r25
2562 1322 8F93 push r24
2563 1324 8091 0000 lds r24,Motor+11
2564 1328 881F rol r24
2565 132a 8827 clr r24
2566 132c 881F rol r24
2567 132e 95E0 ldi r25,lo8(5)
2568 1330 899F mul r24,r25
2569 1332 C001 movw r24,r0
2570 1334 1124 clr r1
2571 1336 8D96 adiw r24,45
2572 1338 9F93 push r25
2573 133a 8F93 push r24
2574 133c 8091 0000 lds r24,Motor+3
2575 1340 881F rol r24
2576 1342 8827 clr r24
2577 1344 881F rol r24
2578 1346 9927 clr r25
2579 1348 880F lsl r24
2580 134a 991F rol r25
2581 134c 880F lsl r24
2582 134e 991F rol r25
2583 1350 8D96 adiw r24,45
2584 1352 9F93 push r25
2585 1354 8F93 push r24
2586 1356 80E0 ldi r24,lo8(__c.80)
2587 1358 90E0 ldi r25,hi8(__c.80)
2588 135a 9F93 push r25
2589 135c 8F93 push r24
2590 135e FF92 push r15
2591 1360 EF92 push r14
2592 1362 E091 0000 lds r30,_printf_P
2593 1366 F091 0000 lds r31,(_printf_P)+1
2594 136a 0995 icall
2595 136c 88E2 ldi r24,lo8(40)
2596 136e 8093 0000 sts DispPtr,r24
2597 1372 8DB7 in r24,__SP_L__
2598 1374 9EB7 in r25,__SP_H__
2599 1376 0C96 adiw r24,12
2600 1378 8DBF out __SP_L__,r24
2601 137a 8091 0000 lds r24,Motor+59
2602 137e 881F rol r24
2603 1380 8827 clr r24
2604 1382 881F rol r24
2605 1384 9BE0 ldi r25,lo8(11)
2606 1386 899F mul r24,r25
2607 1388 C001 movw r24,r0
2608 138a 1124 clr r1
2609 138c 8D96 adiw r24,45
2610 138e 9F93 push r25
2611 1390 8F93 push r24
2612 1392 8091 0000 lds r24,Motor+51
2613 1396 881F rol r24
2614 1398 8827 clr r24
2615 139a 881F rol r24
2616 139c 9AE0 ldi r25,lo8(10)
2617 139e 899F mul r24,r25
2618 13a0 C001 movw r24,r0
2619 13a2 1124 clr r1
2620 13a4 8D96 adiw r24,45
2621 13a6 9F93 push r25
2622 13a8 8F93 push r24
2623 13aa 8091 0000 lds r24,Motor+43
2624 13ae 881F rol r24
2625 13b0 8827 clr r24
2626 13b2 881F rol r24
2627 13b4 99E0 ldi r25,lo8(9)
2628 13b6 899F mul r24,r25
2629 13b8 C001 movw r24,r0
2630 13ba 1124 clr r1
2631 13bc 8D96 adiw r24,45
2632 13be 9F93 push r25
2633 13c0 8F93 push r24
2634 13c2 8091 0000 lds r24,Motor+35
2635 13c6 881F rol r24
2636 13c8 8827 clr r24
2637 13ca 881F rol r24
2638 13cc 9927 clr r25
2639 13ce 23E0 ldi r18,3
2640 13d0 880F 1: lsl r24
2641 13d2 991F rol r25
2642 13d4 2A95 dec r18
2643 13d6 E1F7 brne 1b
2644 13d8 8D96 adiw r24,45
2645 13da 9F93 push r25
2646 13dc 8F93 push r24
2647 13de 80E0 ldi r24,lo8(__c.81)
2648 13e0 90E0 ldi r25,hi8(__c.81)
2649 13e2 9F93 push r25
2650 13e4 8F93 push r24
2651 13e6 FF92 push r15
2652 13e8 EF92 push r14
2653 13ea E091 0000 lds r30,_printf_P
2654 13ee F091 0000 lds r31,(_printf_P)+1
2655 13f2 0995 icall
2656 13f4 8CE3 ldi r24,lo8(60)
2657 13f6 8093 0000 sts DispPtr,r24
2658 13fa 2DB7 in r18,__SP_L__
2659 13fc 3EB7 in r19,__SP_H__
2660 13fe 245F subi r18,lo8(-(12))
2661 1400 3F4F sbci r19,hi8(-(12))
2662 1402 2DBF out __SP_L__,r18
2663 1404 8091 0000 lds r24,Motor+67
2664 1408 881F rol r24
2665 140a 8827 clr r24
2666 140c 881F rol r24
2667 140e 9CE0 ldi r25,lo8(12)
2668 1410 899F mul r24,r25
2669 1412 C001 movw r24,r0
2670 1414 1124 clr r1
2671 1416 8D96 adiw r24,45
2672 1418 9F93 push r25
2673 141a 8F93 push r24
2674 141c 80E0 ldi r24,lo8(__c.82)
2675 141e 90E0 ldi r25,hi8(__c.82)
2676 1420 9F93 push r25
2677 1422 8F93 push r24
2678 1424 FF92 push r15
2679 1426 EF92 push r14
2680 1428 E091 0000 lds r30,_printf_P
2681 142c F091 0000 lds r31,(_printf_P)+1
2682 1430 0995 icall
2683 1432 8091 0000 lds r24,Motor+75
2684 1436 2DB7 in r18,__SP_L__
2685 1438 3EB7 in r19,__SP_H__
2686 143a 2A5F subi r18,lo8(-(6))
2687 143c 3F4F sbci r19,hi8(-(6))
2688 143e 2DBF out __SP_L__,r18
2689 1440 87FF sbrs r24,7
2690 1442 12C0 rjmp .L74
2691 1444 80E4 ldi r24,lo8(64)
2692 1446 8093 0000 sts DispPtr,r24
2693 144a 80E0 ldi r24,lo8(__c.83)
2694 144c 90E0 ldi r25,hi8(__c.83)
2695 144e 9F93 push r25
2696 1450 8F93 push r24
2697 1452 FF92 push r15
2698 1454 EF92 push r14
2699 1456 E091 0000 lds r30,_printf_P
2700 145a F091 0000 lds r31,(_printf_P)+1
2701 145e 0995 icall
2702 1460 0F90 pop __tmp_reg__
2703 1462 0F90 pop __tmp_reg__
2704 1464 0F90 pop __tmp_reg__
2705 1466 0F90 pop __tmp_reg__
2706 .L74:
2707 1468 8091 0000 lds r24,Motor+83
2708 146c 87FF sbrs r24,7
2709 146e 12C0 rjmp .L75
2710 1470 84E4 ldi r24,lo8(68)
2711 1472 8093 0000 sts DispPtr,r24
2712 1476 80E0 ldi r24,lo8(__c.84)
2713 1478 90E0 ldi r25,hi8(__c.84)
2714 147a 9F93 push r25
2715 147c 8F93 push r24
2716 147e 1F93 push r17
2717 1480 0F93 push r16
2718 1482 E091 0000 lds r30,_printf_P
2719 1486 F091 0000 lds r31,(_printf_P)+1
2720 148a 0995 icall
2721 148c 0F90 pop __tmp_reg__
2722 148e 0F90 pop __tmp_reg__
2723 1490 0F90 pop __tmp_reg__
2724 1492 0F90 pop __tmp_reg__
2725 .L75:
2726 1494 8091 0000 lds r24,Motor+91
2727 1498 87FF sbrs r24,7
2728 149a 7CC0 rjmp .L19
2729 149c 88E4 ldi r24,lo8(72)
2730 149e 8093 0000 sts DispPtr,r24
2731 14a2 80E0 ldi r24,lo8(__c.85)
2732 14a4 90E0 ldi r25,hi8(__c.85)
2733 .L91:
2734 14a6 9F93 push r25
2735 14a8 8F93 push r24
2736 14aa 1F93 push r17
2737 14ac 0F93 push r16
2738 .L85:
2739 14ae E091 0000 lds r30,_printf_P
2740 14b2 F091 0000 lds r31,(_printf_P)+1
2741 14b6 0995 icall
2742 14b8 0F90 pop __tmp_reg__
2743 14ba 0F90 pop __tmp_reg__
2744 14bc 0F90 pop __tmp_reg__
2745 14be 0F90 pop __tmp_reg__
2746 14c0 69C0 rjmp .L19
2747 .L77:
2748 14c2 1092 0000 sts DispPtr,__zero_reg__
2749 14c6 80E0 ldi r24,lo8(__c.86)
2750 14c8 90E0 ldi r25,hi8(__c.86)
2751 14ca 9F93 push r25
2752 14cc 8F93 push r24
2753 14ce FF92 push r15
2754 14d0 EF92 push r14
2755 14d2 FE01 movw r30,r28
2756 14d4 0995 icall
2757 14d6 84E1 ldi r24,lo8(20)
2758 14d8 8093 0000 sts DispPtr,r24
2759 14dc 0F90 pop __tmp_reg__
2760 14de 0F90 pop __tmp_reg__
2761 14e0 0F90 pop __tmp_reg__
2762 14e2 0F90 pop __tmp_reg__
2763 14e4 8091 0000 lds r24,FlugMinutenGesamt
2764 14e8 9091 0000 lds r25,(FlugMinutenGesamt)+1
2765 14ec 9F93 push r25
2766 14ee 8F93 push r24
2767 14f0 80E0 ldi r24,lo8(__c.87)
2768 14f2 90E0 ldi r25,hi8(__c.87)
2769 14f4 9F93 push r25
2770 14f6 8F93 push r24
2771 14f8 FF92 push r15
2772 14fa EF92 push r14
2773 14fc E091 0000 lds r30,_printf_P
2774 1500 F091 0000 lds r31,(_printf_P)+1
2775 1504 0995 icall
2776 1506 88E2 ldi r24,lo8(40)
2777 1508 8093 0000 sts DispPtr,r24
2778 150c 8DB7 in r24,__SP_L__
2779 150e 9EB7 in r25,__SP_H__
2780 1510 0696 adiw r24,6
2781 1512 8DBF out __SP_L__,r24
2782 1514 8091 0000 lds r24,FlugMinuten
2783 1518 9091 0000 lds r25,(FlugMinuten)+1
2784 151c 9F93 push r25
2785 151e 8F93 push r24
2786 1520 80E0 ldi r24,lo8(__c.88)
2787 1522 90E0 ldi r25,hi8(__c.88)
2788 1524 9F93 push r25
2789 1526 8F93 push r24
2790 1528 FF92 push r15
2791 152a EF92 push r14
2792 152c E091 0000 lds r30,_printf_P
2793 1530 F091 0000 lds r31,(_printf_P)+1
2794 1534 0995 icall
2795 1536 89E4 ldi r24,lo8(73)
2796 1538 8093 0000 sts DispPtr,r24
2797 153c 2DB7 in r18,__SP_L__
2798 153e 3EB7 in r19,__SP_H__
2799 1540 2A5F subi r18,lo8(-(6))
2800 1542 3F4F sbci r19,hi8(-(6))
2801 1544 2DBF out __SP_L__,r18
2802 1546 80E0 ldi r24,lo8(__c.89)
2803 1548 90E0 ldi r25,hi8(__c.89)
2804 154a 9F93 push r25
2805 154c 8F93 push r24
2806 154e FF92 push r15
2807 1550 EF92 push r14
2808 1552 E091 0000 lds r30,_printf_P
2809 1556 F091 0000 lds r31,(_printf_P)+1
2810 155a 0995 icall
2811 155c 8091 0000 lds r24,RemoteKeys
2812 1560 0F90 pop __tmp_reg__
2813 1562 0F90 pop __tmp_reg__
2814 1564 0F90 pop __tmp_reg__
2815 1566 0F90 pop __tmp_reg__
2816 1568 83FF sbrs r24,3
2817 156a 14C0 rjmp .L19
2818 156c 1092 0000 sts (FlugMinuten)+1,__zero_reg__
2819 1570 1092 0000 sts FlugMinuten,__zero_reg__
2820 1574 60E0 ldi r22,lo8(0)
2821 1576 70E0 ldi r23,hi8(0)
2822 1578 8EE0 ldi r24,lo8(14)
2823 157a 90E0 ldi r25,hi8(14)
2824 157c 0E94 0000 call SetParamWord
2825 1580 09C0 rjmp .L19
2826 .L79:
2827 1582 8091 0000 lds r24,MaxMenue
2828 1586 2817 cp r18,r24
2829 1588 19F4 brne .L80
2830 158a 2150 subi r18,lo8(-(-1))
2831 158c 2093 0000 sts MaxMenue,r18
2832 .L80:
2833 1590 1092 0000 sts MenuePunkt,__zero_reg__
2834 .L19:
2835 1594 1092 0000 sts RemoteKeys,__zero_reg__
2836 /* epilogue: frame size=0 */
2837 1598 E6E0 ldi r30,6
2838 159a CDB7 in r28,__SP_L__
2839 159c DEB7 in r29,__SP_H__
2840 159e 0C94 0000 jmp __epilogue_restores__+24
2841 /* epilogue end (size=5) */
2842 /* function Menu size 2783 (2772) */
2844 /* File "menu.c": code 2803 = 0x0af3 (2790), prologues 6, epilogues 7 */
DEFINED SYMBOLS
*ABS*:00000000 menu.c
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:15 .bss:00000000 RemoteKeys
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:21 .bss:00000001 MenuePunkt
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:27 .data:00000000 MaxMenue
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:34 .bss:00000002 DispPtr
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:40 .data:00000001 DisplayBuff
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:46 .text:00000000 LcdClear
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:65 .text:00000012 Menu_Putchar
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:84 .progmem.data:00000000 __c.0
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:88 .progmem.data:00000005 __c.1
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:92 .progmem.data:0000000a __c.2
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:96 .progmem.data:0000001a __c.3
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:100 .progmem.data:00000038 __c.4
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:104 .progmem.data:00000046 __c.5
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:108 .progmem.data:0000005d __c.6
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:112 .progmem.data:00000072 __c.7
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:116 .progmem.data:0000007f __c.8
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:120 .progmem.data:0000008c __c.9
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:124 .progmem.data:00000099 __c.10
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:128 .progmem.data:000000a6 __c.11
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:132 .progmem.data:000000b3 __c.12
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:136 .progmem.data:000000c0 __c.13
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:140 .progmem.data:000000cf __c.14
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:144 .progmem.data:000000d8 __c.15
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:148 .progmem.data:000000e7 __c.16
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:152 .progmem.data:000000f0 __c.17
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:156 .progmem.data:000000fd __c.18
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:160 .progmem.data:0000010c __c.19
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:164 .progmem.data:0000011b __c.20
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:168 .progmem.data:0000012a __c.21
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:172 .progmem.data:0000013a __c.22
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:176 .progmem.data:0000014a __c.23
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:180 .progmem.data:0000015a __c.24
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:184 .progmem.data:0000016a __c.25
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:188 .progmem.data:0000017a __c.26
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:192 .progmem.data:0000018a __c.27
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:196 .progmem.data:0000019a __c.28
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:200 .progmem.data:000001aa __c.29
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:204 .progmem.data:000001b8 __c.30
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:208 .progmem.data:000001c9 __c.31
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:212 .progmem.data:000001da __c.32
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:216 .progmem.data:000001e8 __c.33
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:220 .progmem.data:000001fa __c.34
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:224 .progmem.data:0000020c __c.35
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:228 .progmem.data:0000021b __c.36
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:232 .progmem.data:0000022f __c.37
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:236 .progmem.data:00000243 __c.38
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:240 .progmem.data:00000257 __c.39
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:244 .progmem.data:00000264 __c.40
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:248 .progmem.data:00000273 __c.41
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:252 .progmem.data:00000282 __c.42
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:256 .progmem.data:00000291 __c.43
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:260 .progmem.data:000002a5 __c.44
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:264 .progmem.data:000002b9 __c.45
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:268 .progmem.data:000002c9 __c.46
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:272 .progmem.data:000002db __c.47
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:276 .progmem.data:000002e4 __c.48
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:280 .progmem.data:000002f4 __c.49
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:284 .progmem.data:00000304 __c.50
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:288 .progmem.data:00000314 __c.51
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:292 .progmem.data:0000031c __c.52
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:296 .progmem.data:0000032a __c.53
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:300 .progmem.data:00000338 __c.54
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:304 .progmem.data:00000346 __c.55
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:308 .progmem.data:00000352 __c.56
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:312 .progmem.data:0000035e __c.57
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:316 .progmem.data:0000036a __c.58
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:320 .progmem.data:00000376 __c.59
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:324 .progmem.data:00000382 __c.60
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:328 .progmem.data:0000038e __c.61
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:332 .progmem.data:0000039a __c.62
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:336 .progmem.data:000003a6 __c.63
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:340 .progmem.data:000003ae __c.64
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:344 .progmem.data:000003bc __c.65
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:348 .progmem.data:000003ca __c.66
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:352 .progmem.data:000003d8 __c.67
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:356 .progmem.data:000003e8 __c.68
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:360 .progmem.data:000003f8 __c.69
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:364 .progmem.data:00000408 __c.70
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:368 .progmem.data:00000418 __c.71
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:372 .progmem.data:00000428 __c.72
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:376 .progmem.data:00000439 __c.73
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:380 .progmem.data:0000044a __c.74
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:384 .progmem.data:0000045b __c.75
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:388 .progmem.data:0000046a __c.76
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:392 .progmem.data:0000047b __c.77
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:396 .progmem.data:0000048c __c.78
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:400 .progmem.data:0000049d __c.79
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:404 .progmem.data:000004ac __c.80
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:408 .progmem.data:000004c0 __c.81
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:412 .progmem.data:000004d4 __c.82
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:416 .progmem.data:000004e5 __c.83
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:420 .progmem.data:000004e8 __c.84
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:424 .progmem.data:000004eb __c.85
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:428 .progmem.data:000004ee __c.86
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:432 .progmem.data:000004fc __c.87
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:436 .progmem.data:00000509 __c.88
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:440 .progmem.data:00000516 __c.89
C:\Users\Arthur-P\AppData\Local\Temp/ccU3aaaa.s:445 .text:00000028 Menu
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
_printf_P
__tablejump2__
PlatinenVersion
__udivmodqi4
Mixer
GetActiveParamSet
VersionInfo
MissingMotor
I2CTimeout
EE_Parameter
HoehenWert
__divmodsi4
SollHoehe
MessLuftdruck
IntegralNick
IntegralRoll
KompassValue
PPM_in
AdNeutralNick
AdWertNick
AdNeutralRoll
AdWertRoll
AdNeutralGier
AdWertGier
AnalogOffsetNick
AnalogOffsetRoll
AnalogOffsetGier
NeutralAccX
AdWertAccNick
NeutralAccY
AdWertAccRoll
NeutralAccZ
AdWertAccHoch
UBat
__divmodhi4
Capacity
__udivmodhi4
SenderOkay
Channels
KompassRichtung
KompassStartwert
Poti
Parameter_ServoNickControl
ServoNickValue
ExternControl
Motor
FlugMinutenGesamt
FlugMinuten
SetParamWord
__epilogue_restores__
/branches/V0.80d-Arthur-P/mymath.c
0,0 → 1,41
#include <stdlib.h>
#include <avr/pgmspace.h>
#include "mymath.h"
 
// discrete mathematics
 
// Sinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
const uint16_t pgm_sinlookup[91] PROGMEM = {0, 143, 286, 429, 571, 714, 856, 998, 1140, 1282, 1423, 1563, 1703, 1843, 1982, 2120, 2258, 2395, 2531, 2667, 2802, 2936, 3069, 3201, 3332, 3462, 3591, 3719, 3846, 3972, 4096, 4219, 4341, 4462, 4581, 4699, 4815, 4930, 5043, 5155, 5266, 5374, 5482, 5587, 5691, 5793, 5893, 5991, 6088, 6183, 6275, 6366, 6455, 6542, 6627, 6710, 6791, 6870, 6947, 7022, 7094, 7165, 7233, 7299, 7363, 7424, 7484, 7541, 7595, 7648, 7698, 7746, 7791, 7834, 7875, 7913, 7949, 7982, 8013, 8041, 8068, 8091, 8112, 8131, 8147, 8161, 8172, 8181, 8187, 8191, 8192};
 
int16_t c_sin_8192(int16_t angle)
{
int8_t m,n;
int16_t sinus;
 
// avoid negative angles
if (angle < 0)
{
m = -1;
angle = abs(angle);
}
else m = +1;
 
// fold angle to intervall 0 to 359
angle %= 360;
 
// check quadrant
if (angle <= 90) n=1; // first quadrant
else if ((angle > 90) && (angle <= 180)) {angle = 180 - angle; n = 1;} // second quadrant
else if ((angle > 180) && (angle <= 270)) {angle = angle - 180; n = -1;} // third quadrant
else {angle = 360 - angle; n = -1;} //fourth quadrant
// get lookup value
sinus = pgm_read_word(&pgm_sinlookup[angle]);
// calculate sinus value
return (sinus * m * n);
}
 
// Cosinus with argument in degree at an angular resolution of 1 degree and a discretisation of 13 bit.
int16_t c_cos_8192(int16_t angle)
{
return (c_sin_8192(90 - angle));
}
/branches/V0.80d-Arthur-P/mymath.d
0,0 → 1,0
mymath.o mymath.d : mymath.c mymath.h
/branches/V0.80d-Arthur-P/mymath.h
0,0 → 1,10
#ifndef _MYMATH_H
#define _MYMATH_H
 
#include <inttypes.h>
 
extern int16_t c_sin_8192(int16_t angle);
extern int16_t c_cos_8192(int16_t angle);
extern int16_t c_atan2(int16_t y, int16_t x);
extern uint32_t c_sqrt(uint32_t a);
#endif // _MYMATH_H
/branches/V0.80d-Arthur-P/mymath.lst
0,0 → 1,226
1 .file "mymath.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global pgm_sinlookup
11 .section .progmem.data,"a",@progbits
14 pgm_sinlookup:
15 0000 0000 .word 0
16 0002 8F00 .word 143
17 0004 1E01 .word 286
18 0006 AD01 .word 429
19 0008 3B02 .word 571
20 000a CA02 .word 714
21 000c 5803 .word 856
22 000e E603 .word 998
23 0010 7404 .word 1140
24 0012 0205 .word 1282
25 0014 8F05 .word 1423
26 0016 1B06 .word 1563
27 0018 A706 .word 1703
28 001a 3307 .word 1843
29 001c BE07 .word 1982
30 001e 4808 .word 2120
31 0020 D208 .word 2258
32 0022 5B09 .word 2395
33 0024 E309 .word 2531
34 0026 6B0A .word 2667
35 0028 F20A .word 2802
36 002a 780B .word 2936
37 002c FD0B .word 3069
38 002e 810C .word 3201
39 0030 040D .word 3332
40 0032 860D .word 3462
41 0034 070E .word 3591
42 0036 870E .word 3719
43 0038 060F .word 3846
44 003a 840F .word 3972
45 003c 0010 .word 4096
46 003e 7B10 .word 4219
47 0040 F510 .word 4341
48 0042 6E11 .word 4462
49 0044 E511 .word 4581
50 0046 5B12 .word 4699
51 0048 CF12 .word 4815
52 004a 4213 .word 4930
53 004c B313 .word 5043
54 004e 2314 .word 5155
55 0050 9214 .word 5266
56 0052 FE14 .word 5374
57 0054 6A15 .word 5482
58 0056 D315 .word 5587
59 0058 3B16 .word 5691
60 005a A116 .word 5793
61 005c 0517 .word 5893
62 005e 6717 .word 5991
63 0060 C817 .word 6088
64 0062 2718 .word 6183
65 0064 8318 .word 6275
66 0066 DE18 .word 6366
67 0068 3719 .word 6455
68 006a 8E19 .word 6542
69 006c E319 .word 6627
70 006e 361A .word 6710
71 0070 871A .word 6791
72 0072 D61A .word 6870
73 0074 231B .word 6947
74 0076 6E1B .word 7022
75 0078 B61B .word 7094
76 007a FD1B .word 7165
77 007c 411C .word 7233
78 007e 831C .word 7299
79 0080 C31C .word 7363
80 0082 001D .word 7424
81 0084 3C1D .word 7484
82 0086 751D .word 7541
83 0088 AB1D .word 7595
84 008a E01D .word 7648
85 008c 121E .word 7698
86 008e 421E .word 7746
87 0090 6F1E .word 7791
88 0092 9A1E .word 7834
89 0094 C31E .word 7875
90 0096 E91E .word 7913
91 0098 0D1F .word 7949
92 009a 2E1F .word 7982
93 009c 4D1F .word 8013
94 009e 691F .word 8041
95 00a0 841F .word 8068
96 00a2 9B1F .word 8091
97 00a4 B01F .word 8112
98 00a6 C31F .word 8131
99 00a8 D31F .word 8147
100 00aa E11F .word 8161
101 00ac EC1F .word 8172
102 00ae F51F .word 8181
103 00b0 FB1F .word 8187
104 00b2 FF1F .word 8191
105 00b4 0020 .word 8192
106 .text
107 .global c_sin_8192
109 c_sin_8192:
110 /* prologue: frame size=0 */
111 0000 CF93 push r28
112 /* prologue end (size=1) */
113 0002 FC01 movw r30,r24
114 0004 97FF sbrs r25,7
115 0006 05C0 rjmp .L2
116 0008 CFEF ldi r28,lo8(-1)
117 000a F095 com r31
118 000c E195 neg r30
119 000e FF4F sbci r31,lo8(-1)
120 0010 01C0 rjmp .L4
121 .L2:
122 0012 C1E0 ldi r28,lo8(1)
123 .L4:
124 0014 28E6 ldi r18,lo8(360)
125 0016 31E0 ldi r19,hi8(360)
126 0018 CF01 movw r24,r30
127 001a B901 movw r22,r18
128 001c 0E94 0000 call __divmodhi4
129 0020 FC01 movw r30,r24
130 0022 8B35 cpi r24,91
131 0024 9105 cpc r25,__zero_reg__
132 0026 54F0 brlt .L12
133 0028 8B55 subi r24,lo8(-(-91))
134 002a 9040 sbci r25,hi8(-(-91))
135 002c 8A35 cpi r24,90
136 002e 9105 cpc r25,__zero_reg__
137 0030 38F4 brsh .L7
138 0032 84EB ldi r24,lo8(180)
139 0034 90E0 ldi r25,hi8(180)
140 0036 8E1B sub r24,r30
141 0038 9F0B sbc r25,r31
142 003a FC01 movw r30,r24
143 .L12:
144 003c 41E0 ldi r20,lo8(1)
145 003e 0DC0 rjmp .L6
146 .L7:
147 0040 CF01 movw r24,r30
148 0042 855B subi r24,lo8(-(-181))
149 0044 9040 sbci r25,hi8(-(-181))
150 0046 8A35 cpi r24,90
151 0048 9105 cpc r25,__zero_reg__
152 004a 18F4 brsh .L9
153 004c E45B subi r30,lo8(-(-180))
154 004e F040 sbci r31,hi8(-(-180))
155 0050 03C0 rjmp .L11
156 .L9:
157 0052 2E1B sub r18,r30
158 0054 3F0B sbc r19,r31
159 0056 F901 movw r30,r18
160 .L11:
161 0058 4FEF ldi r20,lo8(-1)
162 .L6:
163 005a EE0F add r30,r30
164 005c FF1F adc r31,r31
165 005e E050 subi r30,lo8(-(pgm_sinlookup))
166 0060 F040 sbci r31,hi8(-(pgm_sinlookup))
167 /* #APP */
168 0062 2591 lpm r18, Z+
169 0064 3491 lpm r19, Z
170
171 /* #NOAPP */
172 0066 8C2F mov r24,r28
173 0068 9927 clr r25
174 006a 87FD sbrc r24,7
175 006c 9095 com r25
176 006e 289F mul r18,r24
177 0070 B001 movw r22,r0
178 0072 299F mul r18,r25
179 0074 700D add r23,r0
180 0076 389F mul r19,r24
181 0078 700D add r23,r0
182 007a 1124 clr r1
183 007c 842F mov r24,r20
184 007e 9927 clr r25
185 0080 87FD sbrc r24,7
186 0082 9095 com r25
187 0084 689F mul r22,r24
188 0086 A001 movw r20,r0
189 0088 699F mul r22,r25
190 008a 500D add r21,r0
191 008c 789F mul r23,r24
192 008e 500D add r21,r0
193 0090 1124 clr r1
194 0092 CA01 movw r24,r20
195 /* epilogue: frame size=0 */
196 0094 CF91 pop r28
197 0096 0895 ret
198 /* epilogue end (size=2) */
199 /* function c_sin_8192 size 80 (77) */
201 .global c_cos_8192
203 c_cos_8192:
204 /* prologue: frame size=0 */
205 /* prologue end (size=0) */
206 0098 2AE5 ldi r18,lo8(90)
207 009a 30E0 ldi r19,hi8(90)
208 009c 281B sub r18,r24
209 009e 390B sbc r19,r25
210 00a0 C901 movw r24,r18
211 00a2 0E94 0000 call c_sin_8192
212 /* epilogue: frame size=0 */
213 00a6 0895 ret
214 /* epilogue end (size=1) */
215 /* function c_cos_8192 size 8 (7) */
217 /* File "mymath.c": code 88 = 0x0058 ( 84), prologues 1, epilogues 3 */
DEFINED SYMBOLS
*ABS*:00000000 mymath.c
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:14 .progmem.data:00000000 pgm_sinlookup
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:109 .text:00000000 c_sin_8192
C:\Users\Arthur-P\AppData\Local\Temp/ccW6aaaa.s:203 .text:00000098 c_cos_8192
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__divmodhi4
/branches/V0.80d-Arthur-P/old_macros.h
0,0 → 1,47
/*
For backwards compatibility only.
Ingo Busker ingo@mikrocontroller.com
*/
 
#ifndef cbi
#define cbi(sfr, bit) (_SFR_BYTE(sfr) &= ~_BV(bit))
#endif
 
#ifndef sbi
#define sbi(sfr, bit) (_SFR_BYTE(sfr) |= _BV(bit))
#endif
 
#ifndef inb
#define inb(sfr) _SFR_BYTE(sfr)
#endif
 
#ifndef outb
#define outb(sfr, val) (_SFR_BYTE(sfr) = (val))
#endif
 
#ifndef inw
#define inw(sfr) _SFR_WORD(sfr)
#endif
 
#ifndef outw
#define outw(sfr, val) (_SFR_WORD(sfr) = (val))
#endif
 
#ifndef outp
#define outp(val, sfr) outb(sfr, val)
#endif
 
#ifndef inp
#define inp(sfr) inb(sfr)
#endif
 
#ifndef BV
#define BV(bit) _BV(bit)
#endif
 
 
#ifndef PRG_RDB
#define PRG_RDB pgm_read_byte
#endif
 
/branches/V0.80d-Arthur-P/printf_P.h
0,0 → 1,69
// Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist nicht von der Lizenz für den MikroKopter-Teil unterstellt
 
/*
Copyright (C) 1993 Free Software Foundation
 
This file is part of the GNU IO Library. This library is free
software; you can redistribute it and/or modify it under the
terms of the GNU General Public License as published by the
Free Software Foundation; either version 2, or (at your option)
any later version.
 
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
 
You should have received a copy of the GNU General Public License
along with this library; see the file COPYING. If not, write to the Free
Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
As a special exception, if you link this library with files
compiled with a GNU compiler to produce an executable, this does not cause
the resulting executable to be covered by the GNU General Public License.
This exception does not however invalidate any other reasons why
the executable file might be covered by the GNU General Public License. */
 
/*
* Copyright (c) 1990 Regents of the University of California.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* 3. [rescinded 22 July 1999]
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
 
/******************************************************************************/
#ifndef _PRINTF_P_H_
#define _PRINTF_P_H_
 
#include <avr/pgmspace.h>
 
// function pointer to external callback function
typedef void (*pVoidFnctChar) (char );
typedef void (*pVoidFnct_pVoidFnctChar_const_fmt) (pVoidFnctChar, char const *fmt0, ...);
extern pVoidFnct_pVoidFnctChar_const_fmt _printf_P;
 
 
#endif //_PRINTF_P_H_
/branches/V0.80d-Arthur-P/rc.c
0,0 → 1,217
/*#######################################################################################
Decodieren eines RC Summen Signals
#######################################################################################*/
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include "rc.h"
#include "main.h"
// Achtung: ACT_S3D_SUMMENSIGNAL wird in der Main.h gesetzt
 
volatile int PPM_in[26];
volatile int PPM_diff[26]; // das diffenzierte Stick-Signal
volatile char Channels,tmpChannels = 0;
volatile unsigned char NewPpmData = 1;
 
//############################################################################
//zum decodieren des PPM-Signals wird Timer1 mit seiner Input
//Capture Funktion benutzt:
void rc_sum_init (void)
//############################################################################
{
unsigned char i;
for(i=0;i<26;i++)
{
PPM_in[i] = 0;
PPM_diff[i] = 0;
}
 
AdNeutralGier = 0;
AdNeutralRoll = 0;
AdNeutralNick = 0;
return;
}
 
#ifndef ACT_S3D_SUMMENSIGNAL
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
ISR(TIMER1_CAPT_vect)
//############################################################################
{
if(!(EE_Parameter.ExtraConfig & CFG_SENSITIVE_RC))
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
{
Channels = index;
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687))
{
signal -= 466;
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10; else SenderOkay = 200;}
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
}
index++;
if(PlatinenVersion < 20)
{
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
}
}
}
else
{
static unsigned int AltICR=0;
static int ppm_in[13];
static int ppm_diff[13];
static int old_ppm_in[13];
static int old_ppm_diff[13];
signed int signal = 0,tmp;
static unsigned char index, okay_cnt = 0;
signal = (unsigned int) ICR1 - AltICR;
AltICR = ICR1;
//Syncronisationspause? (3.52 ms < signal < 25.6 ms)
if((signal > 1100) && (signal < 8000))
{
tmpChannels = index;
if(tmpChannels >= 4 && Channels == tmpChannels)
{
if(okay_cnt > 10)
{
NewPpmData = 0; // Null bedeutet: Neue Daten
for(index = 0; index < 13; index++)
{
if(okay_cnt > 30)
{
old_ppm_in[index] = PPM_in[index];
old_ppm_diff[index] = PPM_diff[index];
}
PPM_in[index] = ppm_in[index];
PPM_diff[index] = ppm_diff[index];
}
}
if(okay_cnt < 255) okay_cnt++;
}
else
{
if(okay_cnt > 100) okay_cnt = 10; else okay_cnt = 0;
ROT_ON;
}
index = 1;
if(!MotorenEin) Channels = tmpChannels;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687))
{
signal -= 466;
// Stabiles Signal
if((abs(signal - ppm_in[index]) < 6))
{
if(okay_cnt > 25) SenderOkay += 10;
else
if(okay_cnt > 10) SenderOkay += 2;
if(SenderOkay > 200) SenderOkay = 200;
}
tmp = (3 * (ppm_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 190) ppm_diff[index] = ((tmp - ppm_in[index]) / 3) * 3;
else ppm_diff[index] = 0;
ppm_in[index] = tmp;
}
else ROT_ON;
if(PlatinenVersion < 20)
{
if(index == 5) J3High; else J3Low; // Servosignal an J3 anlegen
if(index == 6) J4High; else J4Low; // Servosignal an J4 anlegen
if(index == 7) J5High; else J5Low; // Servosignal an J5 anlegen
}
}
if(index < 20) index++;
else
if(index == 20)
{
unsigned char i;
ROT_ON;
index = 30;
for(i=0;i<13;i++) // restore from older data
{
PPM_in[i] = old_ppm_in[i];
PPM_diff[i] = 0;
// okay_cnt /= 2;
}
}
}
}
}
 
#else
//############################################################################
//Diese Routine startet und inizialisiert den Timer für RC
ISR(TIMER1_CAPT_vect)
//############################################################################
 
{
static unsigned int AltICR=0;
signed int signal = 0,tmp;
static int index;
 
signal = (unsigned int) ICR1 - AltICR;
signal /= 2;
AltICR = ICR1;
//Syncronisationspause?
if((signal > 1100*2) && (signal < 8000*2))
{
if(index >= 4) NewPpmData = 0; // Null bedeutet: Neue Daten
index = 1;
}
else
{
if(index < 13)
{
if((signal > 250) && (signal < 687*2))
{
signal -= 962;
// Stabiles Signal
if(abs(signal - PPM_in[index]) < 6) { if(SenderOkay < 200) SenderOkay += 10;}
tmp = (3 * (PPM_in[index]) + signal) / 4;
if(tmp > signal+1) tmp--; else
if(tmp < signal-1) tmp++;
if(SenderOkay >= 195) PPM_diff[index] = ((tmp - PPM_in[index]) / 3) * 3;
else PPM_diff[index] = 0;
PPM_in[index] = tmp;
}
index++;
}
}
}
#endif
 
/branches/V0.80d-Arthur-P/rc.d
0,0 → 1,3
rc.o rc.d : rc.c rc.h main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/rc.h
0,0 → 1,31
/*#######################################################################################
Derkodieren eines RC Summen Signals
#######################################################################################*/
 
#ifndef _RC_H
#define _RC_H
 
#if defined (__AVR_ATmega32__)
#define TIMER_TEILER CK64
#define TIMER_RELOAD_VALUE 250
#endif
 
#if defined (__AVR_ATmega644__)
#define TIMER_RELOAD_VALUE 250
#endif
 
#if defined (__AVR_ATmega644P__)
#define TIMER_RELOAD_VALUE 250
#endif
 
#define GAS PPM_in[2]
 
 
extern void rc_sum_init (void);
 
extern volatile int PPM_in[26];
extern volatile int PPM_diff[26]; // das diffenzierte Stick-Signal
extern volatile unsigned char NewPpmData;
extern volatile char Channels,tmpChannels;
 
#endif //_RC_H
/branches/V0.80d-Arthur-P/rc.lst
0,0 → 1,690
1 .file "rc.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global NewPpmData
11 .data
14 NewPpmData:
15 0000 01 .byte 1
16 .global tmpChannels
17 .global tmpChannels
18 .section .bss
21 tmpChannels:
22 0000 00 .skip 1,0
23 .text
24 .global rc_sum_init
26 rc_sum_init:
27 /* prologue: frame size=0 */
28 /* prologue end (size=0) */
29 0000 89E1 ldi r24,lo8(25)
30 0002 A0E0 ldi r26,lo8(PPM_diff)
31 0004 B0E0 ldi r27,hi8(PPM_diff)
32 0006 E0E0 ldi r30,lo8(PPM_in)
33 0008 F0E0 ldi r31,hi8(PPM_in)
34 .L5:
35 000a 1182 std Z+1,__zero_reg__
36 000c 1082 st Z,__zero_reg__
37 000e 3296 adiw r30,2
38 0010 1196 adiw r26,1
39 0012 1C92 st X,__zero_reg__
40 0014 1E92 st -X,__zero_reg__
41 0016 1296 adiw r26,2
42 0018 8150 subi r24,lo8(-(-1))
43 001a 87FF sbrs r24,7
44 001c F6CF rjmp .L5
45 001e 1092 0000 sts (AdNeutralGier)+1,__zero_reg__
46 0022 1092 0000 sts AdNeutralGier,__zero_reg__
47 0026 1092 0000 sts (AdNeutralRoll)+1,__zero_reg__
48 002a 1092 0000 sts AdNeutralRoll,__zero_reg__
49 002e 1092 0000 sts (AdNeutralNick)+1,__zero_reg__
50 0032 1092 0000 sts AdNeutralNick,__zero_reg__
51 /* epilogue: frame size=0 */
52 0036 0895 ret
53 /* epilogue end (size=1) */
54 /* function rc_sum_init size 28 (27) */
56 .lcomm AltICR.0,2
57 .lcomm index.1,2
58 .lcomm AltICR.2,2
59 .lcomm ppm_in.3,26
60 .lcomm ppm_diff.4,26
61 .lcomm old_ppm_in.5,26
62 .lcomm old_ppm_diff.6,26
63 .lcomm index.7,1
64 .lcomm okay_cnt.8,1
65 .global __vector_12
67 __vector_12:
68 /* prologue: frame size=0 */
69 0038 1F92 push __zero_reg__
70 003a 0F92 push __tmp_reg__
71 003c 0FB6 in __tmp_reg__,__SREG__
72 003e 0F92 push __tmp_reg__
73 0040 1124 clr __zero_reg__
74 0042 0F93 push r16
75 0044 1F93 push r17
76 0046 2F93 push r18
77 0048 3F93 push r19
78 004a 4F93 push r20
79 004c 5F93 push r21
80 004e 6F93 push r22
81 0050 7F93 push r23
82 0052 8F93 push r24
83 0054 9F93 push r25
84 0056 AF93 push r26
85 0058 BF93 push r27
86 005a CF93 push r28
87 005c DF93 push r29
88 005e EF93 push r30
89 0060 FF93 push r31
90 /* prologue end (size=21) */
91 0062 8091 0000 lds r24,EE_Parameter+99
92 0066 82FD sbrc r24,2
93 0068 CFC0 rjmp .L9
94 006a 4091 8600 lds r20,134
95 006e 5091 8700 lds r21,(134)+1
96 0072 8091 0000 lds r24,AltICR.0
97 0076 9091 0000 lds r25,(AltICR.0)+1
98 007a 481B sub r20,r24
99 007c 590B sbc r21,r25
100 007e 8091 8600 lds r24,134
101 0082 9091 8700 lds r25,(134)+1
102 0086 9093 0000 sts (AltICR.0)+1,r25
103 008a 8093 0000 sts AltICR.0,r24
104 008e CA01 movw r24,r20
105 0090 8D54 subi r24,lo8(-(-1101))
106 0092 9440 sbci r25,hi8(-(-1101))
107 0094 A091 0000 lds r26,index.1
108 0098 B091 0000 lds r27,(index.1)+1
109 009c 835F subi r24,lo8(6899)
110 009e 9A41 sbci r25,hi8(6899)
111 00a0 78F4 brsh .L10
112 00a2 8091 0000 lds r24,index.1
113 00a6 8093 0000 sts Channels,r24
114 00aa 1497 sbiw r26,4
115 00ac 14F0 brlt .L11
116 00ae 1092 0000 sts NewPpmData,__zero_reg__
117 .L11:
118 00b2 81E0 ldi r24,lo8(1)
119 00b4 90E0 ldi r25,hi8(1)
120 00b6 9093 0000 sts (index.1)+1,r25
121 00ba 8093 0000 sts index.1,r24
122 00be 07C2 rjmp .L8
123 .L10:
124 00c0 AD30 cpi r26,13
125 00c2 B105 cpc r27,__zero_reg__
126 00c4 0CF0 brlt .+2
127 00c6 03C2 rjmp .L8
128 00c8 CA01 movw r24,r20
129 00ca 8B5F subi r24,lo8(-(-251))
130 00cc 9040 sbci r25,hi8(-(-251))
131 00ce 845B subi r24,lo8(436)
132 00d0 9140 sbci r25,hi8(436)
133 00d2 08F0 brlo .+2
134 00d4 74C0 rjmp .L14
135 00d6 425D subi r20,lo8(-(-466))
136 00d8 5140 sbci r21,hi8(-(-466))
137 00da FD01 movw r30,r26
138 00dc EA0F add r30,r26
139 00de FB1F adc r31,r27
140 00e0 E050 subi r30,lo8(-(PPM_in))
141 00e2 F040 sbci r31,hi8(-(PPM_in))
142 00e4 8081 ld r24,Z
143 00e6 9181 ldd r25,Z+1
144 00e8 FA01 movw r30,r20
145 00ea E81B sub r30,r24
146 00ec F90B sbc r31,r25
147 00ee CF01 movw r24,r30
148 00f0 F7FF sbrs r31,7
149 00f2 03C0 rjmp .L16
150 00f4 9095 com r25
151 00f6 8195 neg r24
152 00f8 9F4F sbci r25,lo8(-1)
153 .L16:
154 00fa 0697 sbiw r24,6
155 00fc 5CF4 brge .L15
156 00fe 8091 0000 lds r24,SenderOkay
157 0102 883C cpi r24,lo8(-56)
158 0104 20F4 brsh .L17
159 0106 8091 0000 lds r24,SenderOkay
160 010a 865F subi r24,lo8(-(10))
161 010c 01C0 rjmp .L87
162 .L17:
163 010e 88EC ldi r24,lo8(-56)
164 .L87:
165 0110 8093 0000 sts SenderOkay,r24
166 .L15:
167 0114 FD01 movw r30,r26
168 0116 EA0F add r30,r26
169 0118 FB1F adc r31,r27
170 011a E050 subi r30,lo8(-(PPM_in))
171 011c F040 sbci r31,hi8(-(PPM_in))
172 011e 8081 ld r24,Z
173 0120 9181 ldd r25,Z+1
174 0122 9C01 movw r18,r24
175 0124 220F lsl r18
176 0126 331F rol r19
177 0128 280F add r18,r24
178 012a 391F adc r19,r25
179 012c 240F add r18,r20
180 012e 351F adc r19,r21
181 0130 37FF sbrs r19,7
182 0132 02C0 rjmp .L19
183 0134 2D5F subi r18,lo8(-(3))
184 0136 3F4F sbci r19,hi8(-(3))
185 .L19:
186 0138 E901 movw r28,r18
187 013a D595 asr r29
188 013c C795 ror r28
189 013e D595 asr r29
190 0140 C795 ror r28
191 0142 CA01 movw r24,r20
192 0144 0196 adiw r24,1
193 0146 8C17 cp r24,r28
194 0148 9D07 cpc r25,r29
195 014a 14F4 brge .L20
196 014c 2197 sbiw r28,1
197 014e 06C0 rjmp .L21
198 .L20:
199 0150 4150 subi r20,lo8(-(-1))
200 0152 5040 sbci r21,hi8(-(-1))
201 0154 C417 cp r28,r20
202 0156 D507 cpc r29,r21
203 0158 0CF4 brge .L21
204 015a 2196 adiw r28,1
205 .L21:
206 015c 8091 0000 lds r24,SenderOkay
207 0160 833C cpi r24,lo8(-61)
208 0162 E0F0 brlo .L23
209 0164 8D01 movw r16,r26
210 0166 0A0F add r16,r26
211 0168 1B1F adc r17,r27
212 016a F801 movw r30,r16
213 016c E050 subi r30,lo8(-(PPM_in))
214 016e F040 sbci r31,hi8(-(PPM_in))
215 0170 8081 ld r24,Z
216 0172 9181 ldd r25,Z+1
217 0174 9E01 movw r18,r28
218 0176 281B sub r18,r24
219 0178 390B sbc r19,r25
220 017a C901 movw r24,r18
221 017c 63E0 ldi r22,lo8(3)
222 017e 70E0 ldi r23,hi8(3)
223 0180 0E94 0000 call __divmodhi4
224 0184 CB01 movw r24,r22
225 0186 880F lsl r24
226 0188 991F rol r25
227 018a 860F add r24,r22
228 018c 971F adc r25,r23
229 018e 0050 subi r16,lo8(-(PPM_diff))
230 0190 1040 sbci r17,hi8(-(PPM_diff))
231 0192 D801 movw r26,r16
232 0194 1196 adiw r26,1
233 0196 9C93 st X,r25
234 0198 8E93 st -X,r24
235 019a 07C0 rjmp .L24
236 .L23:
237 019c AA0F add r26,r26
238 019e BB1F adc r27,r27
239 01a0 A050 subi r26,lo8(-(PPM_diff))
240 01a2 B040 sbci r27,hi8(-(PPM_diff))
241 01a4 1196 adiw r26,1
242 01a6 1C92 st X,__zero_reg__
243 01a8 1E92 st -X,__zero_reg__
244 .L24:
245 01aa E091 0000 lds r30,index.1
246 01ae F091 0000 lds r31,(index.1)+1
247 01b2 EE0F add r30,r30
248 01b4 FF1F adc r31,r31
249 01b6 E050 subi r30,lo8(-(PPM_in))
250 01b8 F040 sbci r31,hi8(-(PPM_in))
251 01ba D183 std Z+1,r29
252 01bc C083 st Z,r28
253 .L14:
254 01be 2091 0000 lds r18,index.1
255 01c2 3091 0000 lds r19,(index.1)+1
256 01c6 2F5F subi r18,lo8(-(1))
257 01c8 3F4F sbci r19,hi8(-(1))
258 01ca 3093 0000 sts (index.1)+1,r19
259 01ce 2093 0000 sts index.1,r18
260 01d2 8091 0000 lds r24,PlatinenVersion
261 01d6 8431 cpi r24,lo8(20)
262 01d8 08F0 brlo .+2
263 01da 79C1 rjmp .L8
264 01dc 2530 cpi r18,5
265 01de 3105 cpc r19,__zero_reg__
266 01e0 11F4 brne .L26
267 01e2 5D9A sbi 43-0x20,5
268 01e4 01C0 rjmp .L27
269 .L26:
270 01e6 5D98 cbi 43-0x20,5
271 .L27:
272 01e8 8091 0000 lds r24,index.1
273 01ec 9091 0000 lds r25,(index.1)+1
274 01f0 8630 cpi r24,6
275 01f2 9105 cpc r25,__zero_reg__
276 01f4 11F4 brne .L28
277 01f6 5C9A sbi 43-0x20,4
278 01f8 01C0 rjmp .L29
279 .L28:
280 01fa 5C98 cbi 43-0x20,4
281 .L29:
282 01fc 0797 sbiw r24,7
283 01fe 11F4 brne .L30
284 0200 5B9A sbi 43-0x20,3
285 0202 65C1 rjmp .L8
286 .L30:
287 0204 5B98 cbi 43-0x20,3
288 0206 63C1 rjmp .L8
289 .L9:
290 0208 4091 8600 lds r20,134
291 020c 5091 8700 lds r21,(134)+1
292 0210 8091 0000 lds r24,AltICR.2
293 0214 9091 0000 lds r25,(AltICR.2)+1
294 0218 481B sub r20,r24
295 021a 590B sbc r21,r25
296 021c 8091 8600 lds r24,134
297 0220 9091 8700 lds r25,(134)+1
298 0224 9093 0000 sts (AltICR.2)+1,r25
299 0228 8093 0000 sts AltICR.2,r24
300 022c CA01 movw r24,r20
301 022e 8D54 subi r24,lo8(-(-1101))
302 0230 9440 sbci r25,hi8(-(-1101))
303 0232 6091 0000 lds r22,index.7
304 0236 835F subi r24,lo8(6899)
305 0238 9A41 sbci r25,hi8(6899)
306 023a 08F0 brlo .+2
307 023c 7AC0 rjmp .L33
308 023e 6093 0000 sts tmpChannels,r22
309 0242 8091 0000 lds r24,tmpChannels
310 0246 8430 cpi r24,lo8(4)
311 0248 08F4 brsh .+2
312 024a 53C0 rjmp .L34
313 024c 9091 0000 lds r25,Channels
314 0250 8091 0000 lds r24,tmpChannels
315 0254 9817 cp r25,r24
316 0256 09F0 breq .+2
317 0258 4CC0 rjmp .L34
318 025a 5091 0000 lds r21,okay_cnt.8
319 025e 5B30 cpi r21,lo8(11)
320 0260 08F4 brsh .+2
321 0262 3FC0 rjmp .L35
322 0264 1092 0000 sts NewPpmData,__zero_reg__
323 0268 1092 0000 sts index.7,__zero_reg__
324 026c 40E0 ldi r20,lo8(0)
325 .L40:
326 026e 5F31 cpi r21,lo8(31)
327 0270 C0F0 brlo .L39
328 0272 E42F mov r30,r20
329 0274 FF27 clr r31
330 0276 EE0F add r30,r30
331 0278 FF1F adc r31,r31
332 027a 9F01 movw r18,r30
333 027c 2050 subi r18,lo8(-(old_ppm_in.5))
334 027e 3040 sbci r19,hi8(-(old_ppm_in.5))
335 0280 DF01 movw r26,r30
336 0282 A050 subi r26,lo8(-(PPM_in))
337 0284 B040 sbci r27,hi8(-(PPM_in))
338 0286 8D91 ld r24,X+
339 0288 9C91 ld r25,X
340 028a D901 movw r26,r18
341 028c 8D93 st X+,r24
342 028e 9C93 st X,r25
343 0290 DF01 movw r26,r30
344 0292 A050 subi r26,lo8(-(PPM_diff))
345 0294 B040 sbci r27,hi8(-(PPM_diff))
346 0296 8D91 ld r24,X+
347 0298 9C91 ld r25,X
348 029a E050 subi r30,lo8(-(old_ppm_diff.6))
349 029c F040 sbci r31,hi8(-(old_ppm_diff.6))
350 029e 9183 std Z+1,r25
351 02a0 8083 st Z,r24
352 .L39:
353 02a2 E42F mov r30,r20
354 02a4 FF27 clr r31
355 02a6 EE0F add r30,r30
356 02a8 FF1F adc r31,r31
357 02aa 9F01 movw r18,r30
358 02ac 2050 subi r18,lo8(-(PPM_in))
359 02ae 3040 sbci r19,hi8(-(PPM_in))
360 02b0 DF01 movw r26,r30
361 02b2 A050 subi r26,lo8(-(ppm_in.3))
362 02b4 B040 sbci r27,hi8(-(ppm_in.3))
363 02b6 8D91 ld r24,X+
364 02b8 9C91 ld r25,X
365 02ba D901 movw r26,r18
366 02bc 1196 adiw r26,1
367 02be 9C93 st X,r25
368 02c0 8E93 st -X,r24
369 02c2 DF01 movw r26,r30
370 02c4 A050 subi r26,lo8(-(ppm_diff.4))
371 02c6 B040 sbci r27,hi8(-(ppm_diff.4))
372 02c8 8D91 ld r24,X+
373 02ca 9C91 ld r25,X
374 02cc E050 subi r30,lo8(-(PPM_diff))
375 02ce F040 sbci r31,hi8(-(PPM_diff))
376 02d0 9183 std Z+1,r25
377 02d2 8083 st Z,r24
378 02d4 842F mov r24,r20
379 02d6 8F5F subi r24,lo8(-(1))
380 02d8 482F mov r20,r24
381 02da 8D30 cpi r24,lo8(13)
382 02dc 40F2 brlo .L40
383 02de 8093 0000 sts index.7,r24
384 .L35:
385 02e2 8091 0000 lds r24,okay_cnt.8
386 02e6 8F3F cpi r24,lo8(-1)
387 02e8 B9F0 breq .L42
388 02ea 8F5F subi r24,lo8(-(1))
389 02ec 8093 0000 sts okay_cnt.8,r24
390 02f0 13C0 rjmp .L42
391 .L34:
392 02f2 8091 0000 lds r24,okay_cnt.8
393 02f6 8536 cpi r24,lo8(101)
394 02f8 20F0 brlo .L43
395 02fa 8AE0 ldi r24,lo8(10)
396 02fc 8093 0000 sts okay_cnt.8,r24
397 0300 02C0 rjmp .L44
398 .L43:
399 0302 1092 0000 sts okay_cnt.8,__zero_reg__
400 .L44:
401 0306 8091 0000 lds r24,PlatinenVersion
402 030a 8A30 cpi r24,lo8(10)
403 030c 11F0 breq .L46
404 030e 8431 cpi r24,lo8(20)
405 0310 10F0 brlo .L45
406 .L46:
407 0312 289A sbi 37-0x20,0
408 0314 01C0 rjmp .L42
409 .L45:
410 0316 2898 cbi 37-0x20,0
411 .L42:
412 0318 81E0 ldi r24,lo8(1)
413 031a 8093 0000 sts index.7,r24
414 031e 8091 0000 lds r24,MotorenEin
415 0322 8823 tst r24
416 0324 09F0 breq .+2
417 0326 D3C0 rjmp .L8
418 0328 8091 0000 lds r24,tmpChannels
419 032c 8093 0000 sts Channels,r24
420 0330 CEC0 rjmp .L8
421 .L33:
422 0332 6D30 cpi r22,lo8(13)
423 0334 08F0 brlo .+2
424 0336 A3C0 rjmp .L50
425 0338 CA01 movw r24,r20
426 033a 8B5F subi r24,lo8(-(-251))
427 033c 9040 sbci r25,hi8(-(-251))
428 033e 845B subi r24,lo8(436)
429 0340 9140 sbci r25,hi8(436)
430 0342 08F0 brlo .+2
431 0344 7EC0 rjmp .L51
432 0346 425D subi r20,lo8(-(-466))
433 0348 5140 sbci r21,hi8(-(-466))
434 034a E62F mov r30,r22
435 034c FF27 clr r31
436 034e EE0F add r30,r30
437 0350 FF1F adc r31,r31
438 0352 E050 subi r30,lo8(-(ppm_in.3))
439 0354 F040 sbci r31,hi8(-(ppm_in.3))
440 0356 8081 ld r24,Z
441 0358 9181 ldd r25,Z+1
442 035a FA01 movw r30,r20
443 035c E81B sub r30,r24
444 035e F90B sbc r31,r25
445 0360 CF01 movw r24,r30
446 0362 0596 adiw r24,5
447 0364 0B97 sbiw r24,11
448 0366 B0F4 brsh .L52
449 0368 8091 0000 lds r24,okay_cnt.8
450 036c 8A31 cpi r24,lo8(26)
451 036e 20F0 brlo .L53
452 0370 8091 0000 lds r24,SenderOkay
453 0374 865F subi r24,lo8(-(10))
454 0376 05C0 rjmp .L88
455 .L53:
456 0378 8B30 cpi r24,lo8(11)
457 037a 28F0 brlo .L54
458 037c 8091 0000 lds r24,SenderOkay
459 0380 8E5F subi r24,lo8(-(2))
460 .L88:
461 0382 8093 0000 sts SenderOkay,r24
462 .L54:
463 0386 8091 0000 lds r24,SenderOkay
464 038a 893C cpi r24,lo8(-55)
465 038c 18F0 brlo .L52
466 038e 88EC ldi r24,lo8(-56)
467 0390 8093 0000 sts SenderOkay,r24
468 .L52:
469 0394 E62F mov r30,r22
470 0396 FF27 clr r31
471 0398 EE0F add r30,r30
472 039a FF1F adc r31,r31
473 039c E050 subi r30,lo8(-(ppm_in.3))
474 039e F040 sbci r31,hi8(-(ppm_in.3))
475 03a0 8081 ld r24,Z
476 03a2 9181 ldd r25,Z+1
477 03a4 9C01 movw r18,r24
478 03a6 220F lsl r18
479 03a8 331F rol r19
480 03aa 280F add r18,r24
481 03ac 391F adc r19,r25
482 03ae 240F add r18,r20
483 03b0 351F adc r19,r21
484 03b2 37FF sbrs r19,7
485 03b4 02C0 rjmp .L57
486 03b6 2D5F subi r18,lo8(-(3))
487 03b8 3F4F sbci r19,hi8(-(3))
488 .L57:
489 03ba E901 movw r28,r18
490 03bc D595 asr r29
491 03be C795 ror r28
492 03c0 D595 asr r29
493 03c2 C795 ror r28
494 03c4 CA01 movw r24,r20
495 03c6 0196 adiw r24,1
496 03c8 8C17 cp r24,r28
497 03ca 9D07 cpc r25,r29
498 03cc 14F4 brge .L58
499 03ce 2197 sbiw r28,1
500 03d0 06C0 rjmp .L59
501 .L58:
502 03d2 4150 subi r20,lo8(-(-1))
503 03d4 5040 sbci r21,hi8(-(-1))
504 03d6 C417 cp r28,r20
505 03d8 D507 cpc r29,r21
506 03da 0CF4 brge .L59
507 03dc 2196 adiw r28,1
508 .L59:
509 03de 8091 0000 lds r24,SenderOkay
510 03e2 8E3B cpi r24,lo8(-66)
511 03e4 D8F0 brlo .L61
512 03e6 E62F mov r30,r22
513 03e8 FF27 clr r31
514 03ea EE0F add r30,r30
515 03ec FF1F adc r31,r31
516 03ee DF01 movw r26,r30
517 03f0 A050 subi r26,lo8(-(ppm_in.3))
518 03f2 B040 sbci r27,hi8(-(ppm_in.3))
519 03f4 8D91 ld r24,X+
520 03f6 9C91 ld r25,X
521 03f8 9E01 movw r18,r28
522 03fa 281B sub r18,r24
523 03fc 390B sbc r19,r25
524 03fe C901 movw r24,r18
525 0400 63E0 ldi r22,lo8(3)
526 0402 70E0 ldi r23,hi8(3)
527 0404 0E94 0000 call __divmodhi4
528 0408 CB01 movw r24,r22
529 040a 880F lsl r24
530 040c 991F rol r25
531 040e 860F add r24,r22
532 0410 971F adc r25,r23
533 0412 E050 subi r30,lo8(-(ppm_diff.4))
534 0414 F040 sbci r31,hi8(-(ppm_diff.4))
535 0416 9183 std Z+1,r25
536 0418 8083 st Z,r24
537 041a 08C0 rjmp .L62
538 .L61:
539 041c E62F mov r30,r22
540 041e FF27 clr r31
541 0420 EE0F add r30,r30
542 0422 FF1F adc r31,r31
543 0424 E050 subi r30,lo8(-(ppm_diff.4))
544 0426 F040 sbci r31,hi8(-(ppm_diff.4))
545 0428 1182 std Z+1,__zero_reg__
546 042a 1082 st Z,__zero_reg__
547 .L62:
548 042c 8091 0000 lds r24,index.7
549 0430 E82F mov r30,r24
550 0432 FF27 clr r31
551 0434 EE0F add r30,r30
552 0436 FF1F adc r31,r31
553 0438 E050 subi r30,lo8(-(ppm_in.3))
554 043a F040 sbci r31,hi8(-(ppm_in.3))
555 043c D183 std Z+1,r29
556 043e C083 st Z,r28
557 0440 09C0 rjmp .L63
558 .L51:
559 0442 8091 0000 lds r24,PlatinenVersion
560 0446 8A30 cpi r24,lo8(10)
561 0448 11F0 breq .L65
562 044a 8431 cpi r24,lo8(20)
563 044c 10F0 brlo .L64
564 .L65:
565 044e 289A sbi 37-0x20,0
566 0450 01C0 rjmp .L63
567 .L64:
568 0452 2898 cbi 37-0x20,0
569 .L63:
570 0454 8091 0000 lds r24,PlatinenVersion
571 0458 8431 cpi r24,lo8(20)
572 045a 88F4 brsh .L50
573 045c 8091 0000 lds r24,index.7
574 0460 8530 cpi r24,lo8(5)
575 0462 11F4 brne .L68
576 0464 5D9A sbi 43-0x20,5
577 0466 05C0 rjmp .L70
578 .L68:
579 0468 5D98 cbi 43-0x20,5
580 046a 8630 cpi r24,lo8(6)
581 046c 11F4 brne .L70
582 046e 5C9A sbi 43-0x20,4
583 0470 05C0 rjmp .L72
584 .L70:
585 0472 5C98 cbi 43-0x20,4
586 0474 8730 cpi r24,lo8(7)
587 0476 11F4 brne .L72
588 0478 5B9A sbi 43-0x20,3
589 047a 01C0 rjmp .L50
590 .L72:
591 047c 5B98 cbi 43-0x20,3
592 .L50:
593 047e 8091 0000 lds r24,index.7
594 0482 8431 cpi r24,lo8(20)
595 0484 20F4 brsh .L74
596 0486 8F5F subi r24,lo8(-(1))
597 0488 8093 0000 sts index.7,r24
598 048c 20C0 rjmp .L8
599 .L74:
600 048e 8431 cpi r24,lo8(20)
601 0490 F1F4 brne .L8
602 0492 8091 0000 lds r24,PlatinenVersion
603 0496 8A30 cpi r24,lo8(10)
604 0498 11F0 breq .L78
605 049a 8431 cpi r24,lo8(20)
606 049c 10F0 brlo .L77
607 .L78:
608 049e 289A sbi 37-0x20,0
609 04a0 01C0 rjmp .L79
610 .L77:
611 04a2 2898 cbi 37-0x20,0
612 .L79:
613 04a4 8EE1 ldi r24,lo8(30)
614 04a6 8093 0000 sts index.7,r24
615 04aa 2CE0 ldi r18,lo8(12)
616 04ac C0E0 ldi r28,lo8(PPM_diff)
617 04ae D0E0 ldi r29,hi8(PPM_diff)
618 04b0 A0E0 ldi r26,lo8(old_ppm_in.5)
619 04b2 B0E0 ldi r27,hi8(old_ppm_in.5)
620 04b4 E0E0 ldi r30,lo8(PPM_in)
621 04b6 F0E0 ldi r31,hi8(PPM_in)
622 .L83:
623 04b8 8D91 ld r24,X+
624 04ba 9D91 ld r25,X+
625 04bc 9183 std Z+1,r25
626 04be 8083 st Z,r24
627 04c0 3296 adiw r30,2
628 04c2 1982 std Y+1,__zero_reg__
629 04c4 1882 st Y,__zero_reg__
630 04c6 2296 adiw r28,2
631 04c8 2150 subi r18,lo8(-(-1))
632 04ca 27FF sbrs r18,7
633 04cc F5CF rjmp .L83
634 .L8:
635 /* epilogue: frame size=0 */
636 04ce FF91 pop r31
637 04d0 EF91 pop r30
638 04d2 DF91 pop r29
639 04d4 CF91 pop r28
640 04d6 BF91 pop r27
641 04d8 AF91 pop r26
642 04da 9F91 pop r25
643 04dc 8F91 pop r24
644 04de 7F91 pop r23
645 04e0 6F91 pop r22
646 04e2 5F91 pop r21
647 04e4 4F91 pop r20
648 04e6 3F91 pop r19
649 04e8 2F91 pop r18
650 04ea 1F91 pop r17
651 04ec 0F91 pop r16
652 04ee 0F90 pop __tmp_reg__
653 04f0 0FBE out __SREG__,__tmp_reg__
654 04f2 0F90 pop __tmp_reg__
655 04f4 1F90 pop __zero_reg__
656 04f6 1895 reti
657 /* epilogue end (size=21) */
658 /* function __vector_12 size 615 (573) */
660 .comm PPM_in,52,1
661 .comm PPM_diff,52,1
662 .comm Channels,1,1
663 /* File "rc.c": code 643 = 0x0283 ( 600), prologues 21, epilogues 22 */
DEFINED SYMBOLS
*ABS*:00000000 rc.c
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:14 .data:00000000 NewPpmData
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:21 .bss:00000000 tmpChannels
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:26 .text:00000000 rc_sum_init
*COM*:00000034 PPM_diff
*COM*:00000034 PPM_in
.bss:00000001 AltICR.0
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:56 .bss:00000003 index.1
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:57 .bss:00000005 AltICR.2
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:58 .bss:00000007 ppm_in.3
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:59 .bss:00000021 ppm_diff.4
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:60 .bss:0000003b old_ppm_in.5
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:61 .bss:00000055 old_ppm_diff.6
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:62 .bss:0000006f index.7
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:63 .bss:00000070 okay_cnt.8
C:\Users\Arthur-P\AppData\Local\Temp/ccIxbaaa.s:67 .text:00000038 __vector_12
*COM*:00000001 Channels
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
AdNeutralGier
AdNeutralRoll
AdNeutralNick
EE_Parameter
SenderOkay
__divmodhi4
PlatinenVersion
MotorenEin
/branches/V0.80d-Arthur-P/spi.c
0,0 → 1,330
// ######################## SPI - FlightCtrl ###################
#include "main.h"
#include "eeprom.h"
 
 
//struct str_ToNaviCtrl_Version ToNaviCtrl_Version;
//struct str_FromNaviCtrl_Version FromNaviCtrl_Version;
struct str_ToNaviCtrl ToNaviCtrl;
struct str_FromNaviCtrl FromNaviCtrl;
struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
struct str_SPI_VersionInfo NC_Version;
struct str_GPSInfo GPSInfo;
 
unsigned char SPI_BufferIndex;
unsigned char SPI_RxBufferIndex;
signed char FromNC_Rotate_C = 32, FromNC_Rotate_S = 0;
 
volatile unsigned char SPI_Buffer[sizeof(FromNaviCtrl)];
unsigned char *SPI_TX_Buffer;
 
unsigned char SPITransferCompleted, SPI_ChkSum;
unsigned char SPI_RxDataValid,NaviDataOkay = 250;
 
unsigned char SPI_CommandSequence[] = {SPI_FCCMD_STICK, SPI_FCCMD_USER, SPI_FCCMD_PARAMETER1, SPI_FCCMD_STICK, SPI_FCCMD_MISC, SPI_FCCMD_VERSION, SPI_FCCMD_STICK, SPI_FCCMD_SERVOS, SPI_FCCMD_ACCU};
unsigned char SPI_CommandCounter = 0;
unsigned char NC_ErrorCode = 0;
 
#ifdef USE_SPI_COMMUNICATION
 
//------------------------------------------------------
void SPI_MasterInit(void)
{
DDR_SPI |= (1<<DD_MOSI)|(1<<DD_SCK); // Set MOSI and SCK output, all others input
SLAVE_SELECT_DDR_PORT |= (1 << SPI_SLAVE_SELECT);
 
SPCR = (1<<SPE)|(1<<MSTR)|(1<<SPR1)|(0<<SPR0)|(0<<SPIE); // Enable SPI, Master, set clock rate fck/64
SPSR = 0;//(1<<SPI2X);
 
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT);
SPITransferCompleted = 1;
 
//SPDR = 0x00; // dummy write
 
ToNaviCtrl.Sync1 = 0xAA;
ToNaviCtrl.Sync2 = 0x83;
 
ToNaviCtrl.Command = SPI_FCCMD_USER;
ToNaviCtrl.IntegralNick = 0;
ToNaviCtrl.IntegralRoll = 0;
FromNaviCtrl_Value.SerialDataOkay = 0;
SPI_RxDataValid = 0;
 
}
 
//------------------------------------------------------
void SPI_StartTransmitPacket(void)
{
//if ((SLAVE_SELECT_PORT & (1 << SPI_SLAVE_SELECT)) == 0) return; // transfer of prev. packet not completed
if (!SPITransferCompleted) return;
// _delay_us(30);
 
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
SPI_TX_Buffer = (unsigned char *) &ToNaviCtrl;
 
ToNaviCtrl.Command = SPI_CommandSequence[SPI_CommandCounter++];
if (SPI_CommandCounter >= sizeof(SPI_CommandSequence)) SPI_CommandCounter = 0;
 
SPITransferCompleted = 0;
UpdateSPI_Buffer(); // update buffer
 
SPI_BufferIndex = 1;
//ebugOut.Analog[16]++;
// -- Debug-Output ---
//----
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
ToNaviCtrl.Chksum = ToNaviCtrl.Sync1;
SPDR = ToNaviCtrl.Sync1; // Start transmission
// SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
}
 
//------------------------------------------------------
//SIGNAL(SIG_SPI)
void SPI_TransmitByte(void)
{
static unsigned char SPI_RXState = 0;
unsigned char rxdata;
static unsigned char rxchksum;
 
if (SPITransferCompleted) return;
if (!(SPSR & (1 << SPIF))) return;
SendSPI = 4;
 
// _delay_us(30);
SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
rxdata = SPDR;
switch ( SPI_RXState)
{
case 0:
 
SPI_RxBufferIndex = 0;
rxchksum = rxdata;
if (rxdata == 0x81 ) { SPI_RXState = 1; } // 1. Syncbyte ok
 
break;
 
case 1:
if (rxdata == 0x55) { rxchksum += rxdata; SPI_RXState = 2; } // 2. Syncbyte ok
else SPI_RXState = 0;
break;
 
case 2:
SPI_Buffer[SPI_RxBufferIndex++]= rxdata; // get data
//DebugOut.Analog[19]++;
if (SPI_RxBufferIndex >= sizeof(FromNaviCtrl))
{
 
if (rxdata == rxchksum)
{
unsigned char *ptr = (unsigned char *)&FromNaviCtrl;
 
memcpy(ptr, (unsigned char *) SPI_Buffer, sizeof(SPI_Buffer));
 
SPI_RxDataValid = 1;
}
else SPI_RxDataValid = 0;
 
SPI_RXState = 0;
}
else rxchksum += rxdata;
break;
 
}
 
if (SPI_BufferIndex < sizeof(ToNaviCtrl))
{
SLAVE_SELECT_PORT &= ~(1 << SPI_SLAVE_SELECT); // SelectSlave
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop"); asm volatile ("nop");
 
SPDR = SPI_TX_Buffer[SPI_BufferIndex];
ToNaviCtrl.Chksum += SPI_TX_Buffer[SPI_BufferIndex];
// SLAVE_SELECT_PORT |= (1 << SPI_SLAVE_SELECT); // DeselectSlave
 
}
else SPITransferCompleted = 1;
 
SPI_BufferIndex++;
}
 
 
//------------------------------------------------------
void UpdateSPI_Buffer(void)
{
signed int tmp;
ToNaviCtrl.IntegralNick = (int) (IntegralNick / (long)(EE_Parameter.GyroAccFaktor * 4));
ToNaviCtrl.IntegralRoll = (int) (IntegralRoll / (long)(EE_Parameter.GyroAccFaktor * 4));
ToNaviCtrl.GyroCompass = (10 * ErsatzKompass) / GIER_GRAD_FAKTOR;
ToNaviCtrl.GyroGier = (signed int) AdNeutralGier - AdWertGier;
ToNaviCtrl.AccNick = ((int) ACC_AMPLIFY * (NaviAccNick / NaviCntAcc))/4;
ToNaviCtrl.AccRoll = ((int) ACC_AMPLIFY * (NaviAccRoll / NaviCntAcc))/4;
NaviCntAcc = 0; NaviAccNick = 0; NaviAccRoll = 0;
// ToNaviCtrl.User8 = Parameter_UserParam8;
// ToNaviCtrl.CalState = WinkelOut.CalcState;
switch(ToNaviCtrl.Command) //
{
case SPI_FCCMD_USER:
ToNaviCtrl.Param.Byte[0] = Parameter_UserParam1;
ToNaviCtrl.Param.Byte[1] = Parameter_UserParam2;
ToNaviCtrl.Param.Byte[2] = Parameter_UserParam3;
ToNaviCtrl.Param.Byte[3] = Parameter_UserParam4;
ToNaviCtrl.Param.Byte[4] = Parameter_UserParam5;
ToNaviCtrl.Param.Byte[5] = Parameter_UserParam6;
ToNaviCtrl.Param.Byte[6] = Parameter_UserParam7;
ToNaviCtrl.Param.Byte[7] = Parameter_UserParam8;
ToNaviCtrl.Param.Byte[8] = (unsigned char) FCFlags;
FCFlags &= ~(FCFLAG_CALIBRATE | FCFLAG_START);
ToNaviCtrl.Param.Byte[9] = GetActiveParamSet();
ToNaviCtrl.Param.Byte[10] = ControlHeading;
break;
 
case SPI_FCCMD_ACCU:
ToNaviCtrl.Param.Int[0] = Capacity.ActualCurrent; // 0.1A
ToNaviCtrl.Param.Int[1] = Capacity.UsedCapacity; // mAh
ToNaviCtrl.Param.Byte[4] = (unsigned char) UBat; // 0.1V
ToNaviCtrl.Param.Byte[5] = (unsigned char) BattLowVoltageWarning; //0.1V
break;
 
case SPI_FCCMD_PARAMETER1:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.NaviGpsModeControl; // Parameters for the Naviboard
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviGpsGain;
ToNaviCtrl.Param.Byte[2] = EE_Parameter.NaviGpsP;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.NaviGpsI;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.NaviGpsD;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.NaviGpsACC;
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsMinSat;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviStickThreshold;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviOperatingRadius;
ToNaviCtrl.Param.Byte[9] = EE_Parameter.NaviWindCorrection;
ToNaviCtrl.Param.Byte[10] = EE_Parameter.NaviSpeedCompensation;
ToNaviCtrl.Param.Byte[11] = EE_Parameter.NaviAngleLimitation;
break;
 
case SPI_FCCMD_STICK:
cli();
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GAS]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[0] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_GIER]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[1] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_ROLL]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
ToNaviCtrl.Param.Byte[2] = (char) tmp;
tmp = PPM_in[EE_Parameter.Kanalbelegung[K_NICK]]; if(tmp > 127) tmp = 127; else if(tmp < -127) tmp = -127;
sei();
ToNaviCtrl.Param.Byte[3] = (char) tmp;
ToNaviCtrl.Param.Byte[4] = (unsigned char) Poti[0];
ToNaviCtrl.Param.Byte[5] = (unsigned char) Poti[1];
ToNaviCtrl.Param.Byte[6] = (unsigned char) Poti[2];
ToNaviCtrl.Param.Byte[7] = (unsigned char) Poti[3];
ToNaviCtrl.Param.Byte[8] = (unsigned char) Poti[4];
ToNaviCtrl.Param.Byte[9] = (unsigned char) Poti[5];
ToNaviCtrl.Param.Byte[10] = (unsigned char) Poti[6];
ToNaviCtrl.Param.Byte[11] = (unsigned char) Poti[7];
break;
case SPI_FCCMD_MISC:
if(WinkelOut.CalcState > 5)
{
WinkelOut.CalcState = 0;
ToNaviCtrl.Param.Byte[0] = 5;
}
else ToNaviCtrl.Param.Byte[0] = WinkelOut.CalcState;
ToNaviCtrl.Param.Byte[1] = EE_Parameter.NaviPH_LoginTime;
ToNaviCtrl.Param.Int[1] = (int)(HoehenWert/5);
ToNaviCtrl.Param.Int[2] = (int)(SollHoehe/5);
ToNaviCtrl.Param.Byte[6] = EE_Parameter.NaviGpsPLimit;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.NaviGpsILimit;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.NaviGpsDLimit;
ToNaviCtrl.Param.Byte[9] = (unsigned char) SenderOkay;
ToNaviCtrl.Param.Byte[10] = (unsigned char) PPM_in[0];
ToNaviCtrl.Param.Byte[11] = DebugOut.Analog[7] / 4; //GasMischanteil
break;
case SPI_FCCMD_VERSION:
ToNaviCtrl.Param.Byte[0] = VERSION_MAJOR;
ToNaviCtrl.Param.Byte[1] = VERSION_MINOR;
ToNaviCtrl.Param.Byte[2] = VERSION_PATCH;
ToNaviCtrl.Param.Byte[3] = NC_SPI_COMPATIBLE;
ToNaviCtrl.Param.Byte[4] = PlatinenVersion;
ToNaviCtrl.Param.Byte[5] = VersionInfo.HardwareError[0];
ToNaviCtrl.Param.Byte[6] = VersionInfo.HardwareError[1];
ToNaviCtrl.Param.Byte[7] = VersionInfo.HardwareError[2];
break;
case SPI_FCCMD_SERVOS:
ToNaviCtrl.Param.Byte[0] = EE_Parameter.ServoNickRefresh; // Parameters for the Servo Control
ToNaviCtrl.Param.Byte[1] = EE_Parameter.ServoCompInvert;
ToNaviCtrl.Param.Byte[2] = Parameter_ServoNickControl;
ToNaviCtrl.Param.Byte[3] = EE_Parameter.ServoNickComp;
ToNaviCtrl.Param.Byte[4] = EE_Parameter.ServoNickMin;
ToNaviCtrl.Param.Byte[5] = EE_Parameter.ServoNickMax;
ToNaviCtrl.Param.Byte[6] = Parameter_ServoRollControl;
ToNaviCtrl.Param.Byte[7] = EE_Parameter.ServoRollComp;
ToNaviCtrl.Param.Byte[8] = EE_Parameter.ServoRollMin;
ToNaviCtrl.Param.Byte[9] = EE_Parameter.ServoRollMax;
break;
}
 
if(SPI_RxDataValid)
{
NaviDataOkay = 250;
if(abs(FromNaviCtrl.GPS_Nick) < 512 && abs(FromNaviCtrl.GPS_Roll) < 512 && (EE_Parameter.GlobalConfig & CFG_GPS_AKTIV))
{
GPS_Nick = FromNaviCtrl.GPS_Nick;
GPS_Roll = FromNaviCtrl.GPS_Roll;
}
 
if(FromNaviCtrl.CompassValue <= 360) KompassValue = FromNaviCtrl.CompassValue;
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
 
if(FromNaviCtrl.BeepTime > beeptime && !WinkelOut.CalcState) beeptime = FromNaviCtrl.BeepTime;
 
switch (FromNaviCtrl.Command)
{
case SPI_NCCMD_KALMAN:
FromNaviCtrl_Value.Kalman_K = FromNaviCtrl.Param.sByte[0];
FromNaviCtrl_Value.Kalman_MaxFusion = FromNaviCtrl.Param.sByte[1];
FromNaviCtrl_Value.Kalman_MaxDrift = FromNaviCtrl.Param.sByte[2];
FromNaviCtrl_Value.SerialDataOkay = FromNaviCtrl.Param.Byte[3];
FromNaviCtrl_Value.GpsZ = FromNaviCtrl.Param.Byte[4];
FromNC_Rotate_C = FromNaviCtrl.Param.Byte[5];
FromNC_Rotate_S = FromNaviCtrl.Param.Byte[6];
break;
 
case SPI_NCCMD_VERSION:
NC_Version.Major = FromNaviCtrl.Param.Byte[0];
NC_Version.Minor = FromNaviCtrl.Param.Byte[1];
NC_Version.Patch = FromNaviCtrl.Param.Byte[2];
NC_Version.Compatible = FromNaviCtrl.Param.Byte[3];
NC_Version.Hardware = FromNaviCtrl.Param.Byte[4];
DebugOut.Status[0] |= FromNaviCtrl.Param.Byte[5];
NC_ErrorCode = FromNaviCtrl.Param.Byte[6];
DebugOut.Status[1] = (DebugOut.Status[1] & (0x01|0x02)) | (FromNaviCtrl.Param.Byte[6] & (0x04 | 0x08));
break;
 
case SPI_NCCMD_GPSINFO:
GPSInfo.Flags = FromNaviCtrl.Param.Byte[0];
GPSInfo.NumOfSats = FromNaviCtrl.Param.Byte[1];
GPSInfo.SatFix = FromNaviCtrl.Param.Byte[2];
GPSInfo.Speed = FromNaviCtrl.Param.Byte[3];
GPSInfo.HomeDistance = FromNaviCtrl.Param.Int[2];
GPSInfo.HomeBearing = FromNaviCtrl.Param.sInt[3];
break;
 
default:
break;
}
}
else
{
// KompassValue = 0;
// KompassRichtung = 0;
GPS_Nick = 0;
GPS_Roll = 0;
}
}
 
#endif
 
 
/branches/V0.80d-Arthur-P/spi.d
0,0 → 1,3
spi.o spi.d : spi.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/spi.h
0,0 → 1,183
// ######################## SPI - FlightCtrl ###################
#ifndef _SPI_H
#define _SPI_H
 
#include <util/delay.h>
 
#define USE_SPI_COMMUNICATION
 
//-----------------------------------------
#define DDR_SPI DDRB
#define SLAVE_SELECT_DDR_PORT DDRC
#define SLAVE_SELECT_PORT PORTC
 
#if defined(__AVR_ATmega1284P__)
#define DD_SS PORTB4
#define DD_SCK PORTB7
#define DD_MOSI PORTB5
#define DD_MISO PORTB6
#define SPI_SLAVE_SELECT PORTC5
#else
#define DD_SS PB4
#define DD_SCK PB7
#define DD_MOSI PB5
#define DD_MISO PB6
#define SPI_SLAVE_SELECT PC5
#endif
 
// for compatibility reasons gcc3.x <-> gcc4.x
#ifndef SPCR
#define SPCR SPCR0
#endif
#ifndef SPE
#define SPE SPE0
#endif
#ifndef MSTR
#define MSTR MSTR0
#endif
#ifndef SPR1
#define SPR1 SPR01
#endif
#ifndef SPR0
#define SPR0 SPR00
#endif
#ifndef SPIE
#define SPIE SPIE0
#endif
#ifndef SPDR
#define SPDR SPDR0
#endif
#ifndef SPIF
#define SPIF SPIF0
#endif
#ifndef SPSR
#define SPSR SPSR0
#endif
// -------------------------
 
#define SPI_FCCMD_USER 10
#define SPI_FCCMD_STICK 11
#define SPI_FCCMD_MISC 12
#define SPI_FCCMD_PARAMETER1 13
#define SPI_FCCMD_VERSION 14
#define SPI_FCCMD_SERVOS 15
#define SPI_FCCMD_ACCU 16
 
struct str_ToNaviCtrl
{
unsigned char Sync1, Sync2;
unsigned char Command;
signed int IntegralNick;
signed int IntegralRoll;
signed int AccNick;
signed int AccRoll;
signed int GyroCompass;
signed int GyroNick;
signed int GyroRoll;
signed int GyroGier;
union
{
unsigned char Byte[12];
char sByte[12];
unsigned int Int[6];
int sInt[6];
unsigned long Long[3];
long sLong[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
#define SPI_NCCMD_KALMAN 103
#define SPI_NCCMD_VERSION 104
#define SPI_NCCMD_GPSINFO 105
 
struct str_FromNaviCtrl
{
unsigned char Command;
signed int GPS_Nick;
signed int GPS_Roll;
signed int GPS_Gier;
signed int CompassValue;
signed int Status;
unsigned int BeepTime;
union
{
unsigned char Byte[12];
char sByte[12];
unsigned int Int[6];
int sInt[6];
unsigned long Long[3];
long sLong[3];
float Float[3];
} Param;
unsigned char Chksum;
};
 
struct str_FromNaviCtrl_Value
{
signed char Kalman_K;
signed char Kalman_MaxDrift;
signed char Kalman_MaxFusion;
unsigned char SerialDataOkay;
signed char GpsZ;
};
 
struct str_SPI_VersionInfo
{
unsigned char Major;
unsigned char Minor;
unsigned char Patch;
unsigned char Compatible;
unsigned char Hardware;
};
 
// Satfix types for GPSData.SatFix
#define SATFIX_NONE 0x00
#define SATFIX_DEADRECKOING 0x01
#define SATFIX_2D 0x02
#define SATFIX_3D 0x03
#define SATFIX_GPS_DEADRECKOING 0x04
#define SATFIX_TIMEONLY 0x05
// Flags for interpretation of the GPSData.Flags
#define FLAG_GPSFIXOK 0x01 // (i.e. within DOP & ACC Masks)
#define FLAG_DIFFSOLN 0x02 // (is DGPS used)
#define FLAG_WKNSET 0x04 // (is Week Number valid)
#define FLAG_TOWSET 0x08 // (is Time of Week valid)
 
struct str_GPSInfo
{
unsigned char Flags; // Status Flags
unsigned char NumOfSats; // number of satelites
unsigned char SatFix; // type of satfix
unsigned char Speed; // m/sek
unsigned int HomeDistance; // distance to Home in dm
int HomeBearing; // bearing to home in deg
};
 
 
#ifdef USE_SPI_COMMUNICATION
extern struct str_GPSInfo GPSInfo;
extern struct str_SPI_VersionInfo NC_Version;
extern struct str_FromNaviCtrl_Value FromNaviCtrl_Value;
extern struct str_ToNaviCtrl ToNaviCtrl;
extern struct str_FromNaviCtrl FromNaviCtrl;
extern unsigned char SPI_CommandCounter,NaviDataOkay;
extern signed char FromNC_Rotate_C, FromNC_Rotate_S;
extern unsigned char NC_ErrorCode;
extern void SPI_MasterInit(void);
extern void SPI_StartTransmitPacket(void);
extern void UpdateSPI_Buffer(void);
extern void SPI_TransmitByte(void);
#else
 
 
// -------------------------------- Dummy -----------------------------------------
#define SPI_MasterInit() ;
#define SPI_StartTransmitPacket() ;
#define UpdateSPI_Buffer() ;
#define SPI_TransmitByte() ;
#endif
 
 
#endif
/branches/V0.80d-Arthur-P/spi.lst
0,0 → 1,983
1 .file "spi.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global NC_ErrorCode
11 .global NC_ErrorCode
12 .section .bss
15 NC_ErrorCode:
16 0000 00 .skip 1,0
17 .global SPI_CommandCounter
18 .global SPI_CommandCounter
21 SPI_CommandCounter:
22 0001 00 .skip 1,0
23 .global SPI_CommandSequence
24 .data
27 SPI_CommandSequence:
28 0000 0B .byte 11
29 0001 0A .byte 10
30 0002 0D .byte 13
31 0003 0B .byte 11
32 0004 0C .byte 12
33 0005 0E .byte 14
34 0006 0B .byte 11
35 0007 0F .byte 15
36 0008 10 .byte 16
37 .global NaviDataOkay
40 NaviDataOkay:
41 0009 FA .byte -6
42 .global FromNC_Rotate_S
43 .global FromNC_Rotate_S
44 .section .bss
47 FromNC_Rotate_S:
48 0002 00 .skip 1,0
49 .global FromNC_Rotate_C
50 .data
53 FromNC_Rotate_C:
54 000a 20 .byte 32
55 .text
56 .global SPI_MasterInit
58 SPI_MasterInit:
59 /* prologue: frame size=0 */
60 /* prologue end (size=0) */
61 0000 84B1 in r24,36-0x20
62 0002 806A ori r24,lo8(-96)
63 0004 84B9 out 36-0x20,r24
64 0006 3D9A sbi 39-0x20,5
65 0008 82E5 ldi r24,lo8(82)
66 000a 8CBD out 76-0x20,r24
67 000c 1DBC out 77-0x20,__zero_reg__
68 000e 459A sbi 40-0x20,5
69 0010 81E0 ldi r24,lo8(1)
70 0012 8093 0000 sts SPITransferCompleted,r24
71 0016 8AEA ldi r24,lo8(-86)
72 0018 8093 0000 sts ToNaviCtrl,r24
73 001c 83E8 ldi r24,lo8(-125)
74 001e 8093 0000 sts ToNaviCtrl+1,r24
75 0022 8AE0 ldi r24,lo8(10)
76 0024 8093 0000 sts ToNaviCtrl+2,r24
77 0028 1092 0000 sts (ToNaviCtrl+3)+1,__zero_reg__
78 002c 1092 0000 sts ToNaviCtrl+3,__zero_reg__
79 0030 1092 0000 sts (ToNaviCtrl+5)+1,__zero_reg__
80 0034 1092 0000 sts ToNaviCtrl+5,__zero_reg__
81 0038 1092 0000 sts FromNaviCtrl_Value+3,__zero_reg__
82 003c 1092 0000 sts SPI_RxDataValid,__zero_reg__
83 /* epilogue: frame size=0 */
84 0040 0895 ret
85 /* epilogue end (size=1) */
86 /* function SPI_MasterInit size 33 (32) */
88 .lcomm SPI_RXState.0,1
89 .lcomm rxchksum.1,1
90 .global SPI_TransmitByte
92 SPI_TransmitByte:
93 /* prologue: frame size=0 */
94 /* prologue end (size=0) */
95 0042 3091 0000 lds r19,SPITransferCompleted
96 0046 3323 tst r19
97 0048 09F0 breq .+2
98 004a 85C0 rjmp .L2
99 004c 0DB4 in __tmp_reg__,77-0x20
100 004e 07FE sbrs __tmp_reg__,7
101 0050 82C0 rjmp .L2
102 0052 84E0 ldi r24,lo8(4)
103 0054 8093 0000 sts SendSPI,r24
104 0058 459A sbi 40-0x20,5
105 005a 2EB5 in r18,78-0x20
106 005c 8091 0000 lds r24,SPI_RXState.0
107 0060 9927 clr r25
108 0062 8130 cpi r24,1
109 0064 9105 cpc r25,__zero_reg__
110 0066 89F0 breq .L8
111 0068 8230 cpi r24,2
112 006a 9105 cpc r25,__zero_reg__
113 006c 1CF4 brge .L16
114 006e 892B or r24,r25
115 0070 21F0 breq .L6
116 0072 3EC0 rjmp .L5
117 .L16:
118 0074 0297 sbiw r24,2
119 0076 B9F0 breq .L11
120 0078 3BC0 rjmp .L5
121 .L6:
122 007a 3093 0000 sts SPI_RxBufferIndex,r19
123 007e 2093 0000 sts rxchksum.1,r18
124 0082 2138 cpi r18,lo8(-127)
125 0084 A9F5 brne .L5
126 0086 81E0 ldi r24,lo8(1)
127 0088 08C0 rjmp .L19
128 .L8:
129 008a 2535 cpi r18,lo8(85)
130 008c 49F4 brne .L9
131 008e 8091 0000 lds r24,rxchksum.1
132 0092 820F add r24,r18
133 0094 8093 0000 sts rxchksum.1,r24
134 0098 82E0 ldi r24,lo8(2)
135 .L19:
136 009a 8093 0000 sts SPI_RXState.0,r24
137 009e 28C0 rjmp .L5
138 .L9:
139 00a0 3093 0000 sts SPI_RXState.0,r19
140 00a4 25C0 rjmp .L5
141 .L11:
142 00a6 8091 0000 lds r24,SPI_RxBufferIndex
143 00aa E82F mov r30,r24
144 00ac FF27 clr r31
145 00ae E050 subi r30,lo8(-(SPI_Buffer))
146 00b0 F040 sbci r31,hi8(-(SPI_Buffer))
147 00b2 2083 st Z,r18
148 00b4 8F5F subi r24,lo8(-(1))
149 00b6 8093 0000 sts SPI_RxBufferIndex,r24
150 00ba 9091 0000 lds r25,rxchksum.1
151 00be 8A31 cpi r24,lo8(26)
152 00c0 A0F0 brlo .L12
153 00c2 2917 cp r18,r25
154 00c4 69F4 brne .L13
155 00c6 8AE1 ldi r24,lo8(26)
156 00c8 A0E0 ldi r26,lo8(SPI_Buffer)
157 00ca B0E0 ldi r27,hi8(SPI_Buffer)
158 00cc E0E0 ldi r30,lo8(FromNaviCtrl)
159 00ce F0E0 ldi r31,hi8(FromNaviCtrl)
160 00d0 0D90 ld __tmp_reg__,X+
161 00d2 0192 st Z+,__tmp_reg__
162 00d4 8A95 dec r24
163 00d6 E1F7 brne .-8
164 00d8 81E0 ldi r24,lo8(1)
165 00da 8093 0000 sts SPI_RxDataValid,r24
166 00de 02C0 rjmp .L14
167 .L13:
168 00e0 3093 0000 sts SPI_RxDataValid,r19
169 .L14:
170 00e4 1092 0000 sts SPI_RXState.0,__zero_reg__
171 00e8 03C0 rjmp .L5
172 .L12:
173 00ea 920F add r25,r18
174 00ec 9093 0000 sts rxchksum.1,r25
175 .L5:
176 00f0 2091 0000 lds r18,SPI_BufferIndex
177 00f4 2032 cpi r18,lo8(32)
178 00f6 08F0 brlo .+2
179 00f8 28C0 rjmp .L17
180 00fa 4598 cbi 40-0x20,5
181 /* #APP */
182 00fc 0000 nop
183 00fe 0000 nop
184 0100 0000 nop
185 0102 0000 nop
186 0104 0000 nop
187 0106 0000 nop
188 0108 0000 nop
189 010a 0000 nop
190 010c 0000 nop
191 010e 0000 nop
192 0110 0000 nop
193 0112 0000 nop
194 0114 0000 nop
195 0116 0000 nop
196 0118 0000 nop
197 011a 0000 nop
198 011c 0000 nop
199 011e 0000 nop
200 0120 0000 nop
201 0122 0000 nop
202 0124 0000 nop
203 0126 0000 nop
204 0128 0000 nop
205 012a 0000 nop
206 /* #NOAPP */
207 012c E091 0000 lds r30,SPI_TX_Buffer
208 0130 F091 0000 lds r31,(SPI_TX_Buffer)+1
209 0134 E20F add r30,r18
210 0136 F11D adc r31,__zero_reg__
211 0138 8081 ld r24,Z
212 013a 8EBD out 78-0x20,r24
213 013c 8091 0000 lds r24,ToNaviCtrl+31
214 0140 9081 ld r25,Z
215 0142 890F add r24,r25
216 0144 8093 0000 sts ToNaviCtrl+31,r24
217 0148 03C0 rjmp .L18
218 .L17:
219 014a 81E0 ldi r24,lo8(1)
220 014c 8093 0000 sts SPITransferCompleted,r24
221 .L18:
222 0150 2F5F subi r18,lo8(-(1))
223 0152 2093 0000 sts SPI_BufferIndex,r18
224 .L2:
225 0156 0895 ret
226 /* epilogue: frame size=0 */
227 /* epilogue: noreturn */
228 /* epilogue end (size=0) */
229 /* function SPI_TransmitByte size 164 (164) */
231 .global UpdateSPI_Buffer
233 UpdateSPI_Buffer:
234 /* prologue: frame size=0 */
235 0158 EF92 push r14
236 015a FF92 push r15
237 015c 0F93 push r16
238 015e 1F93 push r17
239 /* prologue end (size=4) */
240 0160 8091 0000 lds r24,EE_Parameter+28
241 0164 9927 clr r25
242 0166 880F lsl r24
243 0168 991F rol r25
244 016a 880F lsl r24
245 016c 991F rol r25
246 016e 7C01 movw r14,r24
247 0170 0027 clr r16
248 0172 F7FC sbrc r15,7
249 0174 0095 com r16
250 0176 102F mov r17,r16
251 0178 8091 0000 lds r24,IntegralNick
252 017c 9091 0000 lds r25,(IntegralNick)+1
253 0180 A091 0000 lds r26,(IntegralNick)+2
254 0184 B091 0000 lds r27,(IntegralNick)+3
255 0188 BC01 movw r22,r24
256 018a CD01 movw r24,r26
257 018c A801 movw r20,r16
258 018e 9701 movw r18,r14
259 0190 0E94 0000 call __divmodsi4
260 0194 3093 0000 sts (ToNaviCtrl+3)+1,r19
261 0198 2093 0000 sts ToNaviCtrl+3,r18
262 019c 8091 0000 lds r24,IntegralRoll
263 01a0 9091 0000 lds r25,(IntegralRoll)+1
264 01a4 A091 0000 lds r26,(IntegralRoll)+2
265 01a8 B091 0000 lds r27,(IntegralRoll)+3
266 01ac BC01 movw r22,r24
267 01ae CD01 movw r24,r26
268 01b0 A801 movw r20,r16
269 01b2 9701 movw r18,r14
270 01b4 0E94 0000 call __divmodsi4
271 01b8 3093 0000 sts (ToNaviCtrl+5)+1,r19
272 01bc 2093 0000 sts ToNaviCtrl+5,r18
273 01c0 2091 0000 lds r18,ErsatzKompass
274 01c4 3091 0000 lds r19,(ErsatzKompass)+1
275 01c8 4091 0000 lds r20,(ErsatzKompass)+2
276 01cc 5091 0000 lds r21,(ErsatzKompass)+3
277 01d0 DA01 movw r26,r20
278 01d2 C901 movw r24,r18
279 01d4 E3E0 ldi r30,3
280 01d6 880F 1: lsl r24
281 01d8 991F rol r25
282 01da AA1F rol r26
283 01dc BB1F rol r27
284 01de EA95 dec r30
285 01e0 D1F7 brne 1b
286 01e2 820F add r24,r18
287 01e4 931F adc r25,r19
288 01e6 A41F adc r26,r20
289 01e8 B51F adc r27,r21
290 01ea 820F add r24,r18
291 01ec 931F adc r25,r19
292 01ee A41F adc r26,r20
293 01f0 B51F adc r27,r21
294 01f2 2091 0000 lds r18,GIER_GRAD_FAKTOR
295 01f6 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
296 01fa 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
297 01fe 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
298 0202 BC01 movw r22,r24
299 0204 CD01 movw r24,r26
300 0206 0E94 0000 call __divmodsi4
301 020a 3093 0000 sts (ToNaviCtrl+11)+1,r19
302 020e 2093 0000 sts ToNaviCtrl+11,r18
303 0212 8091 0000 lds r24,AdNeutralGier
304 0216 9091 0000 lds r25,(AdNeutralGier)+1
305 021a 2091 0000 lds r18,AdWertGier
306 021e 3091 0000 lds r19,(AdWertGier)+1
307 0222 821B sub r24,r18
308 0224 930B sbc r25,r19
309 0226 9093 0000 sts (ToNaviCtrl+17)+1,r25
310 022a 8093 0000 sts ToNaviCtrl+17,r24
311 022e E091 0000 lds r30,NaviCntAcc
312 0232 F091 0000 lds r31,(NaviCntAcc)+1
313 0236 8091 0000 lds r24,NaviAccNick
314 023a 9091 0000 lds r25,(NaviAccNick)+1
315 023e BF01 movw r22,r30
316 0240 0E94 0000 call __divmodhi4
317 0244 CB01 movw r24,r22
318 0246 9B01 movw r18,r22
319 0248 220F lsl r18
320 024a 331F rol r19
321 024c 220F lsl r18
322 024e 331F rol r19
323 0250 280F add r18,r24
324 0252 391F adc r19,r25
325 0254 280F add r18,r24
326 0256 391F adc r19,r25
327 0258 37FF sbrs r19,7
328 025a 02C0 rjmp .L21
329 025c 2D5F subi r18,lo8(-(3))
330 025e 3F4F sbci r19,hi8(-(3))
331 .L21:
332 0260 3595 asr r19
333 0262 2795 ror r18
334 0264 3595 asr r19
335 0266 2795 ror r18
336 0268 3093 0000 sts (ToNaviCtrl+7)+1,r19
337 026c 2093 0000 sts ToNaviCtrl+7,r18
338 0270 8091 0000 lds r24,NaviAccRoll
339 0274 9091 0000 lds r25,(NaviAccRoll)+1
340 0278 BF01 movw r22,r30
341 027a 0E94 0000 call __divmodhi4
342 027e 9B01 movw r18,r22
343 0280 220F lsl r18
344 0282 331F rol r19
345 0284 220F lsl r18
346 0286 331F rol r19
347 0288 260F add r18,r22
348 028a 371F adc r19,r23
349 028c 260F add r18,r22
350 028e 371F adc r19,r23
351 0290 37FF sbrs r19,7
352 0292 02C0 rjmp .L22
353 0294 2D5F subi r18,lo8(-(3))
354 0296 3F4F sbci r19,hi8(-(3))
355 .L22:
356 0298 3595 asr r19
357 029a 2795 ror r18
358 029c 3595 asr r19
359 029e 2795 ror r18
360 02a0 3093 0000 sts (ToNaviCtrl+9)+1,r19
361 02a4 2093 0000 sts ToNaviCtrl+9,r18
362 02a8 1092 0000 sts (NaviCntAcc)+1,__zero_reg__
363 02ac 1092 0000 sts NaviCntAcc,__zero_reg__
364 02b0 1092 0000 sts (NaviAccNick)+1,__zero_reg__
365 02b4 1092 0000 sts NaviAccNick,__zero_reg__
366 02b8 1092 0000 sts (NaviAccRoll)+1,__zero_reg__
367 02bc 1092 0000 sts NaviAccRoll,__zero_reg__
368 02c0 8091 0000 lds r24,ToNaviCtrl+2
369 02c4 9927 clr r25
370 02c6 8D30 cpi r24,13
371 02c8 9105 cpc r25,__zero_reg__
372 02ca 09F4 brne .+2
373 02cc 66C0 rjmp .L26
374 02ce 8E30 cpi r24,14
375 02d0 9105 cpc r25,__zero_reg__
376 02d2 5CF4 brge .L46
377 02d4 8B30 cpi r24,11
378 02d6 9105 cpc r25,__zero_reg__
379 02d8 09F4 brne .+2
380 02da 8EC0 rjmp .L27
381 02dc 8C30 cpi r24,12
382 02de 9105 cpc r25,__zero_reg__
383 02e0 0CF0 brlt .+2
384 02e2 0FC1 rjmp .L40
385 02e4 0A97 sbiw r24,10
386 02e6 61F0 breq .L24
387 02e8 A8C1 rjmp .L23
388 .L46:
389 02ea 8F30 cpi r24,15
390 02ec 9105 cpc r25,__zero_reg__
391 02ee 09F4 brne .+2
392 02f0 7CC1 rjmp .L45
393 02f2 8F30 cpi r24,15
394 02f4 9105 cpc r25,__zero_reg__
395 02f6 0CF4 brge .+2
396 02f8 5CC1 rjmp .L44
397 02fa 4097 sbiw r24,16
398 02fc 99F1 breq .L25
399 02fe 9DC1 rjmp .L23
400 .L24:
401 0300 8091 0000 lds r24,Parameter_UserParam1
402 0304 8093 0000 sts ToNaviCtrl+19,r24
403 0308 8091 0000 lds r24,Parameter_UserParam2
404 030c 8093 0000 sts ToNaviCtrl+20,r24
405 0310 8091 0000 lds r24,Parameter_UserParam3
406 0314 8093 0000 sts ToNaviCtrl+21,r24
407 0318 8091 0000 lds r24,Parameter_UserParam4
408 031c 8093 0000 sts ToNaviCtrl+22,r24
409 0320 8091 0000 lds r24,Parameter_UserParam5
410 0324 8093 0000 sts ToNaviCtrl+23,r24
411 0328 8091 0000 lds r24,Parameter_UserParam6
412 032c 8093 0000 sts ToNaviCtrl+24,r24
413 0330 8091 0000 lds r24,Parameter_UserParam7
414 0334 8093 0000 sts ToNaviCtrl+25,r24
415 0338 8091 0000 lds r24,Parameter_UserParam8
416 033c 8093 0000 sts ToNaviCtrl+26,r24
417 0340 8091 0000 lds r24,FCFlags
418 0344 8093 0000 sts ToNaviCtrl+27,r24
419 0348 8091 0000 lds r24,FCFlags
420 034c 837F andi r24,lo8(-13)
421 034e 8093 0000 sts FCFlags,r24
422 0352 0E94 0000 call GetActiveParamSet
423 0356 8093 0000 sts ToNaviCtrl+28,r24
424 035a 8091 0000 lds r24,ControlHeading
425 035e 8093 0000 sts ToNaviCtrl+29,r24
426 0362 6BC1 rjmp .L23
427 .L25:
428 0364 8091 0000 lds r24,Capacity
429 0368 9091 0000 lds r25,(Capacity)+1
430 036c 9093 0000 sts (ToNaviCtrl+19)+1,r25
431 0370 8093 0000 sts ToNaviCtrl+19,r24
432 0374 8091 0000 lds r24,Capacity+4
433 0378 9091 0000 lds r25,(Capacity+4)+1
434 037c 9093 0000 sts (ToNaviCtrl+21)+1,r25
435 0380 8093 0000 sts ToNaviCtrl+21,r24
436 0384 8091 0000 lds r24,UBat
437 0388 9091 0000 lds r25,(UBat)+1
438 038c 8093 0000 sts ToNaviCtrl+23,r24
439 0390 8091 0000 lds r24,BattLowVoltageWarning
440 0394 8093 0000 sts ToNaviCtrl+24,r24
441 0398 50C1 rjmp .L23
442 .L26:
443 039a 8091 0000 lds r24,EE_Parameter+78
444 039e 8093 0000 sts ToNaviCtrl+19,r24
445 03a2 8091 0000 lds r24,EE_Parameter+79
446 03a6 8093 0000 sts ToNaviCtrl+20,r24
447 03aa 8091 0000 lds r24,EE_Parameter+80
448 03ae 8093 0000 sts ToNaviCtrl+21,r24
449 03b2 8091 0000 lds r24,EE_Parameter+81
450 03b6 8093 0000 sts ToNaviCtrl+22,r24
451 03ba 8091 0000 lds r24,EE_Parameter+82
452 03be 8093 0000 sts ToNaviCtrl+23,r24
453 03c2 8091 0000 lds r24,EE_Parameter+86
454 03c6 8093 0000 sts ToNaviCtrl+24,r24
455 03ca 8091 0000 lds r24,EE_Parameter+87
456 03ce 8093 0000 sts ToNaviCtrl+25,r24
457 03d2 8091 0000 lds r24,EE_Parameter+88
458 03d6 8093 0000 sts ToNaviCtrl+26,r24
459 03da 8091 0000 lds r24,EE_Parameter+91
460 03de 8093 0000 sts ToNaviCtrl+27,r24
461 03e2 8091 0000 lds r24,EE_Parameter+89
462 03e6 8093 0000 sts ToNaviCtrl+28,r24
463 03ea 8091 0000 lds r24,EE_Parameter+90
464 03ee 8093 0000 sts ToNaviCtrl+29,r24
465 03f2 8091 0000 lds r24,EE_Parameter+92
466 03f6 DAC0 rjmp .L58
467 .L27:
468 /* #APP */
469 03f8 F894 cli
470 /* #NOAPP */
471 03fa 8091 0000 lds r24,EE_Parameter+3
472 03fe E82F mov r30,r24
473 0400 FF27 clr r31
474 0402 EE0F add r30,r30
475 0404 FF1F adc r31,r31
476 0406 E050 subi r30,lo8(-(PPM_in))
477 0408 F040 sbci r31,hi8(-(PPM_in))
478 040a 0190 ld __tmp_reg__,Z+
479 040c F081 ld r31,Z
480 040e E02D mov r30,__tmp_reg__
481 0410 E038 cpi r30,128
482 0412 F105 cpc r31,__zero_reg__
483 0414 1CF0 brlt .L28
484 0416 EFE7 ldi r30,lo8(127)
485 0418 F0E0 ldi r31,hi8(127)
486 041a 06C0 rjmp .L29
487 .L28:
488 041c 2FEF ldi r18,hi8(-127)
489 041e E138 cpi r30,lo8(-127)
490 0420 F207 cpc r31,r18
491 0422 14F4 brge .L29
492 0424 E1E8 ldi r30,lo8(-127)
493 0426 FFEF ldi r31,hi8(-127)
494 .L29:
495 0428 E093 0000 sts ToNaviCtrl+19,r30
496 042c 8091 0000 lds r24,EE_Parameter+4
497 0430 E82F mov r30,r24
498 0432 FF27 clr r31
499 0434 EE0F add r30,r30
500 0436 FF1F adc r31,r31
501 0438 E050 subi r30,lo8(-(PPM_in))
502 043a F040 sbci r31,hi8(-(PPM_in))
503 043c 0190 ld __tmp_reg__,Z+
504 043e F081 ld r31,Z
505 0440 E02D mov r30,__tmp_reg__
506 0442 E038 cpi r30,128
507 0444 F105 cpc r31,__zero_reg__
508 0446 1CF0 brlt .L31
509 0448 EFE7 ldi r30,lo8(127)
510 044a F0E0 ldi r31,hi8(127)
511 044c 06C0 rjmp .L32
512 .L31:
513 044e 6FEF ldi r22,hi8(-127)
514 0450 E138 cpi r30,lo8(-127)
515 0452 F607 cpc r31,r22
516 0454 14F4 brge .L32
517 0456 E1E8 ldi r30,lo8(-127)
518 0458 FFEF ldi r31,hi8(-127)
519 .L32:
520 045a E093 0000 sts ToNaviCtrl+20,r30
521 045e 8091 0000 lds r24,EE_Parameter+2
522 0462 E82F mov r30,r24
523 0464 FF27 clr r31
524 0466 EE0F add r30,r30
525 0468 FF1F adc r31,r31
526 046a E050 subi r30,lo8(-(PPM_in))
527 046c F040 sbci r31,hi8(-(PPM_in))
528 046e 0190 ld __tmp_reg__,Z+
529 0470 F081 ld r31,Z
530 0472 E02D mov r30,__tmp_reg__
531 0474 E038 cpi r30,128
532 0476 F105 cpc r31,__zero_reg__
533 0478 1CF0 brlt .L34
534 047a EFE7 ldi r30,lo8(127)
535 047c F0E0 ldi r31,hi8(127)
536 047e 06C0 rjmp .L35
537 .L34:
538 0480 8FEF ldi r24,hi8(-127)
539 0482 E138 cpi r30,lo8(-127)
540 0484 F807 cpc r31,r24
541 0486 14F4 brge .L35
542 0488 E1E8 ldi r30,lo8(-127)
543 048a FFEF ldi r31,hi8(-127)
544 .L35:
545 048c E093 0000 sts ToNaviCtrl+21,r30
546 0490 8091 0000 lds r24,EE_Parameter+1
547 0494 E82F mov r30,r24
548 0496 FF27 clr r31
549 0498 EE0F add r30,r30
550 049a FF1F adc r31,r31
551 049c E050 subi r30,lo8(-(PPM_in))
552 049e F040 sbci r31,hi8(-(PPM_in))
553 04a0 0190 ld __tmp_reg__,Z+
554 04a2 F081 ld r31,Z
555 04a4 E02D mov r30,__tmp_reg__
556 04a6 E038 cpi r30,128
557 04a8 F105 cpc r31,__zero_reg__
558 04aa 1CF0 brlt .L37
559 04ac EFE7 ldi r30,lo8(127)
560 04ae F0E0 ldi r31,hi8(127)
561 04b0 06C0 rjmp .L38
562 .L37:
563 04b2 2FEF ldi r18,hi8(-127)
564 04b4 E138 cpi r30,lo8(-127)
565 04b6 F207 cpc r31,r18
566 04b8 14F4 brge .L38
567 04ba E1E8 ldi r30,lo8(-127)
568 04bc FFEF ldi r31,hi8(-127)
569 .L38:
570 /* #APP */
571 04be 7894 sei
572 /* #NOAPP */
573 04c0 E093 0000 sts ToNaviCtrl+22,r30
574 04c4 8091 0000 lds r24,Poti
575 04c8 8093 0000 sts ToNaviCtrl+23,r24
576 04cc 8091 0000 lds r24,Poti+1
577 04d0 8093 0000 sts ToNaviCtrl+24,r24
578 04d4 8091 0000 lds r24,Poti+2
579 04d8 8093 0000 sts ToNaviCtrl+25,r24
580 04dc 8091 0000 lds r24,Poti+3
581 04e0 8093 0000 sts ToNaviCtrl+26,r24
582 04e4 8091 0000 lds r24,Poti+4
583 04e8 8093 0000 sts ToNaviCtrl+27,r24
584 04ec 8091 0000 lds r24,Poti+5
585 04f0 8093 0000 sts ToNaviCtrl+28,r24
586 04f4 8091 0000 lds r24,Poti+6
587 04f8 8093 0000 sts ToNaviCtrl+29,r24
588 04fc 8091 0000 lds r24,Poti+7
589 0500 55C0 rjmp .L58
590 .L40:
591 0502 8091 0000 lds r24,WinkelOut+6
592 0506 8630 cpi r24,lo8(6)
593 0508 18F0 brlo .L41
594 050a 1092 0000 sts WinkelOut+6,__zero_reg__
595 050e 85E0 ldi r24,lo8(5)
596 .L41:
597 0510 8093 0000 sts ToNaviCtrl+19,r24
598 0514 8091 0000 lds r24,EE_Parameter+93
599 0518 8093 0000 sts ToNaviCtrl+20,r24
600 051c 8091 0000 lds r24,HoehenWert
601 0520 9091 0000 lds r25,(HoehenWert)+1
602 0524 A091 0000 lds r26,(HoehenWert)+2
603 0528 B091 0000 lds r27,(HoehenWert)+3
604 052c BC01 movw r22,r24
605 052e CD01 movw r24,r26
606 0530 25E0 ldi r18,lo8(5)
607 0532 30E0 ldi r19,hi8(5)
608 0534 40E0 ldi r20,hlo8(5)
609 0536 50E0 ldi r21,hhi8(5)
610 0538 0E94 0000 call __divmodsi4
611 053c 3093 0000 sts (ToNaviCtrl+21)+1,r19
612 0540 2093 0000 sts ToNaviCtrl+21,r18
613 0544 8091 0000 lds r24,SollHoehe
614 0548 9091 0000 lds r25,(SollHoehe)+1
615 054c A091 0000 lds r26,(SollHoehe)+2
616 0550 B091 0000 lds r27,(SollHoehe)+3
617 0554 BC01 movw r22,r24
618 0556 CD01 movw r24,r26
619 0558 25E0 ldi r18,lo8(5)
620 055a 30E0 ldi r19,hi8(5)
621 055c 40E0 ldi r20,hlo8(5)
622 055e 50E0 ldi r21,hhi8(5)
623 0560 0E94 0000 call __divmodsi4
624 0564 3093 0000 sts (ToNaviCtrl+23)+1,r19
625 0568 2093 0000 sts ToNaviCtrl+23,r18
626 056c 8091 0000 lds r24,EE_Parameter+83
627 0570 8093 0000 sts ToNaviCtrl+25,r24
628 0574 8091 0000 lds r24,EE_Parameter+84
629 0578 8093 0000 sts ToNaviCtrl+26,r24
630 057c 8091 0000 lds r24,EE_Parameter+85
631 0580 8093 0000 sts ToNaviCtrl+27,r24
632 0584 8091 0000 lds r24,SenderOkay
633 0588 8093 0000 sts ToNaviCtrl+28,r24
634 058c 8091 0000 lds r24,PPM_in
635 0590 9091 0000 lds r25,(PPM_in)+1
636 0594 8093 0000 sts ToNaviCtrl+29,r24
637 0598 8091 0000 lds r24,DebugOut+16
638 059c 9091 0000 lds r25,(DebugOut+16)+1
639 05a0 97FD sbrc r25,7
640 05a2 0396 adiw r24,3
641 .L43:
642 05a4 9595 asr r25
643 05a6 8795 ror r24
644 05a8 9595 asr r25
645 05aa 8795 ror r24
646 .L58:
647 05ac 8093 0000 sts ToNaviCtrl+30,r24
648 05b0 44C0 rjmp .L23
649 .L44:
650 05b2 1092 0000 sts ToNaviCtrl+19,__zero_reg__
651 05b6 80E5 ldi r24,lo8(80)
652 05b8 8093 0000 sts ToNaviCtrl+20,r24
653 05bc 83E0 ldi r24,lo8(3)
654 05be 8093 0000 sts ToNaviCtrl+21,r24
655 05c2 8EE0 ldi r24,lo8(14)
656 05c4 8093 0000 sts ToNaviCtrl+22,r24
657 05c8 8091 0000 lds r24,PlatinenVersion
658 05cc 8093 0000 sts ToNaviCtrl+23,r24
659 05d0 8091 0000 lds r24,VersionInfo+5
660 05d4 8093 0000 sts ToNaviCtrl+24,r24
661 05d8 8091 0000 lds r24,VersionInfo+6
662 05dc 8093 0000 sts ToNaviCtrl+25,r24
663 05e0 8091 0000 lds r24,VersionInfo+7
664 05e4 8093 0000 sts ToNaviCtrl+26,r24
665 05e8 28C0 rjmp .L23
666 .L45:
667 05ea 8091 0000 lds r24,EE_Parameter+53
668 05ee 8093 0000 sts ToNaviCtrl+19,r24
669 05f2 8091 0000 lds r24,EE_Parameter+98
670 05f6 8093 0000 sts ToNaviCtrl+20,r24
671 05fa 8091 0000 lds r24,Parameter_ServoNickControl
672 05fe 8093 0000 sts ToNaviCtrl+21,r24
673 0602 8091 0000 lds r24,EE_Parameter+46
674 0606 8093 0000 sts ToNaviCtrl+22,r24
675 060a 8091 0000 lds r24,EE_Parameter+47
676 060e 8093 0000 sts ToNaviCtrl+23,r24
677 0612 8091 0000 lds r24,EE_Parameter+48
678 0616 8093 0000 sts ToNaviCtrl+24,r24
679 061a 8091 0000 lds r24,Parameter_ServoRollControl
680 061e 8093 0000 sts ToNaviCtrl+25,r24
681 0622 8091 0000 lds r24,EE_Parameter+50
682 0626 8093 0000 sts ToNaviCtrl+26,r24
683 062a 8091 0000 lds r24,EE_Parameter+51
684 062e 8093 0000 sts ToNaviCtrl+27,r24
685 0632 8091 0000 lds r24,EE_Parameter+52
686 0636 8093 0000 sts ToNaviCtrl+28,r24
687 .L23:
688 063a 8091 0000 lds r24,SPI_RxDataValid
689 063e 8823 tst r24
690 0640 09F4 brne .+2
691 0642 CFC0 rjmp .L47
692 0644 8AEF ldi r24,lo8(-6)
693 0646 8093 0000 sts NaviDataOkay,r24
694 064a 4091 0000 lds r20,FromNaviCtrl+1
695 064e 5091 0000 lds r21,(FromNaviCtrl+1)+1
696 0652 CA01 movw r24,r20
697 0654 8150 subi r24,lo8(-(511))
698 0656 9E4F sbci r25,hi8(-(511))
699 0658 8F5F subi r24,lo8(1023)
700 065a 9340 sbci r25,hi8(1023)
701 065c B0F4 brsh .L48
702 065e 2091 0000 lds r18,FromNaviCtrl+3
703 0662 3091 0000 lds r19,(FromNaviCtrl+3)+1
704 0666 C901 movw r24,r18
705 0668 8150 subi r24,lo8(-(511))
706 066a 9E4F sbci r25,hi8(-(511))
707 066c 8F5F subi r24,lo8(1023)
708 066e 9340 sbci r25,hi8(1023)
709 0670 60F4 brsh .L48
710 0672 8091 0000 lds r24,EE_Parameter+13
711 0676 85FF sbrs r24,5
712 0678 08C0 rjmp .L48
713 067a 5093 0000 sts (GPS_Nick)+1,r21
714 067e 4093 0000 sts GPS_Nick,r20
715 0682 3093 0000 sts (GPS_Roll)+1,r19
716 0686 2093 0000 sts GPS_Roll,r18
717 .L48:
718 068a 8091 0000 lds r24,FromNaviCtrl+7
719 068e 9091 0000 lds r25,(FromNaviCtrl+7)+1
720 0692 21E0 ldi r18,hi8(361)
721 0694 8936 cpi r24,lo8(361)
722 0696 9207 cpc r25,r18
723 0698 24F4 brge .L49
724 069a 9093 0000 sts (KompassValue)+1,r25
725 069e 8093 0000 sts KompassValue,r24
726 .L49:
727 06a2 8091 0000 lds r24,KompassValue
728 06a6 9091 0000 lds r25,(KompassValue)+1
729 06aa 2091 0000 lds r18,KompassStartwert
730 06ae 3091 0000 lds r19,(KompassStartwert)+1
731 06b2 821B sub r24,r18
732 06b4 930B sbc r25,r19
733 06b6 845E subi r24,lo8(-(540))
734 06b8 9D4F sbci r25,hi8(-(540))
735 06ba 68E6 ldi r22,lo8(360)
736 06bc 71E0 ldi r23,hi8(360)
737 06be 0E94 0000 call __divmodhi4
738 06c2 845B subi r24,lo8(-(-180))
739 06c4 9040 sbci r25,hi8(-(-180))
740 06c6 9093 0000 sts (KompassRichtung)+1,r25
741 06ca 8093 0000 sts KompassRichtung,r24
742 06ce 2091 0000 lds r18,FromNaviCtrl+11
743 06d2 3091 0000 lds r19,(FromNaviCtrl+11)+1
744 06d6 8091 0000 lds r24,beeptime
745 06da 9091 0000 lds r25,(beeptime)+1
746 06de 8217 cp r24,r18
747 06e0 9307 cpc r25,r19
748 06e2 40F4 brsh .L50
749 06e4 8091 0000 lds r24,WinkelOut+6
750 06e8 8823 tst r24
751 06ea 21F4 brne .L50
752 06ec 3093 0000 sts (beeptime)+1,r19
753 06f0 2093 0000 sts beeptime,r18
754 .L50:
755 06f4 8091 0000 lds r24,FromNaviCtrl
756 06f8 9927 clr r25
757 06fa 8836 cpi r24,104
758 06fc 9105 cpc r25,__zero_reg__
759 06fe 49F1 breq .L53
760 0700 8936 cpi r24,105
761 0702 9105 cpc r25,__zero_reg__
762 0704 24F4 brge .L56
763 0706 8736 cpi r24,103
764 0708 9105 cpc r25,__zero_reg__
765 070a 31F0 breq .L52
766 070c 72C0 rjmp .L20
767 .L56:
768 070e 8936 cpi r24,105
769 0710 9105 cpc r25,__zero_reg__
770 0712 09F4 brne .+2
771 0714 45C0 rjmp .L54
772 0716 6DC0 rjmp .L20
773 .L52:
774 0718 8091 0000 lds r24,FromNaviCtrl+13
775 071c 8093 0000 sts FromNaviCtrl_Value,r24
776 0720 8091 0000 lds r24,FromNaviCtrl+14
777 0724 8093 0000 sts FromNaviCtrl_Value+2,r24
778 0728 8091 0000 lds r24,FromNaviCtrl+15
779 072c 8093 0000 sts FromNaviCtrl_Value+1,r24
780 0730 8091 0000 lds r24,FromNaviCtrl+16
781 0734 8093 0000 sts FromNaviCtrl_Value+3,r24
782 0738 8091 0000 lds r24,FromNaviCtrl+17
783 073c 8093 0000 sts FromNaviCtrl_Value+4,r24
784 0740 8091 0000 lds r24,FromNaviCtrl+18
785 0744 8093 0000 sts FromNC_Rotate_C,r24
786 0748 8091 0000 lds r24,FromNaviCtrl+19
787 074c 8093 0000 sts FromNC_Rotate_S,r24
788 0750 50C0 rjmp .L20
789 .L53:
790 0752 8091 0000 lds r24,FromNaviCtrl+13
791 0756 8093 0000 sts NC_Version,r24
792 075a 8091 0000 lds r24,FromNaviCtrl+14
793 075e 8093 0000 sts NC_Version+1,r24
794 0762 8091 0000 lds r24,FromNaviCtrl+15
795 0766 8093 0000 sts NC_Version+2,r24
796 076a 8091 0000 lds r24,FromNaviCtrl+16
797 076e 8093 0000 sts NC_Version+3,r24
798 0772 8091 0000 lds r24,FromNaviCtrl+17
799 0776 8093 0000 sts NC_Version+4,r24
800 077a 8091 0000 lds r24,DebugOut
801 077e 9091 0000 lds r25,FromNaviCtrl+18
802 0782 892B or r24,r25
803 0784 8093 0000 sts DebugOut,r24
804 0788 9091 0000 lds r25,FromNaviCtrl+19
805 078c 9093 0000 sts NC_ErrorCode,r25
806 0790 8091 0000 lds r24,DebugOut+1
807 0794 8370 andi r24,lo8(3)
808 0796 9C70 andi r25,lo8(12)
809 0798 892B or r24,r25
810 079a 8093 0000 sts DebugOut+1,r24
811 079e 29C0 rjmp .L20
812 .L54:
813 07a0 8091 0000 lds r24,FromNaviCtrl+13
814 07a4 8093 0000 sts GPSInfo,r24
815 07a8 8091 0000 lds r24,FromNaviCtrl+14
816 07ac 8093 0000 sts GPSInfo+1,r24
817 07b0 8091 0000 lds r24,FromNaviCtrl+15
818 07b4 8093 0000 sts GPSInfo+2,r24
819 07b8 8091 0000 lds r24,FromNaviCtrl+16
820 07bc 8093 0000 sts GPSInfo+3,r24
821 07c0 8091 0000 lds r24,FromNaviCtrl+17
822 07c4 9091 0000 lds r25,(FromNaviCtrl+17)+1
823 07c8 9093 0000 sts (GPSInfo+4)+1,r25
824 07cc 8093 0000 sts GPSInfo+4,r24
825 07d0 8091 0000 lds r24,FromNaviCtrl+19
826 07d4 9091 0000 lds r25,(FromNaviCtrl+19)+1
827 07d8 9093 0000 sts (GPSInfo+6)+1,r25
828 07dc 8093 0000 sts GPSInfo+6,r24
829 07e0 08C0 rjmp .L20
830 .L47:
831 07e2 1092 0000 sts (GPS_Nick)+1,__zero_reg__
832 07e6 1092 0000 sts GPS_Nick,__zero_reg__
833 07ea 1092 0000 sts (GPS_Roll)+1,__zero_reg__
834 07ee 1092 0000 sts GPS_Roll,__zero_reg__
835 .L20:
836 /* epilogue: frame size=0 */
837 07f2 1F91 pop r17
838 07f4 0F91 pop r16
839 07f6 FF90 pop r15
840 07f8 EF90 pop r14
841 07fa 0895 ret
842 /* epilogue end (size=5) */
843 /* function UpdateSPI_Buffer size 857 (848) */
845 .global SPI_StartTransmitPacket
847 SPI_StartTransmitPacket:
848 /* prologue: frame size=0 */
849 /* prologue end (size=0) */
850 07fc 8091 0000 lds r24,SPITransferCompleted
851 0800 8823 tst r24
852 0802 09F4 brne .+2
853 0804 3BC0 rjmp .L59
854 0806 4598 cbi 40-0x20,5
855 0808 80E0 ldi r24,lo8(ToNaviCtrl)
856 080a 90E0 ldi r25,hi8(ToNaviCtrl)
857 080c 9093 0000 sts (SPI_TX_Buffer)+1,r25
858 0810 8093 0000 sts SPI_TX_Buffer,r24
859 0814 9091 0000 lds r25,SPI_CommandCounter
860 0818 E92F mov r30,r25
861 081a FF27 clr r31
862 081c E050 subi r30,lo8(-(SPI_CommandSequence))
863 081e F040 sbci r31,hi8(-(SPI_CommandSequence))
864 0820 9F5F subi r25,lo8(-(1))
865 0822 9093 0000 sts SPI_CommandCounter,r25
866 0826 8081 ld r24,Z
867 0828 8093 0000 sts ToNaviCtrl+2,r24
868 082c 9930 cpi r25,lo8(9)
869 082e 10F0 brlo .L61
870 0830 1092 0000 sts SPI_CommandCounter,__zero_reg__
871 .L61:
872 0834 1092 0000 sts SPITransferCompleted,__zero_reg__
873 0838 0E94 0000 call UpdateSPI_Buffer
874 083c 81E0 ldi r24,lo8(1)
875 083e 8093 0000 sts SPI_BufferIndex,r24
876 /* #APP */
877 0842 0000 nop
878 0844 0000 nop
879 0846 0000 nop
880 0848 0000 nop
881 084a 0000 nop
882 084c 0000 nop
883 084e 0000 nop
884 0850 0000 nop
885 0852 0000 nop
886 0854 0000 nop
887 0856 0000 nop
888 0858 0000 nop
889 085a 0000 nop
890 085c 0000 nop
891 085e 0000 nop
892 0860 0000 nop
893 0862 0000 nop
894 0864 0000 nop
895 0866 0000 nop
896 0868 0000 nop
897 086a 0000 nop
898 086c 0000 nop
899 086e 0000 nop
900 0870 0000 nop
901 /* #NOAPP */
902 0872 8091 0000 lds r24,ToNaviCtrl
903 0876 8093 0000 sts ToNaviCtrl+31,r24
904 087a 8EBD out 78-0x20,r24
905 .L59:
906 087c 0895 ret
907 /* epilogue: frame size=0 */
908 /* epilogue: noreturn */
909 /* epilogue end (size=0) */
910 /* function SPI_StartTransmitPacket size 89 (89) */
912 .comm GPSInfo,8,1
913 .comm NC_Version,5,1
914 .comm FromNaviCtrl_Value,5,1
915 .comm ToNaviCtrl,32,1
916 .comm FromNaviCtrl,26,1
917 .comm SPI_BufferIndex,1,1
918 .comm SPI_RxBufferIndex,1,1
919 .comm SPI_Buffer,26,1
920 .comm SPI_TX_Buffer,2,1
921 .comm SPITransferCompleted,1,1
922 .comm SPI_ChkSum,1,1
923 .comm SPI_RxDataValid,1,1
924 /* File "spi.c": code 1143 = 0x0477 (1133), prologues 4, epilogues 6 */
DEFINED SYMBOLS
*ABS*:00000000 spi.c
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:15 .bss:00000000 NC_ErrorCode
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:21 .bss:00000001 SPI_CommandCounter
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:27 .data:00000000 SPI_CommandSequence
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:40 .data:00000009 NaviDataOkay
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:47 .bss:00000002 FromNC_Rotate_S
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:53 .data:0000000a FromNC_Rotate_C
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:58 .text:00000000 SPI_MasterInit
*COM*:00000001 SPITransferCompleted
*COM*:00000020 ToNaviCtrl
*COM*:00000005 FromNaviCtrl_Value
*COM*:00000001 SPI_RxDataValid
.bss:00000003 SPI_RXState.0
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:88 .bss:00000004 rxchksum.1
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:92 .text:00000042 SPI_TransmitByte
*COM*:00000001 SPI_RxBufferIndex
*COM*:0000001a SPI_Buffer
*COM*:0000001a FromNaviCtrl
*COM*:00000001 SPI_BufferIndex
*COM*:00000002 SPI_TX_Buffer
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:233 .text:00000158 UpdateSPI_Buffer
*COM*:00000005 NC_Version
*COM*:00000008 GPSInfo
C:\Users\Arthur-P\AppData\Local\Temp/ccGGbaaa.s:847 .text:000007fc SPI_StartTransmitPacket
*COM*:00000001 SPI_ChkSum
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SendSPI
EE_Parameter
IntegralNick
__divmodsi4
IntegralRoll
ErsatzKompass
GIER_GRAD_FAKTOR
AdNeutralGier
AdWertGier
NaviCntAcc
NaviAccNick
__divmodhi4
NaviAccRoll
Parameter_UserParam1
Parameter_UserParam2
Parameter_UserParam3
Parameter_UserParam4
Parameter_UserParam5
Parameter_UserParam6
Parameter_UserParam7
Parameter_UserParam8
FCFlags
GetActiveParamSet
ControlHeading
Capacity
UBat
BattLowVoltageWarning
PPM_in
Poti
WinkelOut
HoehenWert
SollHoehe
SenderOkay
DebugOut
PlatinenVersion
VersionInfo
Parameter_ServoNickControl
Parameter_ServoRollControl
GPS_Nick
GPS_Roll
KompassValue
KompassStartwert
KompassRichtung
beeptime
/branches/V0.80d-Arthur-P/timer0.c
0,0 → 1,498
// Arthur P. Modified to use several parameters for servo control:
// User_Parameter4:
// User_Parameter5:
// User_Parameter6:
// User_Parameter7:
// User_Parameter8: Use external HEF4017 if bit 8 is set (>127). The remaining 7 bits are used
// for the shutter cycle counter: the value is multiplied by 5 programmatically,
// resulting in steps of approx. 0.1sec. Minimum value to start using the
// interval timer is 10 (approx. 1 sec, or countervalue of 50). Note that this
// was originally done through user para 6.
 
 
#include "main.h"
 
 
volatile unsigned int CountMilliseconds = 0;
volatile static unsigned int tim_main;
volatile unsigned char UpdateMotor = 0;
volatile unsigned int cntKompass = 0;
volatile unsigned int beeptime = 0;
volatile unsigned char SendSPI = 0, ServoActive = 0;
 
unsigned int BeepMuster = 0xffff;
 
volatile int16_t ServoNickValue = 0;
volatile int16_t ServoRollValue = 0;
 
// Arthur P: Added two variables for control of the shutter servo cycle.
// 091114 Inserted same changes into v.0.76g code.
// 091114 Inactivated the following two lines as the shutter interval funtion is not
// used at the moment.
// 20100804 Reactivated to be able to choose slower shutter rate than normal for
// Panasonic FX150 in continuous mode.
volatile static unsigned int CameraShutterCycleCounter = 0;
volatile static unsigned int CameraShutterCycle = 0;
volatile static unsigned int CameraShutterCycleOnCount = 20; // Leave the shutter on for at least
// 20 cycles or approx. 0.2 seconds.
 
enum {
STOP = 0,
CK = 1,
CK8 = 2,
CK64 = 3,
CK256 = 4,
CK1024 = 5,
T0_FALLING_EDGE = 6,
T0_RISING_EDGE = 7
};
 
 
ISR(TIMER0_OVF_vect) // 9,7kHz
{
static unsigned char cnt_1ms = 1,cnt = 0, compass_active = 0;
unsigned char pieper_ein = 0;
if(SendSPI) SendSPI--;
if(SpektrumTimer) SpektrumTimer--;
if(!cnt--)
{
cnt = 9;
CountMilliseconds++;
cnt_1ms++;
cnt_1ms %= 2;
 
if(!cnt_1ms) UpdateMotor = 1;
if(!PINC & 0x10) compass_active = 1;
 
if(beeptime)
{
if(beeptime > 10) beeptime -= 10; else beeptime = 0;
if(beeptime & BeepMuster)
{
pieper_ein = 1;
}
else pieper_ein = 0;
}
else
{
pieper_ein = 0;
BeepMuster = 0xffff;
}
if(pieper_ein)
{
if(PlatinenVersion == 10) PORTD |= (1<<2); // Speaker an PORTD.2
else PORTC |= (1<<7); // Speaker an PORTC.7
}
else
{
if(PlatinenVersion == 10) PORTD &= ~(1<<2);
else PORTC &= ~(1<<7);
}
}
if(compass_active && !NaviDataOkay && EE_Parameter.GlobalConfig & CFG_KOMPASS_AKTIV)
{
if(PINC & 0x10)
{
if(++cntKompass > 1000) compass_active = 0;
}
else
{
if((cntKompass) && (cntKompass < 362))
{
cntKompass += cntKompass / 41;
if(cntKompass > 10) KompassValue = cntKompass - 10; else KompassValue = 0;
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
}
cntKompass = 0;
}
}
}
 
 
// -----------------------------------------------------------------------
unsigned int SetDelay (unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(CountMilliseconds + t + 1);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
char CheckDelay(unsigned int t)
{
// TIMSK0 &= ~_BV(TOIE0);
return(((t - CountMilliseconds) & 0x8000) >> 9);
// TIMSK0 |= _BV(TOIE0);
}
 
// -----------------------------------------------------------------------
void Delay_ms(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt));
}
 
void Delay_ms_Mess(unsigned int w)
{
unsigned int akt;
akt = SetDelay(w);
while (!CheckDelay(akt)) if(AdReady) {AdReady = 0; ANALOG_ON;}
}
 
/*****************************************************/
/* Initialize Timer 2 */
/*****************************************************/
// The timer 2 is used to generate the PWM at PD7 (J7)
// to control a camera servo for nick compensation.
void TIMER2_Init(void)
{
uint8_t sreg = SREG;
 
 
// Arthur P: Added initialization of the CameraShutterCycle value here as this routine is only
// called once. This retains all code changes in timer0.c. If parameter8 lower 6 > 0 then the user
// has set a value for the cycle. CameraShuytterCycle == 5x Para6 to get approx 0.1sec increments.
// 090807: Arthur P.: Removed the shutter cycle parts as they may be impacting timing loops.
// 20100804 Arthur P.: Reactivate shutter cycle counters. Modified to use the lower 7 bits of
// user parameter 7 (bit 8 is used for enabling the external HEF4017).
// CameraShutterCycle = Parameter_UserParam6;
CameraShutterCycle = 5 * (Parameter_UserParam8 & 127);
 
// disable all interrupts before reconfiguration
cli();
 
PORTD &= ~(1<<PORTD7); // set PD7 to low
 
DDRC |= (1<<DDC6); // set PC6 as output (Reset for HEF4017)
HEF4017R_ON;
// Timer/Counter 2 Control Register A
 
// Timer Mode is FastPWM with timer reload at OCR2A (Bits: WGM22 = 1, WGM21 = 1, WGM20 = 1)
// PD7: Normal port operation, OC2A disconnected, (Bits: COM2A1 = 0, COM2A0 = 0)
// PD6: Normal port operation, OC2B disconnected, (Bits: COM2B1 = 0, COM2B0 = 0)
TCCR2A &= ~((1<<COM2A1)|(1<<COM2A0)|(1<<COM2B1)|(1<<COM2B0));
TCCR2A |= (1<<WGM21)|(1<<WGM20);
 
// Timer/Counter 2 Control Register B
 
// Set clock divider for timer 2 to SYSKLOCK/32 = 20MHz / 32 = 625 kHz
// The timer increments from 0x00 to 0xFF with an update rate of 625 kHz or 1.6 us
// hence the timer overflow interrupt frequency is 625 kHz / 256 = 2.44 kHz or 0.4096 ms
 
// divider 32 (Bits: CS022 = 0, CS21 = 1, CS20 = 1)
TCCR2B &= ~((1<<FOC2A)|(1<<FOC2B)|(1<<CS22));
TCCR2B |= (1<<CS21)|(1<<CS20)|(1<<WGM22);
 
// Initialize the Timer/Counter 2 Register
TCNT2 = 0;
 
// Initialize the Output Compare Register A used for PWM generation on port PD7.
OCR2A = 255;
TCCR2A |= (1<<COM2A1); // set or clear at compare match depends on value of COM2A0
 
// Timer/Counter 2 Interrupt Mask Register
// Enable timer output compare match A Interrupt only
TIMSK2 &= ~((1<<OCIE2B)|(1<<TOIE2));
TIMSK2 |= (1<<OCIE2A);
 
SREG = sreg;
}
 
//----------------------------
void Timer_Init(void)
{
tim_main = SetDelay(10);
TCCR0B = CK8;
TCCR0A = (1<<COM0A1)|(1<<COM0B1)|3;//fast PWM
OCR0A = 0;
OCR0B = 180;
TCNT0 = (unsigned char)-TIMER_RELOAD_VALUE; // reload
//OCR1 = 0x00;
TIMSK0 |= _BV(TOIE0);
}
 
 
/*****************************************************/
/* Control Servo Position */
/*****************************************************/
 
ISR(TIMER2_COMPA_vect)
{
// frame len 22.5 ms = 14063 * 1.6 us
// stop pulse: 0.3 ms = 188 * 1.6 us
// min servo pulse: 0.6 ms = 375 * 1.6 us
// max servo pulse: 2.4 ms = 1500 * 1.6 us
// resolution: 1500 - 375 = 1125 steps
 
#define IRS_RUNTIME 127
#define PPM_STOPPULSE 188
// #define PPM_FRAMELEN (14063
#define PPM_FRAMELEN (1757 * EE_Parameter.ServoNickRefresh)
#define MINSERVOPULSE 375
#define MAXSERVOPULSE 1500
#define SERVORANGE (MAXSERVOPULSE - MINSERVOPULSE)
 
static uint8_t PulseOutput = 0;
static uint16_t RemainingPulse = 0;
static uint16_t ServoFrameTime = 0;
static uint8_t ServoIndex = 0;
 
#define MULTIPLYER 4
static int16_t ServoNickOffset = (255 / 2) * MULTIPLYER; // initial value near center positon
static int16_t ServoRollOffset = (255 / 2) * MULTIPLYER; // initial value near center positon
 
 
// Arthur P: Modified the code to scheck the value of parameter 8. If 128 or higher then a HEF4017 is
// expected and will be used. Else J7 and J9 are seen as separate normal outputs.
// if((PlatinenVersion < 20)
// 091114. Inserted same changes into v.0.76g code.
// 20100802 Inserted same changes into v.0.80d code.
if((PlatinenVersion < 20) && (Parameter_UserParam8 < 128 ))
{
//---------------------------
// Nick servo state machine
//---------------------------
if(!PulseOutput) // pulse output complete
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
 
ServoNickOffset = (ServoNickOffset * 3 + (int16_t)Parameter_ServoNickControl * MULTIPLYER) / 4; // lowpass offset
ServoNickValue = ServoNickOffset; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & 0x01)
{ // inverting movement of servo
ServoNickValue += (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
else
{ // non inverting movement of servo
ServoNickValue -= (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
// limit servo value to its parameter range definition
if(ServoNickValue < ((int16_t)EE_Parameter.ServoNickMin * MULTIPLYER) )
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMin * MULTIPLYER;
}
else
if(ServoNickValue > ((int16_t)EE_Parameter.ServoNickMax * MULTIPLYER) )
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMax * MULTIPLYER;
}
 
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
 
ServoNickValue /= MULTIPLYER;
 
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE ) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
else if(RemainingPulse < MINSERVOPULSE ) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
// accumulate time for correct update rate
ServoFrameTime = RemainingPulse;
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
RemainingPulse = PPM_FRAMELEN - ServoFrameTime;
}
// set pulse output active
PulseOutput = 1;
}
} // EOF Nick servo state machine
else
{
//-----------------------------------------------------
// PPM state machine, onboard demultiplexed by HEF4017
//-----------------------------------------------------
if(!PulseOutput) // pulse output complete
{
if(TCCR2A & (1<<COM2A0)) // we had a low pulse
{
TCCR2A &= ~(1<<COM2A0);// make a high pulse
 
if(ServoIndex == 0) // if we are at the sync gap
{
RemainingPulse = PPM_FRAMELEN - ServoFrameTime; // generate sync gap by filling time to full frame time
ServoFrameTime = 0; // reset servo frame time
HEF4017R_ON; // enable HEF4017 reset
}
else // servo channels
{
RemainingPulse = MINSERVOPULSE + SERVORANGE/2; // center position ~ 1.5ms
switch(ServoIndex) // map servo channels
{
case 1: // Nick Compensation Servo
ServoNickOffset = (ServoNickOffset * 3 + (int16_t)Parameter_ServoNickControl * MULTIPLYER) / 4; // lowpass offset
ServoNickValue = ServoNickOffset; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & 0x01)
{ // inverting movement of servo
ServoNickValue += (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
else
{ // non inverting movement of servo
ServoNickValue -= (int16_t)( ( (int32_t)EE_Parameter.ServoNickComp * MULTIPLYER * (IntegralNick / 128L ) ) / (256L) );
}
// limit servo value to its parameter range definition
if(ServoNickValue < ((int16_t)EE_Parameter.ServoNickMin * MULTIPLYER) )
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMin * MULTIPLYER;
}
else
if(ServoNickValue > ((int16_t)EE_Parameter.ServoNickMax * MULTIPLYER) )
{
ServoNickValue = (int16_t)EE_Parameter.ServoNickMax * MULTIPLYER;
}
RemainingPulse += ServoNickValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
ServoNickValue /= MULTIPLYER;
break;
case 2: // Roll Compensation Servo
ServoRollOffset = (ServoRollOffset * 3 + (int16_t) Parameter_ServoRollControl * MULTIPLYER) / 4; // lowpass offset
ServoRollValue = ServoRollOffset; // offset (Range from 0 to 255 * 3 = 765)
if(EE_Parameter.ServoCompInvert & 0x02)
{ // inverting movement of servo
ServoRollValue += (int16_t)( ( (int32_t) EE_Parameter.ServoRollComp * MULTIPLYER * (IntegralRoll / 128L ) ) / (256L) );
}
else
{ // non inverting movement of servo
ServoRollValue -= (int16_t)( ( (int32_t) EE_Parameter.ServoRollComp * MULTIPLYER * (IntegralRoll / 128L ) ) / (256L) );
}
// limit servo value to its parameter range definition
if(ServoRollValue < ((int16_t)EE_Parameter.ServoRollMin * MULTIPLYER) )
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMin * MULTIPLYER;
}
else
if(ServoRollValue > ((int16_t)EE_Parameter.ServoRollMax * MULTIPLYER) )
{
ServoRollValue = (int16_t)EE_Parameter.ServoRollMax * MULTIPLYER;
}
RemainingPulse += ServoRollValue - (256 / 2) * MULTIPLYER; // shift ServoNickValue to center position
ServoRollValue /= MULTIPLYER;
//DebugOut.Analog[20] = ServoRollValue;
break;
 
case 3: // Arthur P: Shutter Servo including interval control over parameter 8 lower 7 bits.
// 091114 Inserted same modification into v.0.76g code, removing previously REM-ed out modified parts.
// 20100802 Inserted same modification into v.0.76g code, removing previously REM-ed out modified parts.
// Modified to use lower 7 bits of user parameter 8.
// RemainingPulse += ((int16_t)Parameter_Servo3 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
// break;
 
if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] < -32)
{
// Set servo to null position, turning camera off.
RemainingPulse = MINSERVOPULSE;
}
else
{
// 090807: Arthur P.: Removed the shutter cycle parts as they may be impacting timing loops.
// 20100804 Reactived shutter interval timer capability.
if(PPM_in[EE_Parameter.Kanalbelegung[K_POTI3]] > 32)
// Top position on a 3 position switch which runs from -127 to +127
{
// Changed so that on full up position full servo range out is given, while
// on half position, have range is given. This will work better with electronic
// switches.
RemainingPulse = MINSERVOPULSE + SERVORANGE;
}
else
{
// Cycle shutter servo between on and off depending upon CameraShutterCycleCounter
// If CameraShutterCylce < 50 then default to continuous / manual shoot.
if(CameraShutterCycle < 50 )
{
RemainingPulse = MINSERVOPULSE + SERVORANGE/2;
}
else
{
if(CameraShutterCycleCounter == CameraShutterCycle)
{
// Shutter on
CameraShutterCycleCounter = 0;
RemainingPulse = MINSERVOPULSE + SERVORANGE/2;
}
else
{
// Leave on for at least 20 cycles or 0.20 seconds to allow
// the camera to properly trigger, turn off if past 0.2 sec.
CameraShutterCycleCounter++;
if(CameraShutterCycleCounter == CameraShutterCycleOnCount)
{
// Shutter off
RemainingPulse = MINSERVOPULSE;
}
}
}
}
}
break;
case 4:
RemainingPulse += ((int16_t)Parameter_Servo4 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
case 5:
RemainingPulse += ((int16_t)Parameter_Servo5 * MULTIPLYER) - (256 / 2) * MULTIPLYER;
break;
default: // other servo channels
RemainingPulse += 2 * PPM_in[ServoIndex]; // add channel value, factor of 2 because timer 1 increments 3.2µs
break;
}
// range servo pulse width
if(RemainingPulse > MAXSERVOPULSE ) RemainingPulse = MAXSERVOPULSE; // upper servo pulse limit
else if(RemainingPulse < MINSERVOPULSE ) RemainingPulse = MINSERVOPULSE; // lower servo pulse limit
// substract stop pulse width
RemainingPulse -= PPM_STOPPULSE;
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
}
}
else // we had a high pulse
{
TCCR2A |= (1<<COM2A0); // make a low pulse
// set pulsewidth to stop pulse width
RemainingPulse = PPM_STOPPULSE;
// accumulate time for correct sync gap
ServoFrameTime += RemainingPulse;
if((ServoActive && SenderOkay > 180) || ServoActive == 2) HEF4017R_OFF; // disable HEF4017 reset
else HEF4017R_ON;
ServoIndex++; // change to next servo channel
if(ServoIndex > EE_Parameter.ServoNickRefresh) ServoIndex = 0; // reset to the sync gap
}
// set pulse output active
PulseOutput = 1;
}
} // EOF PPM state machine
 
// General pulse output generator
if(RemainingPulse > (255 + IRS_RUNTIME))
{
OCR2A = 255;
RemainingPulse -= 255;
}
else
{
if(RemainingPulse > 255) // this is the 2nd last part
{
if((RemainingPulse - 255) < IRS_RUNTIME)
{
OCR2A = 255 - IRS_RUNTIME;
RemainingPulse -= 255 - IRS_RUNTIME;
 
}
else // last part > ISR_RUNTIME
{
OCR2A = 255;
RemainingPulse -= 255;
}
}
else // this is the last part
{
OCR2A = RemainingPulse;
RemainingPulse = 0;
PulseOutput = 0; // trigger to stop pulse
}
} // EOF general pulse output generator
}
/branches/V0.80d-Arthur-P/timer0.h
0,0 → 1,21
 
#define TIMER_TEILER CK8
#define TIMER_RELOAD_VALUE 250
#define HEF4017R_ON PORTC |= (1<<PORTC6)
#define HEF4017R_OFF PORTC &= ~(1<<PORTC6)
 
void Timer_Init(void);
void TIMER2_Init(void);
void Delay_ms(unsigned int);
void Delay_ms_Mess(unsigned int);
unsigned int SetDelay (unsigned int t);
char CheckDelay (unsigned int t);
 
extern volatile unsigned int CountMilliseconds;
extern volatile unsigned char UpdateMotor;
extern volatile unsigned int beeptime;
extern volatile unsigned int cntKompass;
extern unsigned int BeepMuster;
extern volatile unsigned char SendSPI, ServoActive;
extern volatile int16_t ServoNickValue;
extern volatile int16_t ServoRollValue;
/branches/V0.80d-Arthur-P/timer0.lst
0,0 → 1,1406
1 .file "timer0.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global ServoRollValue
11 .global ServoRollValue
12 .section .bss
15 ServoRollValue:
16 0000 0000 .skip 2,0
17 .global ServoNickValue
18 .global ServoNickValue
21 ServoNickValue:
22 0002 0000 .skip 2,0
23 .global BeepMuster
24 .data
27 BeepMuster:
28 0000 FFFF .word -1
29 .global ServoActive
30 .global ServoActive
31 .section .bss
34 ServoActive:
35 0004 00 .skip 1,0
36 .global SendSPI
37 .global SendSPI
40 SendSPI:
41 0005 00 .skip 1,0
42 .global beeptime
43 .global beeptime
46 beeptime:
47 0006 0000 .skip 2,0
48 .global cntKompass
49 .global cntKompass
52 cntKompass:
53 0008 0000 .skip 2,0
54 .global UpdateMotor
55 .global UpdateMotor
58 UpdateMotor:
59 000a 00 .skip 1,0
60 .global CountMilliseconds
61 .global CountMilliseconds
64 CountMilliseconds:
65 000b 0000 .skip 2,0
66 .data
69 CameraShutterCycleOnCount:
70 0002 1400 .word 20
71 .lcomm CameraShutterCycleCounter,2
72 .lcomm CameraShutterCycle,2
75 cnt_1ms.6:
76 0004 01 .byte 1
77 .lcomm cnt.7,1
78 .lcomm compass_active.8,1
79 .text
80 .global __vector_18
82 __vector_18:
83 /* prologue: frame size=0 */
84 0000 1F92 push __zero_reg__
85 0002 0F92 push __tmp_reg__
86 0004 0FB6 in __tmp_reg__,__SREG__
87 0006 0F92 push __tmp_reg__
88 0008 1124 clr __zero_reg__
89 000a 2F93 push r18
90 000c 3F93 push r19
91 000e 5F93 push r21
92 0010 6F93 push r22
93 0012 7F93 push r23
94 0014 8F93 push r24
95 0016 9F93 push r25
96 0018 AF93 push r26
97 001a BF93 push r27
98 001c EF93 push r30
99 001e FF93 push r31
100 /* prologue end (size=16) */
101 0020 20E0 ldi r18,lo8(0)
102 0022 8091 0000 lds r24,SendSPI
103 0026 8823 tst r24
104 0028 29F0 breq .L2
105 002a 8091 0000 lds r24,SendSPI
106 002e 8150 subi r24,lo8(-(-1))
107 0030 8093 0000 sts SendSPI,r24
108 .L2:
109 0034 8091 0000 lds r24,SpektrumTimer
110 0038 8823 tst r24
111 003a 19F0 breq .L3
112 003c 8150 subi r24,lo8(-(-1))
113 003e 8093 0000 sts SpektrumTimer,r24
114 .L3:
115 0042 8091 0000 lds r24,cnt.7
116 0046 8150 subi r24,lo8(-(-1))
117 0048 8093 0000 sts cnt.7,r24
118 004c 8F3F cpi r24,lo8(-1)
119 004e 09F0 breq .+2
120 0050 57C0 rjmp .L4
121 0052 89E0 ldi r24,lo8(9)
122 0054 8093 0000 sts cnt.7,r24
123 0058 8091 0000 lds r24,CountMilliseconds
124 005c 9091 0000 lds r25,(CountMilliseconds)+1
125 0060 0196 adiw r24,1
126 0062 9093 0000 sts (CountMilliseconds)+1,r25
127 0066 8093 0000 sts CountMilliseconds,r24
128 006a 8091 0000 lds r24,cnt_1ms.6
129 006e 8F5F subi r24,lo8(-(1))
130 0070 8170 andi r24,lo8(1)
131 0072 8093 0000 sts cnt_1ms.6,r24
132 0076 8823 tst r24
133 0078 19F4 brne .L5
134 007a 81E0 ldi r24,lo8(1)
135 007c 8093 0000 sts UpdateMotor,r24
136 .L5:
137 0080 86B1 in r24,38-0x20
138 0082 8091 0000 lds r24,beeptime
139 0086 9091 0000 lds r25,(beeptime)+1
140 008a 892B or r24,r25
141 008c 21F1 breq .L7
142 008e 8091 0000 lds r24,beeptime
143 0092 9091 0000 lds r25,(beeptime)+1
144 0096 0B97 sbiw r24,11
145 0098 50F0 brlo .L8
146 009a 8091 0000 lds r24,beeptime
147 009e 9091 0000 lds r25,(beeptime)+1
148 00a2 0A97 sbiw r24,10
149 00a4 9093 0000 sts (beeptime)+1,r25
150 00a8 8093 0000 sts beeptime,r24
151 00ac 04C0 rjmp .L9
152 .L8:
153 00ae 1092 0000 sts (beeptime)+1,__zero_reg__
154 00b2 1092 0000 sts beeptime,__zero_reg__
155 .L9:
156 00b6 8091 0000 lds r24,beeptime
157 00ba 9091 0000 lds r25,(beeptime)+1
158 00be 2091 0000 lds r18,BeepMuster
159 00c2 3091 0000 lds r19,(BeepMuster)+1
160 00c6 8223 and r24,r18
161 00c8 9323 and r25,r19
162 00ca 892B or r24,r25
163 00cc 11F0 breq .L10
164 00ce 21E0 ldi r18,lo8(1)
165 00d0 08C0 rjmp .L12
166 .L10:
167 00d2 20E0 ldi r18,lo8(0)
168 00d4 06C0 rjmp .L12
169 .L7:
170 00d6 8FEF ldi r24,lo8(-1)
171 00d8 9FEF ldi r25,hi8(-1)
172 00da 9093 0000 sts (BeepMuster)+1,r25
173 00de 8093 0000 sts BeepMuster,r24
174 .L12:
175 00e2 8091 0000 lds r24,PlatinenVersion
176 00e6 2223 tst r18
177 00e8 31F0 breq .L13
178 00ea 8A30 cpi r24,lo8(10)
179 00ec 11F4 brne .L14
180 00ee 5A9A sbi 43-0x20,2
181 00f0 07C0 rjmp .L4
182 .L14:
183 00f2 479A sbi 40-0x20,7
184 00f4 05C0 rjmp .L4
185 .L13:
186 00f6 8A30 cpi r24,lo8(10)
187 00f8 11F4 brne .L17
188 00fa 5A98 cbi 43-0x20,2
189 00fc 01C0 rjmp .L4
190 .L17:
191 00fe 4798 cbi 40-0x20,7
192 .L4:
193 0100 8091 0000 lds r24,compass_active.8
194 0104 8823 tst r24
195 0106 09F4 brne .+2
196 0108 72C0 rjmp .L1
197 010a 2091 0000 lds r18,NaviDataOkay
198 010e 2223 tst r18
199 0110 09F0 breq .+2
200 0112 6DC0 rjmp .L1
201 0114 8091 0000 lds r24,EE_Parameter+13
202 0118 83FF sbrs r24,3
203 011a 69C0 rjmp .L1
204 011c 86B1 in r24,38-0x20
205 011e 9927 clr r25
206 0120 FC01 movw r30,r24
207 0122 E071 andi r30,lo8(16)
208 0124 F070 andi r31,hi8(16)
209 0126 84FF sbrs r24,4
210 0128 14C0 rjmp .L20
211 012a 8091 0000 lds r24,cntKompass
212 012e 9091 0000 lds r25,(cntKompass)+1
213 0132 0196 adiw r24,1
214 0134 9093 0000 sts (cntKompass)+1,r25
215 0138 8093 0000 sts cntKompass,r24
216 013c 8091 0000 lds r24,cntKompass
217 0140 9091 0000 lds r25,(cntKompass)+1
218 0144 895E subi r24,lo8(1001)
219 0146 9340 sbci r25,hi8(1001)
220 0148 08F4 brsh .+2
221 014a 51C0 rjmp .L1
222 014c 2093 0000 sts compass_active.8,r18
223 0150 4EC0 rjmp .L1
224 .L20:
225 0152 8091 0000 lds r24,cntKompass
226 0156 9091 0000 lds r25,(cntKompass)+1
227 015a 892B or r24,r25
228 015c 09F4 brne .+2
229 015e 43C0 rjmp .L23
230 0160 8091 0000 lds r24,cntKompass
231 0164 9091 0000 lds r25,(cntKompass)+1
232 0168 8A56 subi r24,lo8(362)
233 016a 9140 sbci r25,hi8(362)
234 016c E0F5 brsh .L23
235 016e 8091 0000 lds r24,cntKompass
236 0172 9091 0000 lds r25,(cntKompass)+1
237 0176 69E2 ldi r22,lo8(41)
238 0178 70E0 ldi r23,hi8(41)
239 017a 0E94 0000 call __udivmodhi4
240 017e 8091 0000 lds r24,cntKompass
241 0182 9091 0000 lds r25,(cntKompass)+1
242 0186 860F add r24,r22
243 0188 971F adc r25,r23
244 018a 9093 0000 sts (cntKompass)+1,r25
245 018e 8093 0000 sts cntKompass,r24
246 0192 8091 0000 lds r24,cntKompass
247 0196 9091 0000 lds r25,(cntKompass)+1
248 019a 0B97 sbiw r24,11
249 019c 50F0 brlo .L24
250 019e 8091 0000 lds r24,cntKompass
251 01a2 9091 0000 lds r25,(cntKompass)+1
252 01a6 0A97 sbiw r24,10
253 01a8 9093 0000 sts (KompassValue)+1,r25
254 01ac 8093 0000 sts KompassValue,r24
255 01b0 04C0 rjmp .L25
256 .L24:
257 01b2 F093 0000 sts (KompassValue)+1,r31
258 01b6 E093 0000 sts KompassValue,r30
259 .L25:
260 01ba 8091 0000 lds r24,KompassValue
261 01be 9091 0000 lds r25,(KompassValue)+1
262 01c2 2091 0000 lds r18,KompassStartwert
263 01c6 3091 0000 lds r19,(KompassStartwert)+1
264 01ca 821B sub r24,r18
265 01cc 930B sbc r25,r19
266 01ce 845E subi r24,lo8(-(540))
267 01d0 9D4F sbci r25,hi8(-(540))
268 01d2 68E6 ldi r22,lo8(360)
269 01d4 71E0 ldi r23,hi8(360)
270 01d6 0E94 0000 call __divmodhi4
271 01da 845B subi r24,lo8(-(-180))
272 01dc 9040 sbci r25,hi8(-(-180))
273 01de 9093 0000 sts (KompassRichtung)+1,r25
274 01e2 8093 0000 sts KompassRichtung,r24
275 .L23:
276 01e6 1092 0000 sts (cntKompass)+1,__zero_reg__
277 01ea 1092 0000 sts cntKompass,__zero_reg__
278 .L1:
279 /* epilogue: frame size=0 */
280 01ee FF91 pop r31
281 01f0 EF91 pop r30
282 01f2 BF91 pop r27
283 01f4 AF91 pop r26
284 01f6 9F91 pop r25
285 01f8 8F91 pop r24
286 01fa 7F91 pop r23
287 01fc 6F91 pop r22
288 01fe 5F91 pop r21
289 0200 3F91 pop r19
290 0202 2F91 pop r18
291 0204 0F90 pop __tmp_reg__
292 0206 0FBE out __SREG__,__tmp_reg__
293 0208 0F90 pop __tmp_reg__
294 020a 1F90 pop __zero_reg__
295 020c 1895 reti
296 /* epilogue end (size=16) */
297 /* function __vector_18 size 267 (235) */
299 .global SetDelay
301 SetDelay:
302 /* prologue: frame size=0 */
303 /* prologue end (size=0) */
304 020e 2091 0000 lds r18,CountMilliseconds
305 0212 3091 0000 lds r19,(CountMilliseconds)+1
306 0216 280F add r18,r24
307 0218 391F adc r19,r25
308 021a C901 movw r24,r18
309 021c 0196 adiw r24,1
310 /* epilogue: frame size=0 */
311 021e 0895 ret
312 /* epilogue end (size=1) */
313 /* function SetDelay size 9 (8) */
315 .global CheckDelay
317 CheckDelay:
318 /* prologue: frame size=0 */
319 /* prologue end (size=0) */
320 0220 2091 0000 lds r18,CountMilliseconds
321 0224 3091 0000 lds r19,(CountMilliseconds)+1
322 0228 821B sub r24,r18
323 022a 930B sbc r25,r19
324 022c 892F mov r24,r25
325 022e 9927 clr r25
326 0230 8695 lsr r24
327 0232 8074 andi r24,lo8(64)
328 0234 9070 andi r25,hi8(64)
329 /* epilogue: frame size=0 */
330 0236 0895 ret
331 /* epilogue end (size=1) */
332 /* function CheckDelay size 12 (11) */
334 .global Delay_ms
336 Delay_ms:
337 /* prologue: frame size=0 */
338 0238 CF93 push r28
339 023a DF93 push r29
340 /* prologue end (size=2) */
341 023c 0E94 0000 call SetDelay
342 0240 EC01 movw r28,r24
343 .L29:
344 0242 CE01 movw r24,r28
345 0244 0E94 0000 call CheckDelay
346 0248 8823 tst r24
347 024a D9F3 breq .L29
348 /* epilogue: frame size=0 */
349 024c DF91 pop r29
350 024e CF91 pop r28
351 0250 0895 ret
352 /* epilogue end (size=3) */
353 /* function Delay_ms size 13 (8) */
355 .global Delay_ms_Mess
357 Delay_ms_Mess:
358 /* prologue: frame size=0 */
359 0252 CF93 push r28
360 0254 DF93 push r29
361 /* prologue end (size=2) */
362 0256 0E94 0000 call SetDelay
363 025a EC01 movw r28,r24
364 025c 09C0 rjmp .L40
365 .L36:
366 025e 8091 0000 lds r24,AdReady
367 0262 8823 tst r24
368 0264 29F0 breq .L40
369 0266 9093 0000 sts AdReady,r25
370 026a 8FEC ldi r24,lo8(-49)
371 026c 8093 7A00 sts 122,r24
372 .L40:
373 0270 CE01 movw r24,r28
374 0272 0E94 0000 call CheckDelay
375 0276 982F mov r25,r24
376 0278 8823 tst r24
377 027a 89F3 breq .L36
378 /* epilogue: frame size=0 */
379 027c DF91 pop r29
380 027e CF91 pop r28
381 0280 0895 ret
382 /* epilogue end (size=3) */
383 /* function Delay_ms_Mess size 24 (19) */
385 .global TIMER2_Init
387 TIMER2_Init:
388 /* prologue: frame size=0 */
389 /* prologue end (size=0) */
390 0282 4FB7 in r20,95-0x20
391 0284 8091 0000 lds r24,Parameter_UserParam8
392 0288 282F mov r18,r24
393 028a 3327 clr r19
394 028c 2F77 andi r18,lo8(127)
395 028e 3070 andi r19,hi8(127)
396 0290 C901 movw r24,r18
397 0292 880F lsl r24
398 0294 991F rol r25
399 0296 880F lsl r24
400 0298 991F rol r25
401 029a 820F add r24,r18
402 029c 931F adc r25,r19
403 029e 9093 0000 sts (CameraShutterCycle)+1,r25
404 02a2 8093 0000 sts CameraShutterCycle,r24
405 /* #APP */
406 02a6 F894 cli
407 /* #NOAPP */
408 02a8 5F98 cbi 43-0x20,7
409 02aa 3E9A sbi 39-0x20,6
410 02ac 469A sbi 40-0x20,6
411 02ae 8091 B000 lds r24,176
412 02b2 8F70 andi r24,lo8(15)
413 02b4 8093 B000 sts 176,r24
414 02b8 8091 B000 lds r24,176
415 02bc 8360 ori r24,lo8(3)
416 02be 8093 B000 sts 176,r24
417 02c2 8091 B100 lds r24,177
418 02c6 8B73 andi r24,lo8(59)
419 02c8 8093 B100 sts 177,r24
420 02cc 8091 B100 lds r24,177
421 02d0 8B60 ori r24,lo8(11)
422 02d2 8093 B100 sts 177,r24
423 02d6 1092 B200 sts 178,__zero_reg__
424 02da 8FEF ldi r24,lo8(-1)
425 02dc 8093 B300 sts 179,r24
426 02e0 8091 B000 lds r24,176
427 02e4 8068 ori r24,lo8(-128)
428 02e6 8093 B000 sts 176,r24
429 02ea 8091 7000 lds r24,112
430 02ee 8A7F andi r24,lo8(-6)
431 02f0 8093 7000 sts 112,r24
432 02f4 8091 7000 lds r24,112
433 02f8 8260 ori r24,lo8(2)
434 02fa 8093 7000 sts 112,r24
435 02fe 4FBF out 95-0x20,r20
436 /* epilogue: frame size=0 */
437 0300 0895 ret
438 /* epilogue end (size=1) */
439 /* function TIMER2_Init size 65 (64) */
441 .global Timer_Init
443 Timer_Init:
444 /* prologue: frame size=0 */
445 /* prologue end (size=0) */
446 0302 8AE0 ldi r24,lo8(10)
447 0304 90E0 ldi r25,hi8(10)
448 0306 0E94 0000 call SetDelay
449 030a 9093 0000 sts (tim_main)+1,r25
450 030e 8093 0000 sts tim_main,r24
451 0312 82E0 ldi r24,lo8(2)
452 0314 85BD out 69-0x20,r24
453 0316 83EA ldi r24,lo8(-93)
454 0318 84BD out 68-0x20,r24
455 031a 17BC out 71-0x20,__zero_reg__
456 031c 84EB ldi r24,lo8(-76)
457 031e 88BD out 72-0x20,r24
458 0320 86E0 ldi r24,lo8(6)
459 0322 86BD out 70-0x20,r24
460 0324 8091 6E00 lds r24,110
461 0328 8160 ori r24,lo8(1)
462 032a 8093 6E00 sts 110,r24
463 /* epilogue: frame size=0 */
464 032e 0895 ret
465 /* epilogue end (size=1) */
466 /* function Timer_Init size 23 (22) */
468 .lcomm PulseOutput.0,1
469 .lcomm RemainingPulse.1,2
470 .lcomm ServoFrameTime.2,2
471 .lcomm ServoIndex.3,1
472 .data
475 ServoNickOffset.4:
476 0005 FC01 .word 508
479 ServoRollOffset.5:
480 0007 FC01 .word 508
481 .text
482 .global __vector_9
484 __vector_9:
485 /* prologue: frame size=0 */
486 0330 1F92 push __zero_reg__
487 0332 0F92 push __tmp_reg__
488 0334 0FB6 in __tmp_reg__,__SREG__
489 0336 0F92 push __tmp_reg__
490 0338 1124 clr __zero_reg__
491 033a 2F93 push r18
492 033c 3F93 push r19
493 033e 4F93 push r20
494 0340 5F93 push r21
495 0342 6F93 push r22
496 0344 7F93 push r23
497 0346 8F93 push r24
498 0348 9F93 push r25
499 034a AF93 push r26
500 034c BF93 push r27
501 034e CF93 push r28
502 0350 DF93 push r29
503 0352 EF93 push r30
504 0354 FF93 push r31
505 /* prologue end (size=19) */
506 0356 8091 0000 lds r24,PlatinenVersion
507 035a 8431 cpi r24,lo8(20)
508 035c 08F0 brlo .+2
509 035e 17C1 rjmp .L44
510 0360 8091 0000 lds r24,Parameter_UserParam8
511 0364 87FD sbrc r24,7
512 0366 13C1 rjmp .L44
513 0368 8091 0000 lds r24,PulseOutput.0
514 036c 8823 tst r24
515 036e 09F0 breq .+2
516 0370 AEC3 rjmp .L62
517 0372 8091 B000 lds r24,176
518 0376 86FF sbrs r24,6
519 0378 ECC0 rjmp .L46
520 037a 8091 B000 lds r24,176
521 037e 8F7B andi r24,lo8(-65)
522 0380 8093 B000 sts 176,r24
523 0384 89EA ldi r24,lo8(937)
524 0386 93E0 ldi r25,hi8(937)
525 0388 9093 0000 sts (RemainingPulse.1)+1,r25
526 038c 8093 0000 sts RemainingPulse.1,r24
527 0390 8091 0000 lds r24,ServoNickOffset.4
528 0394 9091 0000 lds r25,(ServoNickOffset.4)+1
529 0398 9C01 movw r18,r24
530 039a 220F lsl r18
531 039c 331F rol r19
532 039e 280F add r18,r24
533 03a0 391F adc r19,r25
534 03a2 8091 0000 lds r24,Parameter_ServoNickControl
535 03a6 9927 clr r25
536 03a8 880F lsl r24
537 03aa 991F rol r25
538 03ac 880F lsl r24
539 03ae 991F rol r25
540 03b0 280F add r18,r24
541 03b2 391F adc r19,r25
542 03b4 37FF sbrs r19,7
543 03b6 02C0 rjmp .L47
544 03b8 2D5F subi r18,lo8(-(3))
545 03ba 3F4F sbci r19,hi8(-(3))
546 .L47:
547 03bc C901 movw r24,r18
548 03be 9595 asr r25
549 03c0 8795 ror r24
550 03c2 9595 asr r25
551 03c4 8795 ror r24
552 03c6 9093 0000 sts (ServoNickOffset.4)+1,r25
553 03ca 8093 0000 sts ServoNickOffset.4,r24
554 03ce 9093 0000 sts (ServoNickValue)+1,r25
555 03d2 8093 0000 sts ServoNickValue,r24
556 03d6 8091 0000 lds r24,EE_Parameter+98
557 03da 6091 0000 lds r22,EE_Parameter+46
558 03de 2091 0000 lds r18,IntegralNick
559 03e2 3091 0000 lds r19,(IntegralNick)+1
560 03e6 4091 0000 lds r20,(IntegralNick)+2
561 03ea 5091 0000 lds r21,(IntegralNick)+3
562 03ee 80FF sbrs r24,0
563 03f0 2CC0 rjmp .L48
564 03f2 7727 clr r23
565 03f4 8827 clr r24
566 03f6 9927 clr r25
567 03f8 EA01 movw r28,r20
568 03fa D901 movw r26,r18
569 03fc 57FF sbrs r21,7
570 03fe 04C0 rjmp .L49
571 0400 A158 subi r26,lo8(-(127))
572 0402 BF4F sbci r27,hi8(-(127))
573 0404 CF4F sbci r28,hlo8(-(127))
574 0406 DF4F sbci r29,hhi8(-(127))
575 .L49:
576 0408 E7E0 ldi r30,7
577 040a D595 1: asr r29
578 040c C795 ror r28
579 040e B795 ror r27
580 0410 A795 ror r26
581 0412 EA95 dec r30
582 0414 D1F7 brne 1b
583 0416 9D01 movw r18,r26
584 0418 AE01 movw r20,r28
585 041a 0E94 0000 call __mulsi3
586 041e 9B01 movw r18,r22
587 0420 AC01 movw r20,r24
588 0422 97FF sbrs r25,7
589 0424 04C0 rjmp .L50
590 0426 215C subi r18,lo8(-(63))
591 0428 3F4F sbci r19,hi8(-(63))
592 042a 4F4F sbci r20,hlo8(-(63))
593 042c 5F4F sbci r21,hhi8(-(63))
594 .L50:
595 042e 66E0 ldi r22,6
596 0430 5595 1: asr r21
597 0432 4795 ror r20
598 0434 3795 ror r19
599 0436 2795 ror r18
600 0438 6A95 dec r22
601 043a D1F7 brne 1b
602 043c 8091 0000 lds r24,ServoNickValue
603 0440 9091 0000 lds r25,(ServoNickValue)+1
604 0444 820F add r24,r18
605 0446 931F adc r25,r19
606 0448 2BC0 rjmp .L121
607 .L48:
608 044a 7727 clr r23
609 044c 8827 clr r24
610 044e 9927 clr r25
611 0450 EA01 movw r28,r20
612 0452 D901 movw r26,r18
613 0454 57FF sbrs r21,7
614 0456 04C0 rjmp .L52
615 0458 A158 subi r26,lo8(-(127))
616 045a BF4F sbci r27,hi8(-(127))
617 045c CF4F sbci r28,hlo8(-(127))
618 045e DF4F sbci r29,hhi8(-(127))
619 .L52:
620 0460 27E0 ldi r18,7
621 0462 D595 1: asr r29
622 0464 C795 ror r28
623 0466 B795 ror r27
624 0468 A795 ror r26
625 046a 2A95 dec r18
626 046c D1F7 brne 1b
627 046e 9D01 movw r18,r26
628 0470 AE01 movw r20,r28
629 0472 0E94 0000 call __mulsi3
630 0476 9B01 movw r18,r22
631 0478 AC01 movw r20,r24
632 047a 97FF sbrs r25,7
633 047c 04C0 rjmp .L53
634 047e 215C subi r18,lo8(-(63))
635 0480 3F4F sbci r19,hi8(-(63))
636 0482 4F4F sbci r20,hlo8(-(63))
637 0484 5F4F sbci r21,hhi8(-(63))
638 .L53:
639 0486 F6E0 ldi r31,6
640 0488 5595 1: asr r21
641 048a 4795 ror r20
642 048c 3795 ror r19
643 048e 2795 ror r18
644 0490 FA95 dec r31
645 0492 D1F7 brne 1b
646 0494 8091 0000 lds r24,ServoNickValue
647 0498 9091 0000 lds r25,(ServoNickValue)+1
648 049c 821B sub r24,r18
649 049e 930B sbc r25,r19
650 .L121:
651 04a0 9093 0000 sts (ServoNickValue)+1,r25
652 04a4 8093 0000 sts ServoNickValue,r24
653 04a8 8091 0000 lds r24,EE_Parameter+47
654 04ac 282F mov r18,r24
655 04ae 3327 clr r19
656 04b0 220F lsl r18
657 04b2 331F rol r19
658 04b4 220F lsl r18
659 04b6 331F rol r19
660 04b8 8091 0000 lds r24,ServoNickValue
661 04bc 9091 0000 lds r25,(ServoNickValue)+1
662 04c0 8217 cp r24,r18
663 04c2 9307 cpc r25,r19
664 04c4 7CF0 brlt .L122
665 04c6 8091 0000 lds r24,EE_Parameter+48
666 04ca 282F mov r18,r24
667 04cc 3327 clr r19
668 04ce 220F lsl r18
669 04d0 331F rol r19
670 04d2 220F lsl r18
671 04d4 331F rol r19
672 04d6 8091 0000 lds r24,ServoNickValue
673 04da 9091 0000 lds r25,(ServoNickValue)+1
674 04de 2817 cp r18,r24
675 04e0 3907 cpc r19,r25
676 04e2 24F4 brge .L55
677 .L122:
678 04e4 3093 0000 sts (ServoNickValue)+1,r19
679 04e8 2093 0000 sts ServoNickValue,r18
680 .L55:
681 04ec 2091 0000 lds r18,RemainingPulse.1
682 04f0 3091 0000 lds r19,(RemainingPulse.1)+1
683 04f4 8091 0000 lds r24,ServoNickValue
684 04f8 9091 0000 lds r25,(ServoNickValue)+1
685 04fc 280F add r18,r24
686 04fe 391F adc r19,r25
687 0500 2050 subi r18,lo8(-(-512))
688 0502 3240 sbci r19,hi8(-(-512))
689 0504 3093 0000 sts (RemainingPulse.1)+1,r19
690 0508 2093 0000 sts RemainingPulse.1,r18
691 050c 8091 0000 lds r24,ServoNickValue
692 0510 9091 0000 lds r25,(ServoNickValue)+1
693 0514 97FD sbrc r25,7
694 0516 0396 adiw r24,3
695 .L57:
696 0518 9595 asr r25
697 051a 8795 ror r24
698 051c 9595 asr r25
699 051e 8795 ror r24
700 0520 9093 0000 sts (ServoNickValue)+1,r25
701 0524 8093 0000 sts ServoNickValue,r24
702 0528 45E0 ldi r20,hi8(1501)
703 052a 2D3D cpi r18,lo8(1501)
704 052c 3407 cpc r19,r20
705 052e 18F0 brlo .L58
706 0530 8CED ldi r24,lo8(1500)
707 0532 95E0 ldi r25,hi8(1500)
708 0534 05C0 rjmp .L123
709 .L58:
710 0536 2757 subi r18,lo8(375)
711 0538 3140 sbci r19,hi8(375)
712 053a 30F4 brsh .L59
713 053c 87E7 ldi r24,lo8(375)
714 053e 91E0 ldi r25,hi8(375)
715 .L123:
716 0540 9093 0000 sts (RemainingPulse.1)+1,r25
717 0544 8093 0000 sts RemainingPulse.1,r24
718 .L59:
719 0548 8091 0000 lds r24,RemainingPulse.1
720 054c 9091 0000 lds r25,(RemainingPulse.1)+1
721 0550 87C2 rjmp .L134
722 .L46:
723 0552 8091 B000 lds r24,176
724 0556 8064 ori r24,lo8(64)
725 0558 8093 B000 sts 176,r24
726 055c 8091 0000 lds r24,EE_Parameter+53
727 0560 282F mov r18,r24
728 0562 3327 clr r19
729 0564 8DED ldi r24,lo8(1757)
730 0566 96E0 ldi r25,hi8(1757)
731 0568 289F mul r18,r24
732 056a A001 movw r20,r0
733 056c 299F mul r18,r25
734 056e 500D add r21,r0
735 0570 389F mul r19,r24
736 0572 500D add r21,r0
737 0574 1124 clr r1
738 0576 CA01 movw r24,r20
739 0578 2091 0000 lds r18,ServoFrameTime.2
740 057c 3091 0000 lds r19,(ServoFrameTime.2)+1
741 0580 821B sub r24,r18
742 0582 930B sbc r25,r19
743 0584 9093 0000 sts (RemainingPulse.1)+1,r25
744 0588 8093 0000 sts RemainingPulse.1,r24
745 058c 9DC2 rjmp .L109
746 .L44:
747 058e 8091 0000 lds r24,PulseOutput.0
748 0592 8823 tst r24
749 0594 09F0 breq .+2
750 0596 9BC2 rjmp .L62
751 0598 8091 B000 lds r24,176
752 059c 86FF sbrs r24,6
753 059e 65C2 rjmp .L64
754 05a0 8091 B000 lds r24,176
755 05a4 8F7B andi r24,lo8(-65)
756 05a6 8093 B000 sts 176,r24
757 05aa E091 0000 lds r30,ServoIndex.3
758 05ae EE23 tst r30
759 05b0 F1F4 brne .L65
760 05b2 8091 0000 lds r24,EE_Parameter+53
761 05b6 282F mov r18,r24
762 05b8 3327 clr r19
763 05ba 8DED ldi r24,lo8(1757)
764 05bc 96E0 ldi r25,hi8(1757)
765 05be 289F mul r18,r24
766 05c0 A001 movw r20,r0
767 05c2 299F mul r18,r25
768 05c4 500D add r21,r0
769 05c6 389F mul r19,r24
770 05c8 500D add r21,r0
771 05ca 1124 clr r1
772 05cc CA01 movw r24,r20
773 05ce 2091 0000 lds r18,ServoFrameTime.2
774 05d2 3091 0000 lds r19,(ServoFrameTime.2)+1
775 05d6 821B sub r24,r18
776 05d8 930B sbc r25,r19
777 05da 9093 0000 sts (RemainingPulse.1)+1,r25
778 05de 8093 0000 sts RemainingPulse.1,r24
779 05e2 1092 0000 sts (ServoFrameTime.2)+1,__zero_reg__
780 05e6 1092 0000 sts ServoFrameTime.2,__zero_reg__
781 05ea 469A sbi 40-0x20,6
782 05ec 6DC2 rjmp .L109
783 .L65:
784 05ee 49EA ldi r20,lo8(937)
785 05f0 53E0 ldi r21,hi8(937)
786 05f2 5093 0000 sts (RemainingPulse.1)+1,r21
787 05f6 4093 0000 sts RemainingPulse.1,r20
788 05fa 8E2F mov r24,r30
789 05fc 9927 clr r25
790 05fe 8330 cpi r24,3
791 0600 9105 cpc r25,__zero_reg__
792 0602 09F4 brne .+2
793 0604 A4C1 rjmp .L92
794 0606 8430 cpi r24,4
795 0608 9105 cpc r25,__zero_reg__
796 060a 3CF4 brge .L105
797 060c 8130 cpi r24,1
798 060e 9105 cpc r25,__zero_reg__
799 0610 61F0 breq .L68
800 0612 0297 sbiw r24,2
801 0614 09F4 brne .+2
802 0616 D2C0 rjmp .L80
803 0618 ECC1 rjmp .L104
804 .L105:
805 061a 8430 cpi r24,4
806 061c 9105 cpc r25,__zero_reg__
807 061e 09F4 brne .+2
808 0620 DBC1 rjmp .L102
809 0622 0597 sbiw r24,5
810 0624 09F4 brne .+2
811 0626 DBC1 rjmp .L103
812 0628 E4C1 rjmp .L104
813 .L68:
814 062a 8091 0000 lds r24,ServoNickOffset.4
815 062e 9091 0000 lds r25,(ServoNickOffset.4)+1
816 0632 9C01 movw r18,r24
817 0634 220F lsl r18
818 0636 331F rol r19
819 0638 280F add r18,r24
820 063a 391F adc r19,r25
821 063c 8091 0000 lds r24,Parameter_ServoNickControl
822 0640 9927 clr r25
823 0642 880F lsl r24
824 0644 991F rol r25
825 0646 880F lsl r24
826 0648 991F rol r25
827 064a 280F add r18,r24
828 064c 391F adc r19,r25
829 064e 37FF sbrs r19,7
830 0650 02C0 rjmp .L69
831 0652 2D5F subi r18,lo8(-(3))
832 0654 3F4F sbci r19,hi8(-(3))
833 .L69:
834 0656 C901 movw r24,r18
835 0658 9595 asr r25
836 065a 8795 ror r24
837 065c 9595 asr r25
838 065e 8795 ror r24
839 0660 9093 0000 sts (ServoNickOffset.4)+1,r25
840 0664 8093 0000 sts ServoNickOffset.4,r24
841 0668 9093 0000 sts (ServoNickValue)+1,r25
842 066c 8093 0000 sts ServoNickValue,r24
843 0670 8091 0000 lds r24,EE_Parameter+98
844 0674 6091 0000 lds r22,EE_Parameter+46
845 0678 2091 0000 lds r18,IntegralNick
846 067c 3091 0000 lds r19,(IntegralNick)+1
847 0680 4091 0000 lds r20,(IntegralNick)+2
848 0684 5091 0000 lds r21,(IntegralNick)+3
849 0688 80FF sbrs r24,0
850 068a 2CC0 rjmp .L70
851 068c 7727 clr r23
852 068e 8827 clr r24
853 0690 9927 clr r25
854 0692 EA01 movw r28,r20
855 0694 D901 movw r26,r18
856 0696 57FF sbrs r21,7
857 0698 04C0 rjmp .L71
858 069a A158 subi r26,lo8(-(127))
859 069c BF4F sbci r27,hi8(-(127))
860 069e CF4F sbci r28,hlo8(-(127))
861 06a0 DF4F sbci r29,hhi8(-(127))
862 .L71:
863 06a2 27E0 ldi r18,7
864 06a4 D595 1: asr r29
865 06a6 C795 ror r28
866 06a8 B795 ror r27
867 06aa A795 ror r26
868 06ac 2A95 dec r18
869 06ae D1F7 brne 1b
870 06b0 9D01 movw r18,r26
871 06b2 AE01 movw r20,r28
872 06b4 0E94 0000 call __mulsi3
873 06b8 9B01 movw r18,r22
874 06ba AC01 movw r20,r24
875 06bc 97FF sbrs r25,7
876 06be 04C0 rjmp .L72
877 06c0 215C subi r18,lo8(-(63))
878 06c2 3F4F sbci r19,hi8(-(63))
879 06c4 4F4F sbci r20,hlo8(-(63))
880 06c6 5F4F sbci r21,hhi8(-(63))
881 .L72:
882 06c8 F6E0 ldi r31,6
883 06ca 5595 1: asr r21
884 06cc 4795 ror r20
885 06ce 3795 ror r19
886 06d0 2795 ror r18
887 06d2 FA95 dec r31
888 06d4 D1F7 brne 1b
889 06d6 8091 0000 lds r24,ServoNickValue
890 06da 9091 0000 lds r25,(ServoNickValue)+1
891 06de 820F add r24,r18
892 06e0 931F adc r25,r19
893 06e2 27C0 rjmp .L124
894 .L70:
895 06e4 7727 clr r23
896 06e6 8827 clr r24
897 06e8 9927 clr r25
898 06ea 57FF sbrs r21,7
899 06ec 04C0 rjmp .L74
900 06ee 2158 subi r18,lo8(-(127))
901 06f0 3F4F sbci r19,hi8(-(127))
902 06f2 4F4F sbci r20,hlo8(-(127))
903 06f4 5F4F sbci r21,hhi8(-(127))
904 .L74:
905 06f6 E7E0 ldi r30,7
906 06f8 5595 1: asr r21
907 06fa 4795 ror r20
908 06fc 3795 ror r19
909 06fe 2795 ror r18
910 0700 EA95 dec r30
911 0702 D1F7 brne 1b
912 0704 0E94 0000 call __mulsi3
913 0708 9B01 movw r18,r22
914 070a AC01 movw r20,r24
915 070c 97FF sbrs r25,7
916 070e 04C0 rjmp .L75
917 0710 215C subi r18,lo8(-(63))
918 0712 3F4F sbci r19,hi8(-(63))
919 0714 4F4F sbci r20,hlo8(-(63))
920 0716 5F4F sbci r21,hhi8(-(63))
921 .L75:
922 0718 66E0 ldi r22,6
923 071a 5595 1: asr r21
924 071c 4795 ror r20
925 071e 3795 ror r19
926 0720 2795 ror r18
927 0722 6A95 dec r22
928 0724 D1F7 brne 1b
929 0726 8091 0000 lds r24,ServoNickValue
930 072a 9091 0000 lds r25,(ServoNickValue)+1
931 072e 821B sub r24,r18
932 0730 930B sbc r25,r19
933 .L124:
934 0732 9093 0000 sts (ServoNickValue)+1,r25
935 0736 8093 0000 sts ServoNickValue,r24
936 073a 8091 0000 lds r24,EE_Parameter+47
937 073e 282F mov r18,r24
938 0740 3327 clr r19
939 0742 220F lsl r18
940 0744 331F rol r19
941 0746 220F lsl r18
942 0748 331F rol r19
943 074a 8091 0000 lds r24,ServoNickValue
944 074e 9091 0000 lds r25,(ServoNickValue)+1
945 0752 8217 cp r24,r18
946 0754 9307 cpc r25,r19
947 0756 7CF0 brlt .L125
948 0758 8091 0000 lds r24,EE_Parameter+48
949 075c 282F mov r18,r24
950 075e 3327 clr r19
951 0760 220F lsl r18
952 0762 331F rol r19
953 0764 220F lsl r18
954 0766 331F rol r19
955 0768 8091 0000 lds r24,ServoNickValue
956 076c 9091 0000 lds r25,(ServoNickValue)+1
957 0770 2817 cp r18,r24
958 0772 3907 cpc r19,r25
959 0774 24F4 brge .L77
960 .L125:
961 0776 3093 0000 sts (ServoNickValue)+1,r19
962 077a 2093 0000 sts ServoNickValue,r18
963 .L77:
964 077e 8091 0000 lds r24,RemainingPulse.1
965 0782 9091 0000 lds r25,(RemainingPulse.1)+1
966 0786 2091 0000 lds r18,ServoNickValue
967 078a 3091 0000 lds r19,(ServoNickValue)+1
968 078e 820F add r24,r18
969 0790 931F adc r25,r19
970 0792 8050 subi r24,lo8(-(-512))
971 0794 9240 sbci r25,hi8(-(-512))
972 0796 9093 0000 sts (RemainingPulse.1)+1,r25
973 079a 8093 0000 sts RemainingPulse.1,r24
974 079e 8091 0000 lds r24,ServoNickValue
975 07a2 9091 0000 lds r25,(ServoNickValue)+1
976 07a6 97FD sbrc r25,7
977 07a8 0396 adiw r24,3
978 .L79:
979 07aa 9595 asr r25
980 07ac 8795 ror r24
981 07ae 9595 asr r25
982 07b0 8795 ror r24
983 07b2 9093 0000 sts (ServoNickValue)+1,r25
984 07b6 8093 0000 sts ServoNickValue,r24
985 07ba 2EC1 rjmp .L67
986 .L80:
987 07bc 8091 0000 lds r24,ServoRollOffset.5
988 07c0 9091 0000 lds r25,(ServoRollOffset.5)+1
989 07c4 9C01 movw r18,r24
990 07c6 220F lsl r18
991 07c8 331F rol r19
992 07ca 280F add r18,r24
993 07cc 391F adc r19,r25
994 07ce 8091 0000 lds r24,Parameter_ServoRollControl
995 07d2 9927 clr r25
996 07d4 880F lsl r24
997 07d6 991F rol r25
998 07d8 880F lsl r24
999 07da 991F rol r25
1000 07dc 280F add r18,r24
1001 07de 391F adc r19,r25
1002 07e0 37FF sbrs r19,7
1003 07e2 02C0 rjmp .L81
1004 07e4 2D5F subi r18,lo8(-(3))
1005 07e6 3F4F sbci r19,hi8(-(3))
1006 .L81:
1007 07e8 C901 movw r24,r18
1008 07ea 9595 asr r25
1009 07ec 8795 ror r24
1010 07ee 9595 asr r25
1011 07f0 8795 ror r24
1012 07f2 9093 0000 sts (ServoRollOffset.5)+1,r25
1013 07f6 8093 0000 sts ServoRollOffset.5,r24
1014 07fa 9093 0000 sts (ServoRollValue)+1,r25
1015 07fe 8093 0000 sts ServoRollValue,r24
1016 0802 8091 0000 lds r24,EE_Parameter+98
1017 0806 6091 0000 lds r22,EE_Parameter+50
1018 080a A091 0000 lds r26,IntegralRoll
1019 080e B091 0000 lds r27,(IntegralRoll)+1
1020 0812 C091 0000 lds r28,(IntegralRoll)+2
1021 0816 D091 0000 lds r29,(IntegralRoll)+3
1022 081a 81FF sbrs r24,1
1023 081c 2AC0 rjmp .L82
1024 081e 7727 clr r23
1025 0820 8827 clr r24
1026 0822 9927 clr r25
1027 0824 9D01 movw r18,r26
1028 0826 AE01 movw r20,r28
1029 0828 D7FF sbrs r29,7
1030 082a 04C0 rjmp .L83
1031 082c 2158 subi r18,lo8(-(127))
1032 082e 3F4F sbci r19,hi8(-(127))
1033 0830 4F4F sbci r20,hlo8(-(127))
1034 0832 5F4F sbci r21,hhi8(-(127))
1035 .L83:
1036 0834 E7E0 ldi r30,7
1037 0836 5595 1: asr r21
1038 0838 4795 ror r20
1039 083a 3795 ror r19
1040 083c 2795 ror r18
1041 083e EA95 dec r30
1042 0840 D1F7 brne 1b
1043 0842 0E94 0000 call __mulsi3
1044 0846 9B01 movw r18,r22
1045 0848 AC01 movw r20,r24
1046 084a 97FF sbrs r25,7
1047 084c 04C0 rjmp .L84
1048 084e 215C subi r18,lo8(-(63))
1049 0850 3F4F sbci r19,hi8(-(63))
1050 0852 4F4F sbci r20,hlo8(-(63))
1051 0854 5F4F sbci r21,hhi8(-(63))
1052 .L84:
1053 0856 C6E0 ldi r28,6
1054 0858 5595 1: asr r21
1055 085a 4795 ror r20
1056 085c 3795 ror r19
1057 085e 2795 ror r18
1058 0860 CA95 dec r28
1059 0862 D1F7 brne 1b
1060 0864 8091 0000 lds r24,ServoRollValue
1061 0868 9091 0000 lds r25,(ServoRollValue)+1
1062 086c 820F add r24,r18
1063 086e 931F adc r25,r19
1064 0870 29C0 rjmp .L126
1065 .L82:
1066 0872 7727 clr r23
1067 0874 8827 clr r24
1068 0876 9927 clr r25
1069 0878 9D01 movw r18,r26
1070 087a AE01 movw r20,r28
1071 087c D7FF sbrs r29,7
1072 087e 04C0 rjmp .L86
1073 0880 2158 subi r18,lo8(-(127))
1074 0882 3F4F sbci r19,hi8(-(127))
1075 0884 4F4F sbci r20,hlo8(-(127))
1076 0886 5F4F sbci r21,hhi8(-(127))
1077 .L86:
1078 0888 B7E0 ldi r27,7
1079 088a 5595 1: asr r21
1080 088c 4795 ror r20
1081 088e 3795 ror r19
1082 0890 2795 ror r18
1083 0892 BA95 dec r27
1084 0894 D1F7 brne 1b
1085 0896 0E94 0000 call __mulsi3
1086 089a 9B01 movw r18,r22
1087 089c AC01 movw r20,r24
1088 089e 97FF sbrs r25,7
1089 08a0 04C0 rjmp .L87
1090 08a2 215C subi r18,lo8(-(63))
1091 08a4 3F4F sbci r19,hi8(-(63))
1092 08a6 4F4F sbci r20,hlo8(-(63))
1093 08a8 5F4F sbci r21,hhi8(-(63))
1094 .L87:
1095 08aa A6E0 ldi r26,6
1096 08ac 5595 1: asr r21
1097 08ae 4795 ror r20
1098 08b0 3795 ror r19
1099 08b2 2795 ror r18
1100 08b4 AA95 dec r26
1101 08b6 D1F7 brne 1b
1102 08b8 8091 0000 lds r24,ServoRollValue
1103 08bc 9091 0000 lds r25,(ServoRollValue)+1
1104 08c0 821B sub r24,r18
1105 08c2 930B sbc r25,r19
1106 .L126:
1107 08c4 9093 0000 sts (ServoRollValue)+1,r25
1108 08c8 8093 0000 sts ServoRollValue,r24
1109 08cc 8091 0000 lds r24,EE_Parameter+51
1110 08d0 282F mov r18,r24
1111 08d2 3327 clr r19
1112 08d4 220F lsl r18
1113 08d6 331F rol r19
1114 08d8 220F lsl r18
1115 08da 331F rol r19
1116 08dc 8091 0000 lds r24,ServoRollValue
1117 08e0 9091 0000 lds r25,(ServoRollValue)+1
1118 08e4 8217 cp r24,r18
1119 08e6 9307 cpc r25,r19
1120 08e8 7CF0 brlt .L127
1121 08ea 8091 0000 lds r24,EE_Parameter+52
1122 08ee 282F mov r18,r24
1123 08f0 3327 clr r19
1124 08f2 220F lsl r18
1125 08f4 331F rol r19
1126 08f6 220F lsl r18
1127 08f8 331F rol r19
1128 08fa 8091 0000 lds r24,ServoRollValue
1129 08fe 9091 0000 lds r25,(ServoRollValue)+1
1130 0902 2817 cp r18,r24
1131 0904 3907 cpc r19,r25
1132 0906 24F4 brge .L89
1133 .L127:
1134 0908 3093 0000 sts (ServoRollValue)+1,r19
1135 090c 2093 0000 sts ServoRollValue,r18
1136 .L89:
1137 0910 8091 0000 lds r24,RemainingPulse.1
1138 0914 9091 0000 lds r25,(RemainingPulse.1)+1
1139 0918 2091 0000 lds r18,ServoRollValue
1140 091c 3091 0000 lds r19,(ServoRollValue)+1
1141 0920 820F add r24,r18
1142 0922 931F adc r25,r19
1143 0924 8050 subi r24,lo8(-(-512))
1144 0926 9240 sbci r25,hi8(-(-512))
1145 0928 9093 0000 sts (RemainingPulse.1)+1,r25
1146 092c 8093 0000 sts RemainingPulse.1,r24
1147 0930 8091 0000 lds r24,ServoRollValue
1148 0934 9091 0000 lds r25,(ServoRollValue)+1
1149 0938 97FD sbrc r25,7
1150 093a 0396 adiw r24,3
1151 .L91:
1152 093c 9595 asr r25
1153 093e 8795 ror r24
1154 0940 9595 asr r25
1155 0942 8795 ror r24
1156 0944 9093 0000 sts (ServoRollValue)+1,r25
1157 0948 8093 0000 sts ServoRollValue,r24
1158 094c 65C0 rjmp .L67
1159 .L92:
1160 094e 8091 0000 lds r24,EE_Parameter+7
1161 0952 E82F mov r30,r24
1162 0954 FF27 clr r31
1163 0956 EE0F add r30,r30
1164 0958 FF1F adc r31,r31
1165 095a E050 subi r30,lo8(-(PPM_in))
1166 095c F040 sbci r31,hi8(-(PPM_in))
1167 095e 8081 ld r24,Z
1168 0960 9181 ldd r25,Z+1
1169 0962 805E subi r24,lo8(-32)
1170 0964 9F4F sbci r25,hi8(-32)
1171 0966 ACF1 brlt .L132
1172 0968 8081 ld r24,Z
1173 096a 9181 ldd r25,Z+1
1174 096c 8197 sbiw r24,33
1175 096e 1CF0 brlt .L95
1176 0970 8CED ldi r24,lo8(1500)
1177 0972 95E0 ldi r25,hi8(1500)
1178 0974 4DC0 rjmp .L128
1179 .L95:
1180 0976 8091 0000 lds r24,CameraShutterCycle
1181 097a 9091 0000 lds r25,(CameraShutterCycle)+1
1182 097e C297 sbiw r24,50
1183 0980 78F0 brlo .L129
1184 0982 2091 0000 lds r18,CameraShutterCycleCounter
1185 0986 3091 0000 lds r19,(CameraShutterCycleCounter)+1
1186 098a 8091 0000 lds r24,CameraShutterCycle
1187 098e 9091 0000 lds r25,(CameraShutterCycle)+1
1188 0992 2817 cp r18,r24
1189 0994 3907 cpc r19,r25
1190 0996 49F4 brne .L99
1191 0998 1092 0000 sts (CameraShutterCycleCounter)+1,__zero_reg__
1192 099c 1092 0000 sts CameraShutterCycleCounter,__zero_reg__
1193 .L129:
1194 09a0 5093 0000 sts (RemainingPulse.1)+1,r21
1195 09a4 4093 0000 sts RemainingPulse.1,r20
1196 09a8 37C0 rjmp .L67
1197 .L99:
1198 09aa 8091 0000 lds r24,CameraShutterCycleCounter
1199 09ae 9091 0000 lds r25,(CameraShutterCycleCounter)+1
1200 09b2 0196 adiw r24,1
1201 09b4 9093 0000 sts (CameraShutterCycleCounter)+1,r25
1202 09b8 8093 0000 sts CameraShutterCycleCounter,r24
1203 09bc 2091 0000 lds r18,CameraShutterCycleCounter
1204 09c0 3091 0000 lds r19,(CameraShutterCycleCounter)+1
1205 09c4 8091 0000 lds r24,CameraShutterCycleOnCount
1206 09c8 9091 0000 lds r25,(CameraShutterCycleOnCount)+1
1207 09cc 2817 cp r18,r24
1208 09ce 3907 cpc r19,r25
1209 09d0 19F5 brne .L67
1210 .L132:
1211 09d2 87E7 ldi r24,lo8(375)
1212 09d4 91E0 ldi r25,hi8(375)
1213 09d6 1CC0 rjmp .L128
1214 .L102:
1215 09d8 8091 0000 lds r24,Parameter_Servo4
1216 09dc 02C0 rjmp .L133
1217 .L103:
1218 09de 8091 0000 lds r24,Parameter_Servo5
1219 .L133:
1220 09e2 9927 clr r25
1221 09e4 880F lsl r24
1222 09e6 991F rol r25
1223 09e8 880F lsl r24
1224 09ea 991F rol r25
1225 09ec 8755 subi r24,lo8(-(425))
1226 09ee 9E4F sbci r25,hi8(-(425))
1227 09f0 0FC0 rjmp .L128
1228 .L104:
1229 09f2 FF27 clr r31
1230 09f4 EE0F add r30,r30
1231 09f6 FF1F adc r31,r31
1232 09f8 E050 subi r30,lo8(-(PPM_in))
1233 09fa F040 sbci r31,hi8(-(PPM_in))
1234 09fc 2081 ld r18,Z
1235 09fe 3181 ldd r19,Z+1
1236 0a00 220F add r18,r18
1237 0a02 331F adc r19,r19
1238 0a04 8091 0000 lds r24,RemainingPulse.1
1239 0a08 9091 0000 lds r25,(RemainingPulse.1)+1
1240 0a0c 820F add r24,r18
1241 0a0e 931F adc r25,r19
1242 .L128:
1243 0a10 9093 0000 sts (RemainingPulse.1)+1,r25
1244 0a14 8093 0000 sts RemainingPulse.1,r24
1245 .L67:
1246 0a18 8091 0000 lds r24,RemainingPulse.1
1247 0a1c 9091 0000 lds r25,(RemainingPulse.1)+1
1248 0a20 45E0 ldi r20,hi8(1501)
1249 0a22 8D3D cpi r24,lo8(1501)
1250 0a24 9407 cpc r25,r20
1251 0a26 18F0 brlo .L106
1252 0a28 8CED ldi r24,lo8(1500)
1253 0a2a 95E0 ldi r25,hi8(1500)
1254 0a2c 05C0 rjmp .L130
1255 .L106:
1256 0a2e 8757 subi r24,lo8(375)
1257 0a30 9140 sbci r25,hi8(375)
1258 0a32 30F4 brsh .L107
1259 0a34 87E7 ldi r24,lo8(375)
1260 0a36 91E0 ldi r25,hi8(375)
1261 .L130:
1262 0a38 9093 0000 sts (RemainingPulse.1)+1,r25
1263 0a3c 8093 0000 sts RemainingPulse.1,r24
1264 .L107:
1265 0a40 2091 0000 lds r18,RemainingPulse.1
1266 0a44 3091 0000 lds r19,(RemainingPulse.1)+1
1267 0a48 2C5B subi r18,lo8(-(-188))
1268 0a4a 3040 sbci r19,hi8(-(-188))
1269 0a4c 3093 0000 sts (RemainingPulse.1)+1,r19
1270 0a50 2093 0000 sts RemainingPulse.1,r18
1271 0a54 8091 0000 lds r24,ServoFrameTime.2
1272 0a58 9091 0000 lds r25,(ServoFrameTime.2)+1
1273 0a5c 820F add r24,r18
1274 0a5e 931F adc r25,r19
1275 .L134:
1276 0a60 9093 0000 sts (ServoFrameTime.2)+1,r25
1277 0a64 8093 0000 sts ServoFrameTime.2,r24
1278 0a68 2FC0 rjmp .L109
1279 .L64:
1280 0a6a 8091 B000 lds r24,176
1281 0a6e 8064 ori r24,lo8(64)
1282 0a70 8093 B000 sts 176,r24
1283 0a74 8CEB ldi r24,lo8(188)
1284 0a76 90E0 ldi r25,hi8(188)
1285 0a78 9093 0000 sts (RemainingPulse.1)+1,r25
1286 0a7c 8093 0000 sts RemainingPulse.1,r24
1287 0a80 8091 0000 lds r24,ServoFrameTime.2
1288 0a84 9091 0000 lds r25,(ServoFrameTime.2)+1
1289 0a88 8454 subi r24,lo8(-(188))
1290 0a8a 9F4F sbci r25,hi8(-(188))
1291 0a8c 9093 0000 sts (ServoFrameTime.2)+1,r25
1292 0a90 8093 0000 sts ServoFrameTime.2,r24
1293 0a94 8091 0000 lds r24,ServoActive
1294 0a98 8823 tst r24
1295 0a9a 21F0 breq .L112
1296 0a9c 8091 0000 lds r24,SenderOkay
1297 0aa0 853B cpi r24,lo8(-75)
1298 0aa2 20F4 brsh .L111
1299 .L112:
1300 0aa4 8091 0000 lds r24,ServoActive
1301 0aa8 8230 cpi r24,lo8(2)
1302 0aaa 11F4 brne .L110
1303 .L111:
1304 0aac 4698 cbi 40-0x20,6
1305 0aae 01C0 rjmp .L113
1306 .L110:
1307 0ab0 469A sbi 40-0x20,6
1308 .L113:
1309 0ab2 8091 0000 lds r24,ServoIndex.3
1310 0ab6 8F5F subi r24,lo8(-(1))
1311 0ab8 8093 0000 sts ServoIndex.3,r24
1312 0abc 9091 0000 lds r25,EE_Parameter+53
1313 0ac0 9817 cp r25,r24
1314 0ac2 10F4 brsh .L109
1315 0ac4 1092 0000 sts ServoIndex.3,__zero_reg__
1316 .L109:
1317 0ac8 81E0 ldi r24,lo8(1)
1318 0aca 8093 0000 sts PulseOutput.0,r24
1319 .L62:
1320 0ace 2091 0000 lds r18,RemainingPulse.1
1321 0ad2 3091 0000 lds r19,(RemainingPulse.1)+1
1322 0ad6 81E0 ldi r24,hi8(383)
1323 0ad8 2F37 cpi r18,lo8(383)
1324 0ada 3807 cpc r19,r24
1325 0adc 30F0 brlo .L115
1326 0ade 8FEF ldi r24,lo8(-1)
1327 0ae0 8093 B300 sts 179,r24
1328 0ae4 2F5F subi r18,lo8(-(-255))
1329 0ae6 3040 sbci r19,hi8(-(-255))
1330 0ae8 0FC0 rjmp .L131
1331 .L115:
1332 0aea 2F3F cpi r18,255
1333 0aec 3105 cpc r19,__zero_reg__
1334 0aee C9F0 breq .L117
1335 0af0 C0F0 brlo .L117
1336 0af2 A901 movw r20,r18
1337 0af4 4F5F subi r20,lo8(-(-255))
1338 0af6 5040 sbci r21,hi8(-(-255))
1339 0af8 4F37 cpi r20,127
1340 0afa 5105 cpc r21,__zero_reg__
1341 0afc 50F4 brsh .L118
1342 0afe 80E8 ldi r24,lo8(-128)
1343 0b00 8093 B300 sts 179,r24
1344 0b04 2058 subi r18,lo8(-(-128))
1345 0b06 3040 sbci r19,hi8(-(-128))
1346 .L131:
1347 0b08 3093 0000 sts (RemainingPulse.1)+1,r19
1348 0b0c 2093 0000 sts RemainingPulse.1,r18
1349 0b10 12C0 rjmp .L43
1350 .L118:
1351 0b12 8FEF ldi r24,lo8(-1)
1352 0b14 8093 B300 sts 179,r24
1353 0b18 5093 0000 sts (RemainingPulse.1)+1,r21
1354 0b1c 4093 0000 sts RemainingPulse.1,r20
1355 0b20 0AC0 rjmp .L43
1356 .L117:
1357 0b22 8091 0000 lds r24,RemainingPulse.1
1358 0b26 8093 B300 sts 179,r24
1359 0b2a 1092 0000 sts (RemainingPulse.1)+1,__zero_reg__
1360 0b2e 1092 0000 sts RemainingPulse.1,__zero_reg__
1361 0b32 1092 0000 sts PulseOutput.0,__zero_reg__
1362 .L43:
1363 /* epilogue: frame size=0 */
1364 0b36 FF91 pop r31
1365 0b38 EF91 pop r30
1366 0b3a DF91 pop r29
1367 0b3c CF91 pop r28
1368 0b3e BF91 pop r27
1369 0b40 AF91 pop r26
1370 0b42 9F91 pop r25
1371 0b44 8F91 pop r24
1372 0b46 7F91 pop r23
1373 0b48 6F91 pop r22
1374 0b4a 5F91 pop r21
1375 0b4c 4F91 pop r20
1376 0b4e 3F91 pop r19
1377 0b50 2F91 pop r18
1378 0b52 0F90 pop __tmp_reg__
1379 0b54 0FBE out __SREG__,__tmp_reg__
1380 0b56 0F90 pop __tmp_reg__
1381 0b58 1F90 pop __zero_reg__
1382 0b5a 1895 reti
1383 /* epilogue end (size=19) */
1384 /* function __vector_9 size 1056 (1018) */
1386 .lcomm tim_main,2
1387 /* File "timer0.c": code 1469 = 0x05bd (1385), prologues 39, epilogues 45 */
DEFINED SYMBOLS
*ABS*:00000000 timer0.c
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:15 .bss:00000000 ServoRollValue
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:21 .bss:00000002 ServoNickValue
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:27 .data:00000000 BeepMuster
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:34 .bss:00000004 ServoActive
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:40 .bss:00000005 SendSPI
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:46 .bss:00000006 beeptime
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:52 .bss:00000008 cntKompass
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:58 .bss:0000000a UpdateMotor
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:64 .bss:0000000b CountMilliseconds
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:69 .data:00000002 CameraShutterCycleOnCount
.bss:0000000d CameraShutterCycleCounter
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:71 .bss:0000000f CameraShutterCycle
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:75 .data:00000004 cnt_1ms.6
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:72 .bss:00000011 cnt.7
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:77 .bss:00000012 compass_active.8
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:82 .text:00000000 __vector_18
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:301 .text:0000020e SetDelay
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:317 .text:00000220 CheckDelay
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:336 .text:00000238 Delay_ms
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:357 .text:00000252 Delay_ms_Mess
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:387 .text:00000282 TIMER2_Init
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:443 .text:00000302 Timer_Init
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:471 .bss:00000019 tim_main
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:78 .bss:00000013 PulseOutput.0
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:468 .bss:00000014 RemainingPulse.1
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:469 .bss:00000016 ServoFrameTime.2
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:470 .bss:00000018 ServoIndex.3
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:475 .data:00000005 ServoNickOffset.4
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:479 .data:00000007 ServoRollOffset.5
C:\Users\Arthur-P\AppData\Local\Temp/ccIhcaaa.s:484 .text:00000330 __vector_9
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
SpektrumTimer
PlatinenVersion
NaviDataOkay
EE_Parameter
__udivmodhi4
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
AdReady
Parameter_UserParam8
Parameter_ServoNickControl
IntegralNick
__mulsi3
Parameter_ServoRollControl
IntegralRoll
PPM_in
Parameter_Servo4
Parameter_Servo5
SenderOkay
/branches/V0.80d-Arthur-P/twimaster.c
0,0 → 1,467
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + Nur für den privaten Gebrauch
// + www.MikroKopter.com
// + porting the sources to other systems or using the software on other systems (except hardware from www.mikrokopter.de) is not allowed
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Es gilt für das gesamte Projekt (Hardware, Software, Binärfiles, Sourcecode und Dokumentation),
// + dass eine Nutzung (auch auszugsweise) nur für den privaten (nicht-kommerziellen) Gebrauch zulässig ist.
// + Sollten direkte oder indirekte kommerzielle Absichten verfolgt werden, ist mit uns (info@mikrokopter.de) Kontakt
// + bzgl. der Nutzungsbedingungen aufzunehmen.
// + Eine kommerzielle Nutzung ist z.B.Verkauf von MikroKoptern, Bestückung und Verkauf von Platinen oder Bausätzen,
// + Verkauf von Luftbildaufnahmen, usw.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Werden Teile des Quellcodes (mit oder ohne Modifikation) weiterverwendet oder veröffentlicht,
// + unterliegen sie auch diesen Nutzungsbedingungen und diese Nutzungsbedingungen incl. Copyright müssen dann beiliegen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Sollte die Software (auch auszugesweise) oder sonstige Informationen des MikroKopter-Projekts
// + auf anderen Webseiten oder sonstigen Medien veröffentlicht werden, muss unsere Webseite "http://www.mikrokopter.de"
// + eindeutig als Ursprung verlinkt werden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Keine Gewähr auf Fehlerfreiheit, Vollständigkeit oder Funktion
// + Benutzung auf eigene Gefahr
// + Wir übernehmen keinerlei Haftung für direkte oder indirekte Personen- oder Sachschäden
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Portierung der Software (oder Teile davon) auf andere Systeme (ausser der Hardware von www.mikrokopter.de) ist nur
// + mit unserer Zustimmung zulässig
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Die Funktion printf_P() unterliegt ihrer eigenen Lizenz und ist hiervon nicht betroffen
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Redistributions of source code (with or without modifications) must retain the above copyright notice,
// + this list of conditions and the following disclaimer.
// + * Neither the name of the copyright holders nor the names of contributors may be used to endorse or promote products derived
// + from this software without specific prior written permission.
// + * The use of this project (hardware, software, binary files, sources and documentation) is only permittet
// + for non-commercial use (directly or indirectly)
// + Commercial use (for excample: selling of MikroKopters, selling of PCBs, assembly, ...) is only permitted
// + with our written permission
// + * If sources or documentations are redistributet on other webpages, out webpage (http://www.MikroKopter.de) must be
// + clearly linked as origin
// + * porting to systems other than hardware from www.mikrokopter.de is not allowed
// + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
// + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
// + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
// + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
// + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
// + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN// + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
// + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
// + POSSIBILITY OF SUCH DAMAGE.
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/twi.h>
#include "eeprom.h"
#include "twimaster.h"
#include "fc.h"
#include "analog.h"
#include "uart.h"
#include "timer0.h"
 
volatile uint8_t twi_state = TWI_STATE_MOTOR_TX;
volatile uint8_t dac_channel = 0;
volatile uint8_t motor_write = 0;
volatile uint8_t motor_read = 0;
 
 
volatile uint16_t I2CTimeout = 100;
 
uint8_t MissingMotor = 0;
 
volatile uint8_t BLFlags = 0;
 
MotorData_t Motor[MAX_MOTORS];
 
// bit mask for witch BL the configuration should be sent
volatile uint16_t BLConfig_WriteMask = 0;
// bit mask for witch BL the configuration should be read
volatile uint16_t BLConfig_ReadMask = 0;
// buffer for BL Configuration
BLConfig_t BLConfig;
 
#define I2C_WriteByte(byte) {TWDR = byte; TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);}
#define I2C_ReceiveByte() {TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE) | (1<<TWEA);}
#define I2C_ReceiveLastByte() {TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWIE);}
 
#define SCL_CLOCK 200000L
#define I2C_TIMEOUT 30000
#define TWI_BASE_ADDRESS 0x52
 
/**************************************************/
/* Initialize I2C (TWI) */
/**************************************************/
 
void I2C_Init(void)
{
uint8_t i;
uint8_t sreg = SREG;
cli();
 
// SDA is INPUT
DDRC &= ~(1<<DDC1);
// SCL is output
DDRC |= (1<<DDC0);
// pull up SDA
PORTC |= (1<<PORTC0)|(1<<PORTC1);
 
// TWI Status Register
// prescaler 1 (TWPS1 = 0, TWPS0 = 0)
TWSR &= ~((1<<TWPS1)|(1<<TWPS0));
 
// set TWI Bit Rate Register
TWBR = ((F_CPU/SCL_CLOCK)-16)/2;
 
twi_state = TWI_STATE_MOTOR_TX;
motor_write = 0;
motor_read = 0;
 
for(i=0; i < MAX_MOTORS; i++)
{
Motor[i].Version = 0;
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
Motor[i].State = 0;
Motor[i].ReadMode = BL_READMODE_STATUS;
Motor[i].Current = 0;
Motor[i].MaxPWM = 0;
Motor[i].Temperature = 0;
}
 
SREG = sreg;
}
 
void I2C_Reset(void)
{
// stop i2c bus
I2C_Stop(TWI_STATE_MOTOR_TX);
motor_write = 0;
motor_read = 0;
TWCR = (1<<TWINT); // reset to original state incl. interrupt flag reset
TWAMR = 0;
TWAR = 0;
TWDR = 0;
TWSR = 0;
TWBR = 0;
I2C_Init();
I2C_WriteByte(0);
BLFlags |= BLFLAG_READ_VERSION;
}
 
/****************************************/
/* I2C ISR */
/****************************************/
ISR (TWI_vect)
{
static uint8_t missing_motor = 0, motor_read_temperature = 0;
static uint8_t *pBuff = 0;
static uint8_t BuffLen = 0;
 
switch (twi_state++)
{
// Master Transmit
case 0: // TWI_STATE_MOTOR_TX
 
// skip motor if not used in mixer
while((Mixer.Motor[motor_write][MIX_GAS] <= 0) && (motor_write < MAX_MOTORS)) motor_write++;
if(motor_write >= MAX_MOTORS) // writing finished, read now
{
BLConfig_WriteMask = 0; // reset configuration bitmask
motor_write = 0; // reset motor write counter for next cycle
twi_state = TWI_STATE_MOTOR_RX;
I2C_WriteByte(TWI_BASE_ADDRESS + TW_READ + (motor_read<<1) ); // select slave address in rx mode
}
else I2C_WriteByte(TWI_BASE_ADDRESS + TW_WRITE + (motor_write<<1) ); // select slave address in tx mode
break;
case 1: // Send Data to Slave
I2C_WriteByte(Motor[motor_write].SetPoint); // transmit setpoint
// if old version has been detected
if(!(Motor[motor_write].Version & MOTOR_STATE_NEW_PROTOCOL_MASK))
{
twi_state = 4; //jump over sending more data
}
// the new version has been detected
else if(!( (Motor[motor_write].SetPointLowerBits && (RequiredMotors < 7)) || BLConfig_WriteMask || BLConfig_ReadMask ) )
{ // or LowerBits are zero and no BlConfig should be sent (saves round trip time)
twi_state = 4; //jump over sending more data
}
break;
case 2: // lower bits of setpoint (higher resolution)
if ((0x0001<<motor_write) & BLConfig_ReadMask)
{
Motor[motor_write].ReadMode = BL_READMODE_CONFIG; // configuration request
}
else
{
Motor[motor_write].ReadMode = BL_READMODE_STATUS; // normal status request
}
// send read mode and the lower bits of setpoint
I2C_WriteByte((Motor[motor_write].ReadMode<<3)|(Motor[motor_write].SetPointLowerBits & 0x07));
// configuration tranmission request?
if((0x0001<<motor_write) & BLConfig_WriteMask)
{ // redirect tx pointer to configuration data
pBuff = (uint8_t*)&BLConfig; // select config for motor
BuffLen = sizeof(BLConfig_t);
}
else
{ // jump to end of transmission for that motor
twi_state = 4;
}
break;
case 3: // send configuration
I2C_WriteByte(*pBuff);
pBuff++;
if(--BuffLen > 0) twi_state = 3; // if there are some bytes left
break;
case 4: // repeat case 0-4 for all motors
if(TWSR == TW_MT_DATA_NACK) // Data transmitted, NACK received
{
if(!missing_motor) missing_motor = motor_write + 1;
if((Motor[motor_write].State & MOTOR_STATE_ERROR_MASK) < MOTOR_STATE_ERROR_MASK) Motor[motor_write].State++; // increment error counter and handle overflow
}
I2C_Stop(TWI_STATE_MOTOR_TX);
I2CTimeout = 10;
motor_write++; // next motor
I2C_Start(TWI_STATE_MOTOR_TX); // Repeated start -> switch slave or switch Master Transmit -> Master Receive
break;
// Master Receive Data
case 5: // TWI_STATE_MOTOR_RX
if(TWSR != TW_MR_SLA_ACK) // SLA+R transmitted but no ACK received
{ // no response from the addressed slave received
Motor[motor_read].State &= ~MOTOR_STATE_PRESENT_MASK; // clear present bit
if(++motor_read >= MAX_MOTORS)
{ // all motors read
motor_read = 0; // restart from beginning
BLConfig_ReadMask = 0; // reset read configuration bitmask
if(++motor_read_temperature >= MAX_MOTORS)
{
motor_read_temperature = 0;
BLFlags &= ~BLFLAG_READ_VERSION;
}
}
BLFlags |= BLFLAG_TX_COMPLETE;
I2C_Stop(TWI_STATE_MOTOR_TX);
}
else
{ // motor successfully addressed
Motor[motor_read].State |= MOTOR_STATE_PRESENT_MASK; // set present bit
 
if(Motor[motor_read].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)
{
// new BL found
switch(Motor[motor_read].ReadMode)
{
case BL_READMODE_CONFIG:
pBuff = (uint8_t*)&BLConfig;
BuffLen = sizeof(BLConfig_t);
break;
 
case BL_READMODE_STATUS:
pBuff = (uint8_t*)&(Motor[motor_read].Current);
if(motor_read == motor_read_temperature) BuffLen = 3; // read Current, MaxPwm & Temp
else BuffLen = 1;// read Current only
break;
}
}
else // old BL version
{
pBuff = (uint8_t*)&(Motor[motor_read].Current);
if((BLFlags & BLFLAG_READ_VERSION) || (motor_read == motor_read_temperature)) BuffLen = 2; // Current & MaxPwm
else BuffLen = 1; // read Current only
}
if(BuffLen == 1)
{
I2C_ReceiveLastByte(); // read last byte
}
else
{
I2C_ReceiveByte(); // read next byte
}
}
MissingMotor = missing_motor;
missing_motor = 0;
break;
case 6: // receive bytes
*pBuff = TWDR;
pBuff++;
BuffLen--;
if(BuffLen>1)
{
I2C_ReceiveByte(); // read next byte
}
else if (BuffLen == 1)
{
I2C_ReceiveLastByte(); // read last byte
}
else // nothing left
{
if(BLFlags & BLFLAG_READ_VERSION)
{
if(!(FCFlags & FCFLAG_MOTOR_RUN) && (Motor[motor_read].MaxPWM == 250) ) Motor[motor_read].Version |= MOTOR_STATE_NEW_PROTOCOL_MASK;
else Motor[motor_read].Version = 0;
}
if(++motor_read >= MAX_MOTORS)
{
motor_read = 0; // restart from beginning
BLConfig_ReadMask = 0; // reset read configuration bitmask
if(++motor_read_temperature >= MAX_MOTORS)
{
motor_read_temperature = 0;
BLFlags &= ~BLFLAG_READ_VERSION;
}
}
I2C_Stop(TWI_STATE_MOTOR_TX);
BLFlags |= BLFLAG_TX_COMPLETE;
return;
}
twi_state = 6; // if there are some bytes left
break;
 
// writing Gyro-Offsets
case 18:
I2C_WriteByte(0x98); // Address the DAC
break;
 
case 19:
I2C_WriteByte(0x10 + (dac_channel * 2)); // Select DAC Channel (0x10 = A, 0x12 = B, 0x14 = C)
break;
 
case 20:
switch(dac_channel)
{
case 0:
I2C_WriteByte(AnalogOffsetNick); // 1st byte for Channel A
break;
case 1:
I2C_WriteByte(AnalogOffsetRoll); // 1st byte for Channel B
break;
case 2:
I2C_WriteByte(AnalogOffsetGier); // 1st byte for Channel C
break;
}
break;
 
case 21:
I2C_WriteByte(0x80); // 2nd byte for all channels is 0x80
break;
 
case 22:
I2C_Stop(TWI_STATE_MOTOR_TX);
I2CTimeout = 10;
// repeat case 18...22 until all DAC Channels are updated
if(dac_channel < 2)
{
dac_channel ++; // jump to next channel
I2C_Start(TWI_STATE_GYRO_OFFSET_TX); // start transmission for next channel
}
else
{
dac_channel = 0; // reset dac channel counter
BLFlags |= BLFLAG_TX_COMPLETE;
}
break;
 
default:
I2C_Stop(TWI_STATE_MOTOR_TX);
BLFlags |= BLFLAG_TX_COMPLETE;
I2CTimeout = 10;
motor_write = 0;
motor_read = 0;
break;
}
 
}
 
 
uint8_t I2C_WriteBLConfig(uint8_t motor)
{
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(motor)
{
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
}
// check BL configuration to send
if(BLConfig.Revision != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
 
timer = SetDelay(2000);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
// prepare the bitmask
if(!motor) // 0 means all
{
BLConfig_WriteMask = 0xFF; // all motors at once with the same configuration
}
else //only one specific motor
{
BLConfig_WriteMask = 0x0001<<(motor-1);
}
for(i = 0; i < MAX_MOTORS; i++)
{
if((0x0001<<i) & BLConfig_WriteMask)
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
 
motor_write = 0;
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}while(BLConfig_WriteMask && !CheckDelay(timer)); // repeat until the BL config has been sent
if(BLConfig_WriteMask) return(BLCONFIG_ERR_MOTOR_NOT_EXIST);
return(BLCONFIG_SUCCESS);
}
 
uint8_t I2C_ReadBLConfig(uint8_t motor)
{
uint8_t i;
uint16_t timer;
 
if(MotorenEin || PC_MotortestActive) return(BLCONFIG_ERR_MOTOR_RUNNING); // not when motors are running!
if(motor > MAX_MOTORS) return (BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(motor == 0) return (BLCONFIG_ERR_READ_NOT_POSSIBLE);
if(!(Motor[motor-1].State & MOTOR_STATE_PRESENT_MASK)) return(BLCONFIG_ERR_MOTOR_NOT_EXIST); // motor does not exist!
if(!(Motor[motor-1].Version & MOTOR_STATE_NEW_PROTOCOL_MASK)) return(BLCONFIG_ERR_HW_NOT_COMPATIBLE); // not a new BL!
 
timer = SetDelay(2000);
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
 
// prepare the bitmask
BLConfig_ReadMask = 0x0001<<(motor-1);
 
for(i = 0; i < MAX_MOTORS; i++)
{
if((0x0001<<i) & BLConfig_ReadMask)
{
Motor[i].SetPoint = 0;
Motor[i].SetPointLowerBits = 0;
}
}
 
motor_read = 0;
BLConfig.Revision = 0; // bad revision
BLConfig.crc = 0; // bad checksum
// needs at least MAX_MOTORS loops of 2 ms (12*2ms = 24ms)
do
{
I2C_Start(TWI_STATE_MOTOR_TX); // start an i2c transmission
while(!(BLFlags & BLFLAG_TX_COMPLETE) && !CheckDelay(timer)); //wait for complete transfer
}while(BLConfig_ReadMask && !CheckDelay(timer)); // repeat until the BL config has been received from all motors
// validate result
if(BLConfig.Revision != BLCONFIG_REVISION) return (BLCONFIG_ERR_SW_NOT_COMPATIBLE); // bad revison
i = RAM_Checksum((uint8_t*)&BLConfig, sizeof(BLConfig_t) - 1);
if(i != BLConfig.crc) return(BLCONFIG_ERR_CHECKSUM); // bad checksum
return(BLCONFIG_SUCCESS);
}
 
/branches/V0.80d-Arthur-P/twimaster.d
0,0 → 1,2
twimaster.o twimaster.d : twimaster.c eeprom.h twimaster.h fc.h analog.h uart.h \
timer0.h
/branches/V0.80d-Arthur-P/twimaster.h
0,0 → 1,100
#ifndef _I2C_MASTER_H
#define _I2C_MASTER_H
+
+#include <inttypes.h>
+
+#define TWI_STATE_MOTOR_TX 0
+#define TWI_STATE_MOTOR_RX 5
+#define TWI_STATE_GYRO_OFFSET_TX 18
+
+extern volatile uint8_t twi_state;
+extern volatile uint8_t motor_write;
+extern volatile uint8_t motor_read;
+
+
+extern uint8_t MissingMotor;
+
+#define MAX_MOTORS 12
+#define MOTOR_STATE_PRESENT_MASK 0x80
+#define MOTOR_STATE_ERROR_MASK 0x7F
+
+#define MOTOR_STATE_NEW_PROTOCOL_MASK 0x01
+
+#define BLFLAG_TX_COMPLETE 0x01
+#define BLFLAG_READ_VERSION 0x02
+
+extern volatile uint8_t BLFlags;
+
+
+#define BL_READMODE_STATUS 0
+#define BL_READMODE_CONFIG 16
+
+typedef struct
+{
+ uint8_t Version; // the version of the BL (0 = old)
+ uint8_t SetPoint; // written by attitude controller
+ uint8_t SetPointLowerBits; // for higher Resolution of new BLs
+ uint8_t State; // 7 bit for I2C error counter, highest bit indicates if motor is present
+ uint8_t ReadMode; // select data to read
+ // the following bytes must be exactly in that order!
+ uint8_t Current; // in 0.1 A steps, read back from BL
+ uint8_t MaxPWM; // read back from BL is less than 255 if BL is in current limit
+ int8_t Temperature; // old BL-Ctrl will return a 255 here, the new version the temp. in °C
+} __attribute__((packed)) MotorData_t;
+
+extern MotorData_t Motor[MAX_MOTORS];
+
+#define BLCONFIG_REVISION 2
+
+#define MASK_SET_PWM_SCALING 0x01
+#define MASK_SET_CURRENT_LIMIT 0x02
+#define MASK_SET_TEMP_LIMIT 0x04
+#define MASK_SET_CURRENT_SCALING 0x08
+#define MASK_SET_BITCONFIG 0x10
+#define MASK_RESET_CAPCOUNTER 0x20
+#define MASK_SET_DEFAULT_PARAMS 0x40
+#define MASK_SET_SAVE_EEPROM 0x80
+
+#define BITCONF_REVERSE_ROTATION 0x01
+#define BITCONF_RES1 0x02
+#define BITCONF_RES2 0x04
+#define BITCONF_RES3 0x08
+#define BITCONF_RES4 0x10
+#define BITCONF_RES5 0x20
+#define BITCONF_RES6 0x40
+#define BITCONF_RES7 0x80
+
+typedef struct
+{
+ uint8_t Revision; // must be BL_REVISION
+ uint8_t SetMask; // settings mask
+ uint8_t PwmScaling; // maximum value of control pwm, acts like a thrust limit
+ uint8_t CurrentLimit; // current limit in A
+ uint8_t TempLimit; // in °C
+ uint8_t CurrentScaling; // scaling factor for current measurement
+ uint8_t BitConfig; // see defines above
+ uint8_t crc; // checksum
+} __attribute__((packed)) BLConfig_t;
+
+extern BLConfig_t BLConfig;
+
+extern volatile uint16_t I2CTimeout;
+
+void I2C_Init (void); // Initialize I2C
+#define I2C_Start(start_state) {twi_state = start_state; BLFlags &= ~BLFLAG_TX_COMPLETE; TWCR = (1<<TWSTA) | (1<<TWEN) | (1<<TWINT) | (1<<TWIE);}
+#define I2C_Stop(start_state) {twi_state = start_state; TWCR = (1<<TWEN) | (1<<TWSTO) | (1<<TWINT);}
+void I2C_Reset(void); // Reset I2C
+
+#define BLCONFIG_SUCCESS 0
+#define BLCONFIG_ERR_MOTOR_RUNNING 1
+#define BLCONFIG_ERR_MOTOR_NOT_EXIST 2
+#define BLCONFIG_ERR_HW_NOT_COMPATIBLE 3
+#define BLCONFIG_ERR_SW_NOT_COMPATIBLE 4
+#define BLCONFIG_ERR_CHECKSUM 5
+#define BLCONFIG_ERR_READ_NOT_POSSIBLE 6
+
+uint8_t I2C_WriteBLConfig(uint8_t motor);
+uint8_t I2C_ReadBLConfig(uint8_t motor);
+
+#endif
/branches/V0.80d-Arthur-P/twimaster.lst
0,0 → 1,1184
1 .file "twimaster.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global BLConfig_ReadMask
11 .global BLConfig_ReadMask
12 .section .bss
15 BLConfig_ReadMask:
16 0000 0000 .skip 2,0
17 .global BLConfig_WriteMask
18 .global BLConfig_WriteMask
21 BLConfig_WriteMask:
22 0002 0000 .skip 2,0
23 .global BLFlags
24 .global BLFlags
27 BLFlags:
28 0004 00 .skip 1,0
29 .global MissingMotor
30 .global MissingMotor
33 MissingMotor:
34 0005 00 .skip 1,0
35 .global I2CTimeout
36 .data
39 I2CTimeout:
40 0000 6400 .word 100
41 .global motor_read
42 .global motor_read
43 .section .bss
46 motor_read:
47 0006 00 .skip 1,0
48 .global motor_write
49 .global motor_write
52 motor_write:
53 0007 00 .skip 1,0
54 .global dac_channel
55 .global dac_channel
58 dac_channel:
59 0008 00 .skip 1,0
60 .global twi_state
61 .global twi_state
64 twi_state:
65 0009 00 .skip 1,0
66 .text
67 .global I2C_Init
69 I2C_Init:
70 /* prologue: frame size=0 */
71 /* prologue end (size=0) */
72 0000 9FB7 in r25,95-0x20
73 /* #APP */
74 0002 F894 cli
75 /* #NOAPP */
76 0004 3998 cbi 39-0x20,1
77 0006 389A sbi 39-0x20,0
78 0008 88B1 in r24,40-0x20
79 000a 8360 ori r24,lo8(3)
80 000c 88B9 out 40-0x20,r24
81 000e 8091 B900 lds r24,185
82 0012 8C7F andi r24,lo8(-4)
83 0014 8093 B900 sts 185,r24
84 0018 8AE2 ldi r24,lo8(42)
85 001a 8093 B800 sts 184,r24
86 001e 1092 0000 sts twi_state,__zero_reg__
87 0022 1092 0000 sts motor_write,__zero_reg__
88 0026 1092 0000 sts motor_read,__zero_reg__
89 002a E0E0 ldi r30,lo8(Motor)
90 002c F0E0 ldi r31,hi8(Motor)
91 002e 8BE0 ldi r24,lo8(11)
92 .L5:
93 0030 1082 st Z,__zero_reg__
94 0032 1182 std Z+1,__zero_reg__
95 0034 1282 std Z+2,__zero_reg__
96 0036 1382 std Z+3,__zero_reg__
97 0038 1482 std Z+4,__zero_reg__
98 003a 1582 std Z+5,__zero_reg__
99 003c 1682 std Z+6,__zero_reg__
100 003e 1782 std Z+7,__zero_reg__
101 0040 8150 subi r24,lo8(-(-1))
102 0042 3896 adiw r30,8
103 0044 87FF sbrs r24,7
104 0046 F4CF rjmp .L5
105 0048 9FBF out 95-0x20,r25
106 /* epilogue: frame size=0 */
107 004a 0895 ret
108 /* epilogue end (size=1) */
109 /* function I2C_Init size 39 (38) */
111 .global I2C_Reset
113 I2C_Reset:
114 /* prologue: frame size=0 */
115 /* prologue end (size=0) */
116 004c 1092 0000 sts twi_state,__zero_reg__
117 0050 84E9 ldi r24,lo8(-108)
118 0052 8093 BC00 sts 188,r24
119 0056 1092 0000 sts motor_write,__zero_reg__
120 005a 1092 0000 sts motor_read,__zero_reg__
121 005e 80E8 ldi r24,lo8(-128)
122 0060 8093 BC00 sts 188,r24
123 0064 1092 BD00 sts 189,__zero_reg__
124 0068 1092 BA00 sts 186,__zero_reg__
125 006c 1092 BB00 sts 187,__zero_reg__
126 0070 1092 B900 sts 185,__zero_reg__
127 0074 1092 B800 sts 184,__zero_reg__
128 0078 0E94 0000 call I2C_Init
129 007c 1092 BB00 sts 187,__zero_reg__
130 0080 85E8 ldi r24,lo8(-123)
131 0082 8093 BC00 sts 188,r24
132 0086 8091 0000 lds r24,BLFlags
133 008a 8260 ori r24,lo8(2)
134 008c 8093 0000 sts BLFlags,r24
135 /* epilogue: frame size=0 */
136 0090 0895 ret
137 /* epilogue end (size=1) */
138 /* function I2C_Reset size 35 (34) */
140 .lcomm missing_motor.0,1
141 .lcomm motor_read_temperature.1,1
142 .lcomm pBuff.2,2
143 .lcomm BuffLen.3,1
144 .global __vector_26
146 __vector_26:
147 /* prologue: frame size=0 */
148 0092 1F92 push __zero_reg__
149 0094 0F92 push __tmp_reg__
150 0096 0FB6 in __tmp_reg__,__SREG__
151 0098 0F92 push __tmp_reg__
152 009a 1124 clr __zero_reg__
153 009c 2F93 push r18
154 009e 3F93 push r19
155 00a0 4F93 push r20
156 00a2 5F93 push r21
157 00a4 8F93 push r24
158 00a6 9F93 push r25
159 00a8 EF93 push r30
160 00aa FF93 push r31
161 /* prologue end (size=13) */
162 00ac 8091 0000 lds r24,twi_state
163 00b0 282F mov r18,r24
164 00b2 3327 clr r19
165 00b4 4427 clr r20
166 00b6 5527 clr r21
167 00b8 8F5F subi r24,lo8(-(1))
168 00ba 8093 0000 sts twi_state,r24
169 00be F901 movw r30,r18
170 00c0 2731 cpi r18,23
171 00c2 3105 cpc r19,__zero_reg__
172 00c4 08F0 brlo .+2
173 00c6 B3C2 rjmp .L72
174 00c8 E050 subi r30,lo8(-(pm(.L73)))
175 00ca F040 sbci r31,hi8(-(pm(.L73)))
176 00cc 0C94 0000 jmp __tablejump2__
177 .data
178 .section .progmem.gcc_sw_table, "a", @progbits
179 .p2align 1
180 .L73:
181 0000 0000 .word pm(.L76)
182 0002 0000 .word pm(.L17)
183 0004 0000 .word pm(.L22)
184 0006 0000 .word pm(.L27)
185 0008 0000 .word pm(.L29)
186 000a 0000 .word pm(.L33)
187 000c 0000 .word pm(.L50)
188 000e 0000 .word pm(.L72)
189 0010 0000 .word pm(.L72)
190 0012 0000 .word pm(.L72)
191 0014 0000 .word pm(.L72)
192 0016 0000 .word pm(.L72)
193 0018 0000 .word pm(.L72)
194 001a 0000 .word pm(.L72)
195 001c 0000 .word pm(.L72)
196 001e 0000 .word pm(.L72)
197 0020 0000 .word pm(.L72)
198 0022 0000 .word pm(.L72)
199 0024 0000 .word pm(.L60)
200 0026 0000 .word pm(.L61)
201 0028 0000 .word pm(.L62)
202 002a 0000 .word pm(.L68)
203 002c 0000 .word pm(.L69)
204 .text
205 .L75:
206 00d0 8091 0000 lds r24,motor_write
207 00d4 8C30 cpi r24,lo8(12)
208 00d6 90F4 brsh .L13
209 00d8 8091 0000 lds r24,motor_write
210 00dc 8F5F subi r24,lo8(-(1))
211 00de 8093 0000 sts motor_write,r24
212 .L76:
213 00e2 8091 0000 lds r24,motor_write
214 00e6 E82F mov r30,r24
215 00e8 FF27 clr r31
216 00ea EE0F lsl r30
217 00ec FF1F rol r31
218 00ee EE0F lsl r30
219 00f0 FF1F rol r31
220 00f2 E050 subi r30,lo8(-(Mixer))
221 00f4 F040 sbci r31,hi8(-(Mixer))
222 00f6 8585 ldd r24,Z+13
223 00f8 1816 cp __zero_reg__,r24
224 00fa 54F7 brge .L75
225 .L13:
226 00fc 8091 0000 lds r24,motor_write
227 0100 8C30 cpi r24,lo8(12)
228 0102 70F0 brlo .L15
229 0104 1092 0000 sts (BLConfig_WriteMask)+1,__zero_reg__
230 0108 1092 0000 sts BLConfig_WriteMask,__zero_reg__
231 010c 1092 0000 sts motor_write,__zero_reg__
232 0110 85E0 ldi r24,lo8(5)
233 0112 8093 0000 sts twi_state,r24
234 0116 8091 0000 lds r24,motor_read
235 011a 880F lsl r24
236 011c 8D5A subi r24,lo8(-(83))
237 011e 04C0 rjmp .L84
238 .L15:
239 0120 8091 0000 lds r24,motor_write
240 0124 880F lsl r24
241 0126 8E5A subi r24,lo8(-(82))
242 .L84:
243 0128 8093 BB00 sts 187,r24
244 012c 85E8 ldi r24,lo8(-123)
245 012e 74C2 rjmp .L80
246 .L17:
247 0130 8091 0000 lds r24,motor_write
248 0134 E82F mov r30,r24
249 0136 FF27 clr r31
250 0138 83E0 ldi r24,3
251 013a EE0F 1: lsl r30
252 013c FF1F rol r31
253 013e 8A95 dec r24
254 0140 E1F7 brne 1b
255 0142 E050 subi r30,lo8(-(Motor))
256 0144 F040 sbci r31,hi8(-(Motor))
257 0146 8181 ldd r24,Z+1
258 0148 8093 BB00 sts 187,r24
259 014c 85E8 ldi r24,lo8(-123)
260 014e 8093 BC00 sts 188,r24
261 0152 8091 0000 lds r24,motor_write
262 0156 E82F mov r30,r24
263 0158 FF27 clr r31
264 015a EE0F lsl r30
265 015c FF1F rol r31
266 015e EE0F lsl r30
267 0160 FF1F rol r31
268 0162 EE0F lsl r30
269 0164 FF1F rol r31
270 0166 E050 subi r30,lo8(-(Motor))
271 0168 F040 sbci r31,hi8(-(Motor))
272 016a 8081 ld r24,Z
273 016c 80FF sbrs r24,0
274 016e 91C0 rjmp .L25
275 0170 8091 0000 lds r24,motor_write
276 0174 E82F mov r30,r24
277 0176 FF27 clr r31
278 0178 EE0F lsl r30
279 017a FF1F rol r31
280 017c EE0F lsl r30
281 017e FF1F rol r31
282 0180 EE0F lsl r30
283 0182 FF1F rol r31
284 0184 E050 subi r30,lo8(-(Motor))
285 0186 F040 sbci r31,hi8(-(Motor))
286 0188 8281 ldd r24,Z+2
287 018a 8823 tst r24
288 018c 29F0 breq .L21
289 018e 8091 0000 lds r24,RequiredMotors
290 0192 8730 cpi r24,lo8(7)
291 0194 08F4 brsh .+2
292 0196 5FC2 rjmp .L9
293 .L21:
294 0198 8091 0000 lds r24,BLConfig_WriteMask
295 019c 9091 0000 lds r25,(BLConfig_WriteMask)+1
296 01a0 892B or r24,r25
297 01a2 09F0 breq .+2
298 01a4 58C2 rjmp .L9
299 01a6 8091 0000 lds r24,BLConfig_ReadMask
300 01aa 9091 0000 lds r25,(BLConfig_ReadMask)+1
301 01ae 892B or r24,r25
302 01b0 09F0 breq .+2
303 01b2 51C2 rjmp .L9
304 01b4 6EC0 rjmp .L25
305 .L22:
306 01b6 8091 0000 lds r24,motor_write
307 01ba 21E0 ldi r18,lo8(1)
308 01bc 30E0 ldi r19,hi8(1)
309 01be 02C0 rjmp 2f
310 01c0 220F 1: lsl r18
311 01c2 331F rol r19
312 01c4 8A95 2: dec r24
313 01c6 E2F7 brpl 1b
314 01c8 8091 0000 lds r24,BLConfig_ReadMask
315 01cc 9091 0000 lds r25,(BLConfig_ReadMask)+1
316 01d0 2823 and r18,r24
317 01d2 3923 and r19,r25
318 01d4 232B or r18,r19
319 01d6 79F0 breq .L23
320 01d8 8091 0000 lds r24,motor_write
321 01dc E82F mov r30,r24
322 01de FF27 clr r31
323 01e0 EE0F lsl r30
324 01e2 FF1F rol r31
325 01e4 EE0F lsl r30
326 01e6 FF1F rol r31
327 01e8 EE0F lsl r30
328 01ea FF1F rol r31
329 01ec E050 subi r30,lo8(-(Motor))
330 01ee F040 sbci r31,hi8(-(Motor))
331 01f0 80E1 ldi r24,lo8(16)
332 01f2 8483 std Z+4,r24
333 01f4 0DC0 rjmp .L24
334 .L23:
335 01f6 8091 0000 lds r24,motor_write
336 01fa E82F mov r30,r24
337 01fc FF27 clr r31
338 01fe EE0F lsl r30
339 0200 FF1F rol r31
340 0202 EE0F lsl r30
341 0204 FF1F rol r31
342 0206 EE0F lsl r30
343 0208 FF1F rol r31
344 020a E050 subi r30,lo8(-(Motor))
345 020c F040 sbci r31,hi8(-(Motor))
346 020e 1482 std Z+4,__zero_reg__
347 .L24:
348 0210 8091 0000 lds r24,motor_write
349 0214 E82F mov r30,r24
350 0216 FF27 clr r31
351 0218 53E0 ldi r21,3
352 021a EE0F 1: lsl r30
353 021c FF1F rol r31
354 021e 5A95 dec r21
355 0220 E1F7 brne 1b
356 0222 E050 subi r30,lo8(-(Motor))
357 0224 F040 sbci r31,hi8(-(Motor))
358 0226 8481 ldd r24,Z+4
359 0228 282F mov r18,r24
360 022a 3327 clr r19
361 022c 43E0 ldi r20,3
362 022e 220F 1: lsl r18
363 0230 331F rol r19
364 0232 4A95 dec r20
365 0234 E1F7 brne 1b
366 0236 8091 0000 lds r24,motor_write
367 023a E82F mov r30,r24
368 023c FF27 clr r31
369 023e 93E0 ldi r25,3
370 0240 EE0F 1: lsl r30
371 0242 FF1F rol r31
372 0244 9A95 dec r25
373 0246 E1F7 brne 1b
374 0248 E050 subi r30,lo8(-(Motor))
375 024a F040 sbci r31,hi8(-(Motor))
376 024c 8281 ldd r24,Z+2
377 024e 8770 andi r24,lo8(7)
378 0250 822B or r24,r18
379 0252 8093 BB00 sts 187,r24
380 0256 85E8 ldi r24,lo8(-123)
381 0258 8093 BC00 sts 188,r24
382 025c 2091 0000 lds r18,motor_write
383 0260 81E0 ldi r24,lo8(1)
384 0262 90E0 ldi r25,hi8(1)
385 0264 02C0 rjmp 2f
386 0266 880F 1: lsl r24
387 0268 991F rol r25
388 026a 2A95 2: dec r18
389 026c E2F7 brpl 1b
390 026e 2091 0000 lds r18,BLConfig_WriteMask
391 0272 3091 0000 lds r19,(BLConfig_WriteMask)+1
392 0276 8223 and r24,r18
393 0278 9323 and r25,r19
394 027a 892B or r24,r25
395 027c 51F0 breq .L25
396 027e 80E0 ldi r24,lo8(BLConfig)
397 0280 90E0 ldi r25,hi8(BLConfig)
398 0282 9093 0000 sts (pBuff.2)+1,r25
399 0286 8093 0000 sts pBuff.2,r24
400 028a 88E0 ldi r24,lo8(8)
401 028c 8093 0000 sts BuffLen.3,r24
402 0290 E2C1 rjmp .L9
403 .L25:
404 0292 84E0 ldi r24,lo8(4)
405 0294 80C1 rjmp .L82
406 .L27:
407 0296 E091 0000 lds r30,pBuff.2
408 029a F091 0000 lds r31,(pBuff.2)+1
409 029e 8191 ld r24,Z+
410 02a0 8093 BB00 sts 187,r24
411 02a4 85E8 ldi r24,lo8(-123)
412 02a6 8093 BC00 sts 188,r24
413 02aa F093 0000 sts (pBuff.2)+1,r31
414 02ae E093 0000 sts pBuff.2,r30
415 02b2 8091 0000 lds r24,BuffLen.3
416 02b6 8150 subi r24,lo8(-(-1))
417 02b8 8093 0000 sts BuffLen.3,r24
418 02bc 8823 tst r24
419 02be 09F4 brne .+2
420 02c0 CAC1 rjmp .L9
421 02c2 83E0 ldi r24,lo8(3)
422 02c4 68C1 rjmp .L82
423 .L29:
424 02c6 8091 B900 lds r24,185
425 02ca 8033 cpi r24,lo8(48)
426 02cc 51F5 brne .L30
427 02ce 8091 0000 lds r24,missing_motor.0
428 02d2 8823 tst r24
429 02d4 29F4 brne .L31
430 02d6 8091 0000 lds r24,motor_write
431 02da 8F5F subi r24,lo8(-(1))
432 02dc 8093 0000 sts missing_motor.0,r24
433 .L31:
434 02e0 8091 0000 lds r24,motor_write
435 02e4 E82F mov r30,r24
436 02e6 FF27 clr r31
437 02e8 83E0 ldi r24,3
438 02ea EE0F 1: lsl r30
439 02ec FF1F rol r31
440 02ee 8A95 dec r24
441 02f0 E1F7 brne 1b
442 02f2 E050 subi r30,lo8(-(Motor))
443 02f4 F040 sbci r31,hi8(-(Motor))
444 02f6 8381 ldd r24,Z+3
445 02f8 9927 clr r25
446 02fa 8F77 andi r24,lo8(127)
447 02fc 9070 andi r25,hi8(127)
448 02fe 8F37 cpi r24,127
449 0300 9105 cpc r25,__zero_reg__
450 0302 7CF4 brge .L30
451 0304 8091 0000 lds r24,motor_write
452 0308 E82F mov r30,r24
453 030a FF27 clr r31
454 030c EE0F lsl r30
455 030e FF1F rol r31
456 0310 EE0F lsl r30
457 0312 FF1F rol r31
458 0314 EE0F lsl r30
459 0316 FF1F rol r31
460 0318 E050 subi r30,lo8(-(Motor))
461 031a F040 sbci r31,hi8(-(Motor))
462 031c 8381 ldd r24,Z+3
463 031e 8F5F subi r24,lo8(-(1))
464 0320 8383 std Z+3,r24
465 .L30:
466 0322 1092 0000 sts twi_state,__zero_reg__
467 0326 84E9 ldi r24,lo8(-108)
468 0328 8093 BC00 sts 188,r24
469 032c 8AE0 ldi r24,lo8(10)
470 032e 90E0 ldi r25,hi8(10)
471 0330 9093 0000 sts (I2CTimeout)+1,r25
472 0334 8093 0000 sts I2CTimeout,r24
473 0338 8091 0000 lds r24,motor_write
474 033c 8F5F subi r24,lo8(-(1))
475 033e 8093 0000 sts motor_write,r24
476 0342 1092 0000 sts twi_state,__zero_reg__
477 0346 62C1 rjmp .L85
478 .L33:
479 0348 8091 B900 lds r24,185
480 034c 8034 cpi r24,lo8(64)
481 034e A9F1 breq .L34
482 0350 8091 0000 lds r24,motor_read
483 0354 E82F mov r30,r24
484 0356 FF27 clr r31
485 0358 EE0F lsl r30
486 035a FF1F rol r31
487 035c EE0F lsl r30
488 035e FF1F rol r31
489 0360 EE0F lsl r30
490 0362 FF1F rol r31
491 0364 E050 subi r30,lo8(-(Motor))
492 0366 F040 sbci r31,hi8(-(Motor))
493 0368 8381 ldd r24,Z+3
494 036a 8F77 andi r24,lo8(127)
495 036c 8383 std Z+3,r24
496 036e 8091 0000 lds r24,motor_read
497 0372 8F5F subi r24,lo8(-(1))
498 0374 8093 0000 sts motor_read,r24
499 0378 8091 0000 lds r24,motor_read
500 037c 8C30 cpi r24,lo8(12)
501 037e A0F0 brlo .L35
502 0380 1092 0000 sts motor_read,__zero_reg__
503 0384 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
504 0388 1092 0000 sts BLConfig_ReadMask,__zero_reg__
505 038c 8091 0000 lds r24,motor_read_temperature.1
506 0390 8F5F subi r24,lo8(-(1))
507 0392 8093 0000 sts motor_read_temperature.1,r24
508 0396 8C30 cpi r24,lo8(12)
509 0398 38F0 brlo .L35
510 039a 1092 0000 sts motor_read_temperature.1,__zero_reg__
511 039e 8091 0000 lds r24,BLFlags
512 03a2 8D7F andi r24,lo8(-3)
513 03a4 8093 0000 sts BLFlags,r24
514 .L35:
515 03a8 8091 0000 lds r24,BLFlags
516 03ac 8160 ori r24,lo8(1)
517 03ae 8093 0000 sts BLFlags,r24
518 03b2 1092 0000 sts twi_state,__zero_reg__
519 03b6 84E9 ldi r24,lo8(-108)
520 03b8 71C0 rjmp .L78
521 .L34:
522 03ba 8091 0000 lds r24,motor_read
523 03be E82F mov r30,r24
524 03c0 FF27 clr r31
525 03c2 EE0F lsl r30
526 03c4 FF1F rol r31
527 03c6 EE0F lsl r30
528 03c8 FF1F rol r31
529 03ca EE0F lsl r30
530 03cc FF1F rol r31
531 03ce E050 subi r30,lo8(-(Motor))
532 03d0 F040 sbci r31,hi8(-(Motor))
533 03d2 8381 ldd r24,Z+3
534 03d4 8068 ori r24,lo8(-128)
535 03d6 8383 std Z+3,r24
536 03d8 8091 0000 lds r24,motor_read
537 03dc E82F mov r30,r24
538 03de FF27 clr r31
539 03e0 EE0F lsl r30
540 03e2 FF1F rol r31
541 03e4 EE0F lsl r30
542 03e6 FF1F rol r31
543 03e8 EE0F lsl r30
544 03ea FF1F rol r31
545 03ec E050 subi r30,lo8(-(Motor))
546 03ee F040 sbci r31,hi8(-(Motor))
547 03f0 8081 ld r24,Z
548 03f2 80FF sbrs r24,0
549 03f4 2FC0 rjmp .L38
550 03f6 8091 0000 lds r24,motor_read
551 03fa E82F mov r30,r24
552 03fc FF27 clr r31
553 03fe 53E0 ldi r21,3
554 0400 EE0F 1: lsl r30
555 0402 FF1F rol r31
556 0404 5A95 dec r21
557 0406 E1F7 brne 1b
558 0408 E050 subi r30,lo8(-(Motor))
559 040a F040 sbci r31,hi8(-(Motor))
560 040c 8481 ldd r24,Z+4
561 040e 9927 clr r25
562 0410 0097 sbiw r24,0
563 0412 51F0 breq .L41
564 0414 4097 sbiw r24,16
565 0416 D9F5 brne .L44
566 0418 80E0 ldi r24,lo8(BLConfig)
567 041a 90E0 ldi r25,hi8(BLConfig)
568 041c 9093 0000 sts (pBuff.2)+1,r25
569 0420 8093 0000 sts pBuff.2,r24
570 0424 88E0 ldi r24,lo8(8)
571 0426 31C0 rjmp .L77
572 .L41:
573 0428 8091 0000 lds r24,motor_read
574 042c 9927 clr r25
575 042e 43E0 ldi r20,3
576 0430 880F 1: lsl r24
577 0432 991F rol r25
578 0434 4A95 dec r20
579 0436 E1F7 brne 1b
580 0438 8050 subi r24,lo8(-(Motor+5))
581 043a 9040 sbci r25,hi8(-(Motor+5))
582 043c 9093 0000 sts (pBuff.2)+1,r25
583 0440 8093 0000 sts pBuff.2,r24
584 0444 9091 0000 lds r25,motor_read
585 0448 8091 0000 lds r24,motor_read_temperature.1
586 044c 9817 cp r25,r24
587 044e E1F4 brne .L45
588 0450 83E0 ldi r24,lo8(3)
589 0452 1BC0 rjmp .L77
590 .L38:
591 0454 8091 0000 lds r24,motor_read
592 0458 9927 clr r25
593 045a 33E0 ldi r19,3
594 045c 880F 1: lsl r24
595 045e 991F rol r25
596 0460 3A95 dec r19
597 0462 E1F7 brne 1b
598 0464 8050 subi r24,lo8(-(Motor+5))
599 0466 9040 sbci r25,hi8(-(Motor+5))
600 0468 9093 0000 sts (pBuff.2)+1,r25
601 046c 8093 0000 sts pBuff.2,r24
602 0470 8091 0000 lds r24,BLFlags
603 0474 81FD sbrc r24,1
604 0476 06C0 rjmp .L46
605 0478 9091 0000 lds r25,motor_read
606 047c 8091 0000 lds r24,motor_read_temperature.1
607 0480 9817 cp r25,r24
608 0482 11F4 brne .L45
609 .L46:
610 0484 82E0 ldi r24,lo8(2)
611 0486 01C0 rjmp .L77
612 .L45:
613 0488 81E0 ldi r24,lo8(1)
614 .L77:
615 048a 8093 0000 sts BuffLen.3,r24
616 .L44:
617 048e 8091 0000 lds r24,BuffLen.3
618 0492 8130 cpi r24,lo8(1)
619 0494 11F4 brne .L48
620 0496 85E8 ldi r24,lo8(-123)
621 0498 01C0 rjmp .L78
622 .L48:
623 049a 85EC ldi r24,lo8(-59)
624 .L78:
625 049c 8093 BC00 sts 188,r24
626 04a0 8091 0000 lds r24,missing_motor.0
627 04a4 8093 0000 sts MissingMotor,r24
628 04a8 1092 0000 sts missing_motor.0,__zero_reg__
629 04ac D4C0 rjmp .L9
630 .L50:
631 04ae E091 0000 lds r30,pBuff.2
632 04b2 F091 0000 lds r31,(pBuff.2)+1
633 04b6 8091 BB00 lds r24,187
634 04ba 8083 st Z,r24
635 04bc 8091 0000 lds r24,pBuff.2
636 04c0 9091 0000 lds r25,(pBuff.2)+1
637 04c4 0196 adiw r24,1
638 04c6 9093 0000 sts (pBuff.2)+1,r25
639 04ca 8093 0000 sts pBuff.2,r24
640 04ce 8091 0000 lds r24,BuffLen.3
641 04d2 8150 subi r24,lo8(-(-1))
642 04d4 8093 0000 sts BuffLen.3,r24
643 04d8 8230 cpi r24,lo8(2)
644 04da 10F0 brlo .L51
645 04dc 85EC ldi r24,lo8(-59)
646 04de 58C0 rjmp .L79
647 .L51:
648 04e0 8130 cpi r24,lo8(1)
649 04e2 11F4 brne .L53
650 04e4 85E8 ldi r24,lo8(-123)
651 04e6 54C0 rjmp .L79
652 .L53:
653 04e8 8091 0000 lds r24,BLFlags
654 04ec 81FF sbrs r24,1
655 04ee 2DC0 rjmp .L55
656 04f0 8091 0000 lds r24,FCFlags
657 04f4 80FD sbrc r24,0
658 04f6 1DC0 rjmp .L56
659 04f8 8091 0000 lds r24,motor_read
660 04fc E82F mov r30,r24
661 04fe FF27 clr r31
662 0500 23E0 ldi r18,3
663 0502 EE0F 1: lsl r30
664 0504 FF1F rol r31
665 0506 2A95 dec r18
666 0508 E1F7 brne 1b
667 050a E050 subi r30,lo8(-(Motor))
668 050c F040 sbci r31,hi8(-(Motor))
669 050e 8681 ldd r24,Z+6
670 0510 8A3F cpi r24,lo8(-6)
671 0512 79F4 brne .L56
672 0514 8091 0000 lds r24,motor_read
673 0518 E82F mov r30,r24
674 051a FF27 clr r31
675 051c 93E0 ldi r25,3
676 051e EE0F 1: lsl r30
677 0520 FF1F rol r31
678 0522 9A95 dec r25
679 0524 E1F7 brne 1b
680 0526 E050 subi r30,lo8(-(Motor))
681 0528 F040 sbci r31,hi8(-(Motor))
682 052a 8081 ld r24,Z
683 052c 8160 ori r24,lo8(1)
684 052e 8083 st Z,r24
685 0530 0CC0 rjmp .L55
686 .L56:
687 0532 8091 0000 lds r24,motor_read
688 0536 E82F mov r30,r24
689 0538 FF27 clr r31
690 053a 83E0 ldi r24,3
691 053c EE0F 1: lsl r30
692 053e FF1F rol r31
693 0540 8A95 dec r24
694 0542 E1F7 brne 1b
695 0544 E050 subi r30,lo8(-(Motor))
696 0546 F040 sbci r31,hi8(-(Motor))
697 0548 1082 st Z,__zero_reg__
698 .L55:
699 054a 8091 0000 lds r24,motor_read
700 054e 8F5F subi r24,lo8(-(1))
701 0550 8093 0000 sts motor_read,r24
702 0554 8091 0000 lds r24,motor_read
703 0558 8C30 cpi r24,lo8(12)
704 055a A0F0 brlo .L58
705 055c 1092 0000 sts motor_read,__zero_reg__
706 0560 1092 0000 sts (BLConfig_ReadMask)+1,__zero_reg__
707 0564 1092 0000 sts BLConfig_ReadMask,__zero_reg__
708 0568 8091 0000 lds r24,motor_read_temperature.1
709 056c 8F5F subi r24,lo8(-(1))
710 056e 8093 0000 sts motor_read_temperature.1,r24
711 0572 8C30 cpi r24,lo8(12)
712 0574 38F0 brlo .L58
713 0576 1092 0000 sts motor_read_temperature.1,__zero_reg__
714 057a 8091 0000 lds r24,BLFlags
715 057e 8D7F andi r24,lo8(-3)
716 0580 8093 0000 sts BLFlags,r24
717 .L58:
718 0584 1092 0000 sts twi_state,__zero_reg__
719 0588 84E9 ldi r24,lo8(-108)
720 058a 8093 BC00 sts 188,r24
721 058e 49C0 rjmp .L81
722 .L79:
723 0590 8093 BC00 sts 188,r24
724 0594 86E0 ldi r24,lo8(6)
725 .L82:
726 0596 8093 0000 sts twi_state,r24
727 059a 5DC0 rjmp .L9
728 .L60:
729 059c 88E9 ldi r24,lo8(-104)
730 059e C4CD rjmp .L84
731 .L61:
732 05a0 8091 0000 lds r24,dac_channel
733 05a4 880F lsl r24
734 05a6 805F subi r24,lo8(-(16))
735 05a8 BFCD rjmp .L84
736 .L62:
737 05aa 8091 0000 lds r24,dac_channel
738 05ae 9927 clr r25
739 05b0 8130 cpi r24,1
740 05b2 9105 cpc r25,__zero_reg__
741 05b4 61F0 breq .L65
742 05b6 8230 cpi r24,2
743 05b8 9105 cpc r25,__zero_reg__
744 05ba 1CF4 brge .L67
745 05bc 892B or r24,r25
746 05be 21F0 breq .L64
747 05c0 4AC0 rjmp .L9
748 .L67:
749 05c2 0297 sbiw r24,2
750 05c4 39F0 breq .L66
751 05c6 47C0 rjmp .L9
752 .L64:
753 05c8 8091 0000 lds r24,AnalogOffsetNick
754 05cc ADCD rjmp .L84
755 .L65:
756 05ce 8091 0000 lds r24,AnalogOffsetRoll
757 05d2 AACD rjmp .L84
758 .L66:
759 05d4 8091 0000 lds r24,AnalogOffsetGier
760 05d8 A7CD rjmp .L84
761 .L68:
762 05da 80E8 ldi r24,lo8(-128)
763 05dc A5CD rjmp .L84
764 .L69:
765 05de 1092 0000 sts twi_state,__zero_reg__
766 05e2 84E9 ldi r24,lo8(-108)
767 05e4 8093 BC00 sts 188,r24
768 05e8 8AE0 ldi r24,lo8(10)
769 05ea 90E0 ldi r25,hi8(10)
770 05ec 9093 0000 sts (I2CTimeout)+1,r25
771 05f0 8093 0000 sts I2CTimeout,r24
772 05f4 8091 0000 lds r24,dac_channel
773 05f8 8230 cpi r24,lo8(2)
774 05fa 88F4 brsh .L70
775 05fc 8091 0000 lds r24,dac_channel
776 0600 8F5F subi r24,lo8(-(1))
777 0602 8093 0000 sts dac_channel,r24
778 0606 82E1 ldi r24,lo8(18)
779 0608 8093 0000 sts twi_state,r24
780 .L85:
781 060c 8091 0000 lds r24,BLFlags
782 0610 8E7F andi r24,lo8(-2)
783 0612 8093 0000 sts BLFlags,r24
784 0616 85EA ldi r24,lo8(-91)
785 .L80:
786 0618 8093 BC00 sts 188,r24
787 061c 1CC0 rjmp .L9
788 .L70:
789 061e 1092 0000 sts dac_channel,__zero_reg__
790 .L81:
791 0622 8091 0000 lds r24,BLFlags
792 0626 8160 ori r24,lo8(1)
793 0628 8093 0000 sts BLFlags,r24
794 062c 14C0 rjmp .L9
795 .L72:
796 062e 1092 0000 sts twi_state,__zero_reg__
797 0632 84E9 ldi r24,lo8(-108)
798 0634 8093 BC00 sts 188,r24
799 0638 8091 0000 lds r24,BLFlags
800 063c 8160 ori r24,lo8(1)
801 063e 8093 0000 sts BLFlags,r24
802 0642 8AE0 ldi r24,lo8(10)
803 0644 90E0 ldi r25,hi8(10)
804 0646 9093 0000 sts (I2CTimeout)+1,r25
805 064a 8093 0000 sts I2CTimeout,r24
806 064e 1092 0000 sts motor_write,__zero_reg__
807 0652 1092 0000 sts motor_read,__zero_reg__
808 .L9:
809 /* epilogue: frame size=0 */
810 0656 FF91 pop r31
811 0658 EF91 pop r30
812 065a 9F91 pop r25
813 065c 8F91 pop r24
814 065e 5F91 pop r21
815 0660 4F91 pop r20
816 0662 3F91 pop r19
817 0664 2F91 pop r18
818 0666 0F90 pop __tmp_reg__
819 0668 0FBE out __SREG__,__tmp_reg__
820 066a 0F90 pop __tmp_reg__
821 066c 1F90 pop __zero_reg__
822 066e 1895 reti
823 /* epilogue end (size=13) */
824 /* function __vector_26 size 779 (753) */
826 .global I2C_WriteBLConfig
828 I2C_WriteBLConfig:
829 /* prologue: frame size=0 */
830 0670 1F93 push r17
831 0672 CF93 push r28
832 0674 DF93 push r29
833 /* prologue end (size=3) */
834 0676 182F mov r17,r24
835 0678 8091 0000 lds r24,MotorenEin
836 067c 8823 tst r24
837 067e 21F4 brne .L88
838 0680 8091 0000 lds r24,PC_MotortestActive
839 0684 8823 tst r24
840 0686 19F0 breq .L87
841 .L88:
842 0688 81E0 ldi r24,lo8(1)
843 068a 90E0 ldi r25,hi8(1)
844 068c 97C0 rjmp .L86
845 .L87:
846 068e 1D30 cpi r17,lo8(13)
847 0690 08F0 brlo .+2
848 0692 92C0 rjmp .L115
849 0694 1123 tst r17
850 0696 B1F0 breq .L90
851 0698 E12F mov r30,r17
852 069a FF27 clr r31
853 069c 23E0 ldi r18,3
854 069e EE0F 1: lsl r30
855 06a0 FF1F rol r31
856 06a2 2A95 dec r18
857 06a4 E1F7 brne 1b
858 06a6 E050 subi r30,lo8(-(Motor))
859 06a8 F040 sbci r31,hi8(-(Motor))
860 06aa 3597 sbiw r30,5
861 06ac 8081 ld r24,Z
862 06ae 3596 adiw r30,5
863 06b0 8823 tst r24
864 06b2 0CF0 brlt .+2
865 06b4 81C0 rjmp .L115
866 06b6 3897 sbiw r30,8
867 06b8 8081 ld r24,Z
868 06ba 80FD sbrc r24,0
869 06bc 03C0 rjmp .L90
870 06be 83E0 ldi r24,lo8(3)
871 06c0 90E0 ldi r25,hi8(3)
872 06c2 7CC0 rjmp .L86
873 .L90:
874 06c4 8091 0000 lds r24,BLConfig
875 06c8 8230 cpi r24,lo8(2)
876 06ca 19F0 breq .L93
877 06cc 84E0 ldi r24,lo8(4)
878 06ce 90E0 ldi r25,hi8(4)
879 06d0 75C0 rjmp .L86
880 .L93:
881 06d2 67E0 ldi r22,lo8(7)
882 06d4 70E0 ldi r23,hi8(7)
883 06d6 80E0 ldi r24,lo8(BLConfig)
884 06d8 90E0 ldi r25,hi8(BLConfig)
885 06da 0E94 0000 call RAM_Checksum
886 06de 9091 0000 lds r25,BLConfig+7
887 06e2 8917 cp r24,r25
888 06e4 19F0 breq .L94
889 06e6 85E0 ldi r24,lo8(5)
890 06e8 90E0 ldi r25,hi8(5)
891 06ea 68C0 rjmp .L86
892 .L94:
893 06ec 80ED ldi r24,lo8(2000)
894 06ee 97E0 ldi r25,hi8(2000)
895 06f0 0E94 0000 call SetDelay
896 06f4 EC01 movw r28,r24
897 .L95:
898 06f6 8091 0000 lds r24,BLFlags
899 06fa 80FD sbrc r24,0
900 06fc 05C0 rjmp .L96
901 06fe CE01 movw r24,r28
902 0700 0E94 0000 call CheckDelay
903 0704 8823 tst r24
904 0706 B9F3 breq .L95
905 .L96:
906 0708 1123 tst r17
907 070a 19F4 brne .L98
908 070c 8FEF ldi r24,lo8(255)
909 070e 90E0 ldi r25,hi8(255)
910 0710 0BC0 rjmp .L114
911 .L98:
912 0712 212F mov r18,r17
913 0714 3327 clr r19
914 0716 2150 subi r18,lo8(-(-1))
915 0718 3040 sbci r19,hi8(-(-1))
916 071a 81E0 ldi r24,lo8(1)
917 071c 90E0 ldi r25,hi8(1)
918 071e 02C0 rjmp 2f
919 0720 880F 1: lsl r24
920 0722 991F rol r25
921 0724 2A95 2: dec r18
922 0726 E2F7 brpl 1b
923 .L114:
924 0728 9093 0000 sts (BLConfig_WriteMask)+1,r25
925 072c 8093 0000 sts BLConfig_WriteMask,r24
926 0730 A1E0 ldi r26,lo8(1)
927 0732 B0E0 ldi r27,hi8(1)
928 0734 E0E0 ldi r30,lo8(Motor)
929 0736 F0E0 ldi r31,hi8(Motor)
930 0738 40E0 ldi r20,lo8(0)
931 073a 50E0 ldi r21,hi8(0)
932 073c 6BE0 ldi r22,lo8(11)
933 .L104:
934 073e CD01 movw r24,r26
935 0740 042E mov r0,r20
936 0742 02C0 rjmp 2f
937 0744 880F 1: lsl r24
938 0746 991F rol r25
939 0748 0A94 2: dec r0
940 074a E2F7 brpl 1b
941 074c 2091 0000 lds r18,BLConfig_WriteMask
942 0750 3091 0000 lds r19,(BLConfig_WriteMask)+1
943 0754 8223 and r24,r18
944 0756 9323 and r25,r19
945 0758 892B or r24,r25
946 075a 11F0 breq .L102
947 075c 1182 std Z+1,__zero_reg__
948 075e 1282 std Z+2,__zero_reg__
949 .L102:
950 0760 6150 subi r22,lo8(-(-1))
951 0762 4F5F subi r20,lo8(-(1))
952 0764 5F4F sbci r21,hi8(-(1))
953 0766 3896 adiw r30,8
954 0768 67FF sbrs r22,7
955 076a E9CF rjmp .L104
956 076c 1092 0000 sts motor_write,__zero_reg__
957 .L105:
958 0770 1092 0000 sts twi_state,__zero_reg__
959 0774 8091 0000 lds r24,BLFlags
960 0778 8E7F andi r24,lo8(-2)
961 077a 8093 0000 sts BLFlags,r24
962 077e 85EA ldi r24,lo8(-91)
963 0780 8093 BC00 sts 188,r24
964 .L108:
965 0784 8091 0000 lds r24,BLFlags
966 0788 80FD sbrc r24,0
967 078a 05C0 rjmp .L109
968 078c CE01 movw r24,r28
969 078e 0E94 0000 call CheckDelay
970 0792 8823 tst r24
971 0794 B9F3 breq .L108
972 .L109:
973 0796 8091 0000 lds r24,BLConfig_WriteMask
974 079a 9091 0000 lds r25,(BLConfig_WriteMask)+1
975 079e 892B or r24,r25
976 07a0 29F0 breq .L106
977 07a2 CE01 movw r24,r28
978 07a4 0E94 0000 call CheckDelay
979 07a8 8823 tst r24
980 07aa 11F3 breq .L105
981 .L106:
982 07ac 8091 0000 lds r24,BLConfig_WriteMask
983 07b0 9091 0000 lds r25,(BLConfig_WriteMask)+1
984 07b4 0097 sbiw r24,0
985 07b6 11F0 breq .L86
986 .L115:
987 07b8 82E0 ldi r24,lo8(2)
988 07ba 90E0 ldi r25,hi8(2)
989 .L86:
990 /* epilogue: frame size=0 */
991 07bc DF91 pop r29
992 07be CF91 pop r28
993 07c0 1F91 pop r17
994 07c2 0895 ret
995 /* epilogue end (size=4) */
996 /* function I2C_WriteBLConfig size 172 (165) */
998 .global I2C_ReadBLConfig
1000 I2C_ReadBLConfig:
1001 /* prologue: frame size=0 */
1002 07c4 0F93 push r16
1003 07c6 1F93 push r17
1004 07c8 CF93 push r28
1005 07ca DF93 push r29
1006 /* prologue end (size=4) */
1007 07cc 982F mov r25,r24
1008 07ce 8091 0000 lds r24,MotorenEin
1009 07d2 8823 tst r24
1010 07d4 21F4 brne .L118
1011 07d6 8091 0000 lds r24,PC_MotortestActive
1012 07da 8823 tst r24
1013 07dc 19F0 breq .L117
1014 .L118:
1015 07de 81E0 ldi r24,lo8(1)
1016 07e0 90E0 ldi r25,hi8(1)
1017 07e2 92C0 rjmp .L116
1018 .L117:
1019 07e4 9D30 cpi r25,lo8(13)
1020 07e6 A0F4 brsh .L141
1021 07e8 9923 tst r25
1022 07ea 19F4 brne .L120
1023 07ec 86E0 ldi r24,lo8(6)
1024 07ee 90E0 ldi r25,hi8(6)
1025 07f0 8BC0 rjmp .L116
1026 .L120:
1027 07f2 C92F mov r28,r25
1028 07f4 DD27 clr r29
1029 07f6 FE01 movw r30,r28
1030 07f8 33E0 ldi r19,3
1031 07fa EE0F 1: lsl r30
1032 07fc FF1F rol r31
1033 07fe 3A95 dec r19
1034 0800 E1F7 brne 1b
1035 0802 E050 subi r30,lo8(-(Motor))
1036 0804 F040 sbci r31,hi8(-(Motor))
1037 0806 3597 sbiw r30,5
1038 0808 8081 ld r24,Z
1039 080a 3596 adiw r30,5
1040 080c 87FD sbrc r24,7
1041 080e 03C0 rjmp .L121
1042 .L141:
1043 0810 82E0 ldi r24,lo8(2)
1044 0812 90E0 ldi r25,hi8(2)
1045 0814 79C0 rjmp .L116
1046 .L121:
1047 0816 3897 sbiw r30,8
1048 0818 8081 ld r24,Z
1049 081a 80FD sbrc r24,0
1050 081c 03C0 rjmp .L122
1051 081e 83E0 ldi r24,lo8(3)
1052 0820 90E0 ldi r25,hi8(3)
1053 0822 72C0 rjmp .L116
1054 .L122:
1055 0824 80ED ldi r24,lo8(2000)
1056 0826 97E0 ldi r25,hi8(2000)
1057 0828 0E94 0000 call SetDelay
1058 082c 8C01 movw r16,r24
1059 .L123:
1060 082e 8091 0000 lds r24,BLFlags
1061 0832 80FD sbrc r24,0
1062 0834 05C0 rjmp .L124
1063 0836 C801 movw r24,r16
1064 0838 0E94 0000 call CheckDelay
1065 083c 8823 tst r24
1066 083e B9F3 breq .L123
1067 .L124:
1068 0840 2197 sbiw r28,1
1069 0842 21E0 ldi r18,lo8(1)
1070 0844 30E0 ldi r19,hi8(1)
1071 0846 C901 movw r24,r18
1072 0848 02C0 rjmp 2f
1073 084a 880F 1: lsl r24
1074 084c 991F rol r25
1075 084e CA95 2: dec r28
1076 0850 E2F7 brpl 1b
1077 0852 9093 0000 sts (BLConfig_ReadMask)+1,r25
1078 0856 8093 0000 sts BLConfig_ReadMask,r24
1079 085a D901 movw r26,r18
1080 085c E0E0 ldi r30,lo8(Motor)
1081 085e F0E0 ldi r31,hi8(Motor)
1082 0860 40E0 ldi r20,lo8(0)
1083 0862 50E0 ldi r21,hi8(0)
1084 0864 6BE0 ldi r22,lo8(11)
1085 .L130:
1086 0866 CD01 movw r24,r26
1087 0868 042E mov r0,r20
1088 086a 02C0 rjmp 2f
1089 086c 880F 1: lsl r24
1090 086e 991F rol r25
1091 0870 0A94 2: dec r0
1092 0872 E2F7 brpl 1b
1093 0874 2091 0000 lds r18,BLConfig_ReadMask
1094 0878 3091 0000 lds r19,(BLConfig_ReadMask)+1
1095 087c 8223 and r24,r18
1096 087e 9323 and r25,r19
1097 0880 892B or r24,r25
1098 0882 11F0 breq .L128
1099 0884 1182 std Z+1,__zero_reg__
1100 0886 1282 std Z+2,__zero_reg__
1101 .L128:
1102 0888 6150 subi r22,lo8(-(-1))
1103 088a 4F5F subi r20,lo8(-(1))
1104 088c 5F4F sbci r21,hi8(-(1))
1105 088e 3896 adiw r30,8
1106 0890 67FF sbrs r22,7
1107 0892 E9CF rjmp .L130
1108 0894 1092 0000 sts motor_read,__zero_reg__
1109 0898 1092 0000 sts BLConfig,__zero_reg__
1110 089c 1092 0000 sts BLConfig+7,__zero_reg__
1111 .L131:
1112 08a0 1092 0000 sts twi_state,__zero_reg__
1113 08a4 8091 0000 lds r24,BLFlags
1114 08a8 8E7F andi r24,lo8(-2)
1115 08aa 8093 0000 sts BLFlags,r24
1116 08ae 85EA ldi r24,lo8(-91)
1117 08b0 8093 BC00 sts 188,r24
1118 .L134:
1119 08b4 8091 0000 lds r24,BLFlags
1120 08b8 80FD sbrc r24,0
1121 08ba 05C0 rjmp .L135
1122 08bc C801 movw r24,r16
1123 08be 0E94 0000 call CheckDelay
1124 08c2 8823 tst r24
1125 08c4 B9F3 breq .L134
1126 .L135:
1127 08c6 8091 0000 lds r24,BLConfig_ReadMask
1128 08ca 9091 0000 lds r25,(BLConfig_ReadMask)+1
1129 08ce 892B or r24,r25
1130 08d0 29F0 breq .L132
1131 08d2 C801 movw r24,r16
1132 08d4 0E94 0000 call CheckDelay
1133 08d8 8823 tst r24
1134 08da 11F3 breq .L131
1135 .L132:
1136 08dc 8091 0000 lds r24,BLConfig
1137 08e0 8230 cpi r24,lo8(2)
1138 08e2 19F0 breq .L137
1139 08e4 84E0 ldi r24,lo8(4)
1140 08e6 90E0 ldi r25,hi8(4)
1141 08e8 0FC0 rjmp .L116
1142 .L137:
1143 08ea 67E0 ldi r22,lo8(7)
1144 08ec 70E0 ldi r23,hi8(7)
1145 08ee 80E0 ldi r24,lo8(BLConfig)
1146 08f0 90E0 ldi r25,hi8(BLConfig)
1147 08f2 0E94 0000 call RAM_Checksum
1148 08f6 9091 0000 lds r25,BLConfig+7
1149 08fa 8917 cp r24,r25
1150 08fc 19F0 breq .L138
1151 08fe 85E0 ldi r24,lo8(5)
1152 0900 90E0 ldi r25,hi8(5)
1153 0902 02C0 rjmp .L116
1154 .L138:
1155 0904 80E0 ldi r24,lo8(0)
1156 0906 90E0 ldi r25,hi8(0)
1157 .L116:
1158 /* epilogue: frame size=0 */
1159 0908 DF91 pop r29
1160 090a CF91 pop r28
1161 090c 1F91 pop r17
1162 090e 0F91 pop r16
1163 0910 0895 ret
1164 /* epilogue end (size=5) */
1165 /* function I2C_ReadBLConfig size 168 (159) */
1167 .comm Motor,96,1
1168 .comm BLConfig,8,1
1169 /* File "twimaster.c": code 1193 = 0x04a9 (1149), prologues 20, epilogues 24 */
DEFINED SYMBOLS
*ABS*:00000000 twimaster.c
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:15 .bss:00000000 BLConfig_ReadMask
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:21 .bss:00000002 BLConfig_WriteMask
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:27 .bss:00000004 BLFlags
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:33 .bss:00000005 MissingMotor
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:39 .data:00000000 I2CTimeout
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:46 .bss:00000006 motor_read
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:52 .bss:00000007 motor_write
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:58 .bss:00000008 dac_channel
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:64 .bss:00000009 twi_state
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:69 .text:00000000 I2C_Init
*COM*:00000060 Motor
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:113 .text:0000004c I2C_Reset
.bss:0000000a missing_motor.0
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:140 .bss:0000000b motor_read_temperature.1
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:141 .bss:0000000c pBuff.2
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:142 .bss:0000000e BuffLen.3
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:146 .text:00000092 __vector_26
*COM*:00000008 BLConfig
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:828 .text:00000670 I2C_WriteBLConfig
C:\Users\Arthur-P\AppData\Local\Temp/ccktbaaa.s:1000 .text:000007c4 I2C_ReadBLConfig
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
__tablejump2__
Mixer
RequiredMotors
FCFlags
AnalogOffsetNick
AnalogOffsetRoll
AnalogOffsetGier
MotorenEin
PC_MotortestActive
RAM_Checksum
SetDelay
CheckDelay
/branches/V0.80d-Arthur-P/uart.c
0,0 → 1,683
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// + Copyright (c) Holger Buss, Ingo Busker
// + only for non-profit use
// + www.MikroKopter.com
// + see the File "License.txt" for further Informations
// ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
#include <stdarg.h>
#include <string.h>
#include <avr/pgmspace.h>
#include "main.h"
#include "uart.h"
#include "libfc.h"
#include "eeprom.h"
 
 
 
#define FC_ADDRESS 1
#define NC_ADDRESS 2
#define MK3MAG_ADDRESS 3
#define BL_CTRL_ADDRESS 5
 
#define ABO_TIMEOUT 4000 // disable abo after 4 seconds
#define MAX_SENDE_BUFF 160
#define MAX_EMPFANGS_BUFF 160
 
 
#define BLPARAM_REVISION 1
#define MASK_SET_PWM_SCALING 0x01
#define MASK_SET_CURRENT_LIMIT 0x02
#define MASK_SET_TEMP_LIMIT 0x04
#define MASK_SET_CURRENT_SCALING 0x08
#define MASK_SET_BITCONFIG 0x10
#define MASK_RESET_CAPCOUNTER 0x20
#define MASK_SET_DEFAULT_PARAMS 0x40
#define MASK_SET_SAVE_EEPROM 0x80
 
typedef struct
{
unsigned char Revision; // revision of parameter structure
unsigned char Address; // target address
unsigned char PwmScaling; // maximum value of pwm setpoint
unsigned char CurrentLimit; // current limit in 1A steps
unsigned char TemperatureLimit; // in °C
unsigned char CurrentScaling; // scaling factor for current measurement
unsigned char BitConfig; // see defines above
unsigned char SetMask; // filter for active paramters
unsigned char Checksum; // checksum for parameter sturcture
} __attribute__((packed)) BLParameter_t;
 
 
unsigned char GetExternalControl = 0,DebugDisplayAnforderung1 = 0, DebugDisplayAnforderung = 0,DebugDataAnforderung = 0,GetVersionAnforderung = 0, GetPPMChannelAnforderung = 0;
unsigned char DisplayLine = 0;
unsigned volatile char SioTmp = 0;
unsigned volatile char NeuerDatensatzEmpfangen = 0;
unsigned volatile char NeueKoordinateEmpfangen = 0;
unsigned volatile char UebertragungAbgeschlossen = 1;
unsigned volatile char CntCrcError = 0;
unsigned volatile char AnzahlEmpfangsBytes = 0;
unsigned volatile char TxdBuffer[MAX_SENDE_BUFF];
unsigned volatile char RxdBuffer[MAX_EMPFANGS_BUFF];
 
unsigned char *pRxData = 0;
unsigned char RxDataLen = 0;
unsigned volatile char PC_DebugTimeout = 0;
unsigned volatile char PC_MotortestActive = 0;
unsigned char DebugTextAnforderung = 255;
 
unsigned char PcZugriff = 100;
unsigned char MotorTest[16];
unsigned char MeineSlaveAdresse = 1; // Flight-Ctrl
unsigned char ConfirmFrame;
struct str_DebugOut DebugOut;
struct str_ExternControl ExternControl;
struct str_VersionInfo VersionInfo;
struct str_WinkelOut WinkelOut;
struct str_Data3D Data3D;
 
int Display_Timer, Debug_Timer,Kompass_Timer,Timer3D;
unsigned int DebugDataIntervall = 0, Intervall3D = 0, Display_Interval = 0;
unsigned int AboTimeOut = 0;
 
const unsigned char ANALOG_TEXT[32][16] PROGMEM =
{
//1234567890123456
"AngleNick ", //0
"AngleRoll ",
"AccNick ",
"AccRoll ",
"YawGyro ",
"Height Value ", //5
"AccZ ",
"Gas ",
"Compass Value ",
"Voltage [0.1V] ",
"Receiver Level ", //10
"Gyro Compass ",
"Motor 1 ",
"Motor 2 ",
"Motor 3 ",
"Motor 4 ", //15
"16 ",
"17 ",
"18 ",
"19 ",
"Servo ", //20
"Hovergas ",
"Current [0.1A] ",
"Capacity [mAh] ",
"24 ",
"25 ", //25
"26 ",
"27 ",
"I2C-Error ",
"BL Limit ",
"GPS_Nick ", //30
"GPS_Roll "
};
 
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Sende-Part der Datenübertragung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_TX_vect)
{
static unsigned int ptr = 0;
unsigned char tmp_tx;
if(!UebertragungAbgeschlossen)
{
ptr++; // die [0] wurde schon gesendet
tmp_tx = TxdBuffer[ptr];
if((tmp_tx == '\r') || (ptr == MAX_SENDE_BUFF))
{
ptr = 0;
UebertragungAbgeschlossen = 1;
}
UDR0 = tmp_tx;
}
else ptr = 0;
}
 
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Empfangs-Part der Datenübertragung, incl. CRC-Auswertung
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ISR(USART0_RX_vect)
{
static unsigned int crc;
static unsigned char crc1,crc2,buf_ptr;
static unsigned char UartState = 0;
unsigned char CrcOkay = 0;
 
SioTmp = UDR0;
if(buf_ptr >= MAX_SENDE_BUFF) UartState = 0;
if(SioTmp == '\r' && UartState == 2)
{
UartState = 0;
crc -= RxdBuffer[buf_ptr-2];
crc -= RxdBuffer[buf_ptr-1];
crc %= 4096;
crc1 = '=' + crc / 64;
crc2 = '=' + crc % 64;
CrcOkay = 0;
if((crc1 == RxdBuffer[buf_ptr-2]) && (crc2 == RxdBuffer[buf_ptr-1])) CrcOkay = 1; else { CrcOkay = 0; CntCrcError++;};
if(!NeuerDatensatzEmpfangen && CrcOkay) // Datensatz schon verarbeitet
{
NeuerDatensatzEmpfangen = 1;
AnzahlEmpfangsBytes = buf_ptr + 1;
RxdBuffer[buf_ptr] = '\r';
if(RxdBuffer[2] == 'R')
{
LcdClear();
wdt_enable(WDTO_250MS); // Reset-Commando
ServoActive = 0;
 
}
}
}
else
switch(UartState)
{
case 0:
if(SioTmp == '#' && !NeuerDatensatzEmpfangen) UartState = 1; // Startzeichen und Daten schon verarbeitet
buf_ptr = 0;
RxdBuffer[buf_ptr++] = SioTmp;
crc = SioTmp;
break;
case 1: // Adresse auswerten
UartState++;
RxdBuffer[buf_ptr++] = SioTmp;
crc += SioTmp;
break;
case 2: // Eingangsdaten sammeln
RxdBuffer[buf_ptr] = SioTmp;
if(buf_ptr < MAX_EMPFANGS_BUFF) buf_ptr++;
else UartState = 0;
crc += SioTmp;
break;
default:
UartState = 0;
break;
}
}
 
 
// --------------------------------------------------------------------------
void AddCRC(unsigned int wieviele)
{
unsigned int tmpCRC = 0,i;
for(i = 0; i < wieviele;i++)
{
tmpCRC += TxdBuffer[i];
}
tmpCRC %= 4096;
TxdBuffer[i++] = '=' + tmpCRC / 64;
TxdBuffer[i++] = '=' + tmpCRC % 64;
TxdBuffer[i++] = '\r';
UebertragungAbgeschlossen = 0;
UDR0 = TxdBuffer[0];
}
 
 
 
// --------------------------------------------------------------------------
void SendOutData(unsigned char cmd,unsigned char address, unsigned char BufferAnzahl, ...) //unsigned char *snd, unsigned char len)
{
va_list ap;
unsigned int pt = 0;
unsigned char a,b,c;
unsigned char ptr = 0;
 
unsigned char *snd = 0;
int len = 0;
 
TxdBuffer[pt++] = '#'; // Startzeichen
TxdBuffer[pt++] = 'a' + address; // Adresse (a=0; b=1,...)
TxdBuffer[pt++] = cmd; // Commando
 
va_start(ap, BufferAnzahl);
if(BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
while(len)
{
if(len)
{
a = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else a = 0;
if(len)
{
b = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else b = 0;
if(len)
{
c = snd[ptr++];
len--;
if((!len) && BufferAnzahl)
{
snd = va_arg(ap, unsigned char*);
len = va_arg(ap, int);
ptr = 0;
BufferAnzahl--;
}
}
else c = 0;
TxdBuffer[pt++] = '=' + (a >> 2);
TxdBuffer[pt++] = '=' + (((a & 0x03) << 4) | ((b & 0xf0) >> 4));
TxdBuffer[pt++] = '=' + (((b & 0x0f) << 2) | ((c & 0xc0) >> 6));
TxdBuffer[pt++] = '=' + ( c & 0x3f);
}
va_end(ap);
AddCRC(pt);
}
 
// --------------------------------------------------------------------------
void Decode64(void) // die daten werden im rx buffer dekodiert, das geht nur, weil aus 4 byte immer 3 gemacht werden.
{
unsigned char a,b,c,d;
unsigned char x,y,z;
unsigned char ptrIn = 3; // start at begin of data block
unsigned char ptrOut = 3;
unsigned char len = AnzahlEmpfangsBytes - 6; // von der Gesamtbytezahl eines Frames gehen 3 Bytes des Headers ('#',Addr, Cmd) und 3 Bytes des Footers (CRC1, CRC2, '\r') ab.
 
while(len)
{
a = RxdBuffer[ptrIn++] - '=';
b = RxdBuffer[ptrIn++] - '=';
c = RxdBuffer[ptrIn++] - '=';
d = RxdBuffer[ptrIn++] - '=';
 
x = (a << 2) | (b >> 4);
y = ((b & 0x0f) << 4) | (c >> 2);
z = ((c & 0x03) << 6) | d;
 
if(len--) RxdBuffer[ptrOut++] = x; else break;
if(len--) RxdBuffer[ptrOut++] = y; else break;
if(len--) RxdBuffer[ptrOut++] = z; else break;
}
pRxData = (unsigned char*)&RxdBuffer[3]; // decodierte Daten beginnen beim 4. Byte
RxDataLen = ptrOut - 3; // wie viele Bytes wurden dekodiert?
 
}
 
// --------------------------------------------------------------------------
void BearbeiteRxDaten(void)
{
if(!NeuerDatensatzEmpfangen) return;
 
unsigned char tempchar1, tempchar2;
Decode64(); // dekodiere datenblock im Empfangsbuffer
switch(RxdBuffer[1]-'a') // check for Slave Address
{
case FC_ADDRESS: // FC special commands
switch(RxdBuffer[2])
{
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
break;
case 't':// Motortest
if(AnzahlEmpfangsBytes > 20) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
PC_MotortestActive = 240;
//while(!UebertragungAbgeschlossen);
//SendOutData('T', MeineSlaveAdresse, 0);
PcZugriff = 255;
break;
 
case 'n':// "Get Mixer
while(!UebertragungAbgeschlossen);
SendOutData('N', FC_ADDRESS, 1, (unsigned char *) &Mixer, sizeof(Mixer) - 1);
Debug("Mixer lesen");
break;
 
case 'm':// "Write Mixer
if(pRxData[0] == EEMIXER_REVISION)
{
memcpy(&Mixer, (unsigned char *)pRxData, sizeof(Mixer) - 1);
MixerTable_WriteToEEProm();
tempchar1 = 1;
VersionInfo.HardwareError[1] &= ~DEFEKT_MIXER_ERR;
}
else
{
tempchar1 = 0;
}
while(!UebertragungAbgeschlossen);
SendOutData('M', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
break;
 
case 'p': // get PPM Channels
GetPPMChannelAnforderung = 1;
PcZugriff = 255;
break;
 
case 'q':// "Get"-Anforderung für Settings
// Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
if(pRxData[0] == 0xFF)
{
pRxData[0] = GetActiveParamSet();
}
// limit settings range
if(pRxData[0] < 1) pRxData[0] = 1; // limit to 5
else if(pRxData[0] > 5) pRxData[0] = 5; // limit to 5
// load requested parameter set
ParamSet_ReadFromEEProm(pRxData[0]);
tempchar1 = pRxData[0];
while(!UebertragungAbgeschlossen);
SendOutData('Q', FC_ADDRESS, 2, &tempchar1, sizeof(tempchar1), (unsigned char *) &EE_Parameter, sizeof(EE_Parameter) - 1);
Debug("Lese Setting %d", tempchar1);
 
break;
 
case 's': // Parametersatz speichern
if((1 <= pRxData[0]) && (pRxData[0] <= 5) && (pRxData[1] == EEPARAM_REVISION)) // check for setting to be in range
{
memcpy(&EE_Parameter, (uint8_t*)&pRxData[1], sizeof(EE_Parameter) - 1);
ParamSet_WriteToEEProm(pRxData[0]);
Umschlag180Nick = (long) EE_Parameter.WinkelUmschlagNick * 2500L;
Umschlag180Roll = (long) EE_Parameter.WinkelUmschlagRoll * 2500L;
tempchar1 = GetActiveParamSet();
}
else
{
tempchar1 = 0; // mark in response an invlid setting
}
while(!UebertragungAbgeschlossen);
SendOutData('S', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
if(!MotorenEin) Piep(tempchar1,110);
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
break;
case 'f': // auf anderen Parametersatz umschalten
if((1 <= pRxData[0]) && (pRxData[0] <= 5)) ParamSet_ReadFromEEProm(pRxData[0]);
tempchar1 = GetActiveParamSet();
while(!UebertragungAbgeschlossen);
SendOutData('F', FC_ADDRESS, 1, &tempchar1, sizeof(tempchar1));
if(!MotorenEin) Piep(tempchar1,110);
LipoDetection(0);
LIBFC_ReceiverInit(EE_Parameter.Receiver);
break;
case 'y':// serial Potis
PPM_in[13] = (signed char) pRxData[0]; PPM_in[14] = (signed char) pRxData[1]; PPM_in[15] = (signed char) pRxData[2]; PPM_in[16] = (signed char) pRxData[3];
PPM_in[17] = (signed char) pRxData[4]; PPM_in[18] = (signed char) pRxData[5]; PPM_in[19] = (signed char) pRxData[6]; PPM_in[20] = (signed char) pRxData[7];
PPM_in[21] = (signed char) pRxData[8]; PPM_in[22] = (signed char) pRxData[9]; PPM_in[23] = (signed char) pRxData[10]; PPM_in[24] = (signed char) pRxData[11];
break;
 
case 'u': // request BL parameter
Debug("Reading BL %d", pRxData[0]);
// try to read BL configuration
tempchar2 = I2C_ReadBLConfig(pRxData[0]);
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
else tempchar1 = 0;
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
SendOutData('U', FC_ADDRESS, 4, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2), &pRxData[0], 1, &BLConfig, sizeof(BLConfig_t));
break;
 
case 'w': // write BL parameter
Debug("Writing BL %d", pRxData[0]);
if(RxDataLen >= 1+sizeof(BLConfig_t))
{
memcpy(&BLConfig, (uint8_t*)(&pRxData[1]), sizeof(BLConfig_t));
tempchar2 = I2C_WriteBLConfig(pRxData[0]);
if(tempchar2 == BLCONFIG_SUCCESS) tempchar1 = 1;
else tempchar1 = 0; // indicate error
while(!UebertragungAbgeschlossen); // wait for previous frame to be sent
SendOutData('W', FC_ADDRESS,2, &tempchar1, sizeof(tempchar1), &tempchar2, sizeof(tempchar2));
}
break;
 
} // case FC_ADDRESS:
 
default: // any Slave Address
 
switch(RxdBuffer[2])
{
// 't' comand placed here only for compatibility to BL
case 't':// Motortest
if(AnzahlEmpfangsBytes >= sizeof(MotorTest)) memcpy(&MotorTest[0], (unsigned char *)pRxData, sizeof(MotorTest));
else memcpy(&MotorTest[0], (unsigned char *)pRxData, 4);
while(!UebertragungAbgeschlossen);
SendOutData('T', MeineSlaveAdresse, 0);
PC_MotortestActive = 250;
PcZugriff = 255;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
// 'K' comand placed here only for compatibility to old MK3MAG software, that does not send the right Slave Address
case 'K':// Kompasswert
memcpy((unsigned char *)&KompassValue , (unsigned char *)pRxData, sizeof(KompassValue));
KompassRichtung = ((540 + KompassValue - KompassStartwert) % 360) - 180;
break;
case 'a':// Texte der Analogwerte
DebugTextAnforderung = pRxData[0];
if (DebugTextAnforderung > 31) DebugTextAnforderung = 31;
PcZugriff = 255;
break;
case 'b':
memcpy((unsigned char *)&ExternControl, (unsigned char *)pRxData, sizeof(ExternControl));
ConfirmFrame = ExternControl.Frame;
PcZugriff = 255;
break;
case 'c': // Poll the 3D-Data
if(!Intervall3D) { if(pRxData[0]) Timer3D = SetDelay(pRxData[0] * 10);}
Intervall3D = pRxData[0] * 10;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
case 'd': // Poll the debug data
PcZugriff = 255;
DebugDataIntervall = (unsigned int)pRxData[0] * 10;
if(DebugDataIntervall > 0) DebugDataAnforderung = 1;
AboTimeOut = SetDelay(ABO_TIMEOUT);
break;
 
case 'h':// x-1 Displayzeilen
PcZugriff = 255;
if((pRxData[0] & 0x80) == 0x00) // old format
{
DisplayLine = 2;
Display_Interval = 0;
}
else // new format
{
RemoteKeys |= ~pRxData[0];
Display_Interval = (unsigned int)pRxData[1] * 10;
DisplayLine = 4;
AboTimeOut = SetDelay(ABO_TIMEOUT);
}
DebugDisplayAnforderung = 1;
break;
 
case 'l':// x-1 Displayzeilen
PcZugriff = 255;
MenuePunkt = pRxData[0];
DebugDisplayAnforderung1 = 1;
break;
case 'v': // Version-Anforderung und Ausbaustufe
GetVersionAnforderung = 1;
break;
 
case 'g'://
GetExternalControl = 1;
break;
 
default:
//unsupported command received
break;
}
break; // default:
}
NeuerDatensatzEmpfangen = 0;
pRxData = 0;
RxDataLen = 0;
}
 
//############################################################################
//Routine für die Serielle Ausgabe
void uart_putchar (char c)
//############################################################################
{
//Warten solange bis Zeichen gesendet wurde
loop_until_bit_is_set(UCSR0A, UDRE0);
//Ausgabe des Zeichens
UDR0 = c;
}
 
 
//############################################################################
//INstallation der Seriellen Schnittstelle
void UART_Init (void)
//############################################################################
{
unsigned int ubrr = (unsigned int) ((unsigned long) F_CPU/(8 * USART0_BAUD) - 1);
 
//Enable TXEN im Register UCR TX-Data Enable & RX Enable
UCSR0B = (1 << TXEN0) | (1 << RXEN0);
// UART Double Speed (U2X)
UCSR0A |= (1 << U2X0);
// RX-Interrupt Freigabe
UCSR0B |= (1 << RXCIE0);
// TX-Interrupt Freigabe
UCSR0B |= (1 << TXCIE0);
// USART0 Baud Rate Register
// set clock divider
UBRR0H = (uint8_t)(ubrr >> 8);
UBRR0L = (uint8_t)ubrr;
 
Debug_Timer = SetDelay(DebugDataIntervall);
Kompass_Timer = SetDelay(220);
 
VersionInfo.SWMajor = VERSION_MAJOR;
VersionInfo.SWMinor = VERSION_MINOR;
VersionInfo.SWPatch = VERSION_PATCH;
VersionInfo.ProtoMajor = VERSION_SERIAL_MAJOR;
VersionInfo.ProtoMinor = VERSION_SERIAL_MINOR;
 
pRxData = 0;
RxDataLen = 0;
}
 
//---------------------------------------------------------------------------------------------
void DatenUebertragung(void)
{
if(!UebertragungAbgeschlossen) return;
 
if(CheckDelay(AboTimeOut))
{
Display_Interval = 0;
DebugDataIntervall = 0;
Intervall3D = 0;
}
 
if(((Display_Interval>0 && CheckDelay(Display_Timer)) || DebugDisplayAnforderung) && UebertragungAbgeschlossen)
{
if(DisplayLine > 3)// new format
{
Menu();
SendOutData('H', FC_ADDRESS, 1, (uint8_t *)DisplayBuff, 80);
}
else // old format
{
LCD_printfxy(0,0,"!!! INCOMPATIBLE !!!");
SendOutData('H', FC_ADDRESS, 2, &DisplayLine, sizeof(DisplayLine), (uint8_t *)DisplayBuff, 20);
if(DisplayLine++ > 3) DisplayLine = 0;
}
Display_Timer = SetDelay(Display_Interval);
DebugDisplayAnforderung = 0;
}
if(DebugDisplayAnforderung1 && UebertragungAbgeschlossen)
{
Menu();
SendOutData('L', FC_ADDRESS, 3, &MenuePunkt, sizeof(MenuePunkt), &MaxMenue, sizeof(MaxMenue), DisplayBuff, sizeof(DisplayBuff));
DebugDisplayAnforderung1 = 0;
}
if(GetVersionAnforderung && UebertragungAbgeschlossen)
{
SendOutData('V', FC_ADDRESS, 1, (unsigned char *) &VersionInfo, sizeof(VersionInfo));
GetVersionAnforderung = 0;
Debug_OK("Version gesendet");
}
 
if(GetExternalControl && UebertragungAbgeschlossen) // Bei Get werden die vom PC einstellbaren Werte vom PC zurückgelesen
{
SendOutData('G',MeineSlaveAdresse, 1, (unsigned char *) &ExternControl, sizeof(ExternControl));
GetExternalControl = 0;
}
if((CheckDelay(Kompass_Timer)) && UebertragungAbgeschlossen)
{
WinkelOut.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
WinkelOut.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
WinkelOut.UserParameter[0] = Parameter_UserParam1;
WinkelOut.UserParameter[1] = Parameter_UserParam2;
SendOutData('k', MK3MAG_ADDRESS, 1, (unsigned char *) &WinkelOut,sizeof(WinkelOut));
if(WinkelOut.CalcState > 4) WinkelOut.CalcState = 6; // wird dann in SPI auf Null gesetzt
Kompass_Timer = SetDelay(99);
}
if(((DebugDataIntervall>0 && CheckDelay(Debug_Timer)) || DebugDataAnforderung) && UebertragungAbgeschlossen)
{
CopyDebugValues();
SendOutData('D', FC_ADDRESS, 1, (unsigned char *) &DebugOut,sizeof(DebugOut));
DebugDataAnforderung = 0;
if(DebugDataIntervall>0) Debug_Timer = SetDelay(DebugDataIntervall);
}
if(Intervall3D > 0 && CheckDelay(Timer3D) && UebertragungAbgeschlossen)
{
Data3D.Winkel[0] = (int) (IntegralNick / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
Data3D.Winkel[1] = (int) (IntegralRoll / (EE_Parameter.GyroAccFaktor * 4)); // etwa in 0.1 Grad
Data3D.Winkel[2] = (int) ((10 * ErsatzKompass) / GIER_GRAD_FAKTOR);
Data3D.Centroid[0] = SummeNick >> 9;
Data3D.Centroid[1] = SummeRoll >> 9;
Data3D.Centroid[2] = Mess_Integral_Gier >> 9;
SendOutData('C', FC_ADDRESS, 1, (unsigned char *) &Data3D,sizeof(Data3D));
Timer3D = SetDelay(Intervall3D);
}
if(DebugTextAnforderung != 255) // Texte für die Analogdaten
{
unsigned char label[16]; // local sram buffer
memcpy_P(label, ANALOG_TEXT[DebugTextAnforderung], 16); // read lable from flash to sra
SendOutData('A', FC_ADDRESS, 2, (unsigned char *)&DebugTextAnforderung, sizeof(DebugTextAnforderung),label, 16);
DebugTextAnforderung = 255;
}
if(ConfirmFrame && UebertragungAbgeschlossen) // Datensatz bestätigen
{
SendOutData('B', FC_ADDRESS, 1, (uint8_t*)&ConfirmFrame, sizeof(ConfirmFrame));
ConfirmFrame = 0;
}
 
if(GetPPMChannelAnforderung && UebertragungAbgeschlossen)
{
SendOutData('P', FC_ADDRESS, 1, (unsigned char *) &PPM_in, sizeof(PPM_in));
GetPPMChannelAnforderung = 0;
}
 
#ifdef DEBUG // only include functions if DEBUG is defined
if(SendDebugOutput && UebertragungAbgeschlossen)
{
SendOutData('0', FC_ADDRESS, 1, (unsigned char *) &tDebug, sizeof(tDebug));
SendDebugOutput = 0;
}
#endif
 
}
 
 
/branches/V0.80d-Arthur-P/uart.d
0,0 → 1,3
uart.o uart.d : uart.c main.h old_macros.h printf_P.h timer0.h uart.h analog.h \
twimaster.h menu.h rc.h fc.h gps.h spi.h led.h spektrum.h capacity.h \
eeprom.h libfc.h debug.h
/branches/V0.80d-Arthur-P/uart.h
0,0 → 1,85
#ifndef _UART_H
#define _UART_H
 
#define printf_P(format, args...) _printf_P(&uart_putchar, format , ## args)
#define printf(format, args...) _printf_P(&uart_putchar, PSTR(format) , ## args)
 
void BearbeiteRxDaten(void);
 
extern unsigned char DebugGetAnforderung;
 
extern unsigned volatile char UebertragungAbgeschlossen;
extern unsigned volatile char PC_DebugTimeout;
extern unsigned volatile char NeueKoordinateEmpfangen;
extern unsigned volatile char PC_MotortestActive;
extern unsigned char MeineSlaveAdresse;
extern unsigned char PcZugriff;
extern unsigned char RemotePollDisplayLine;
extern int Debug_Timer,Kompass_Timer;
extern void UART_Init (void);
extern void uart_putchar (char c);
extern void boot_program_page (uint32_t page, uint8_t *buf);
extern void DatenUebertragung(void);
extern void Uart1Init(void);
extern void BearbeiteRxDaten(void);
extern unsigned char MotorTest[16];
struct str_DebugOut
{
unsigned char Status[2];
signed int Analog[32]; // Debugwerte
};
 
extern struct str_DebugOut DebugOut;
 
struct str_WinkelOut
{
signed int Winkel[2];
unsigned char UserParameter[2];
unsigned char CalcState;
unsigned char Orientation;
};
extern struct str_WinkelOut WinkelOut;
 
struct str_Data3D
{
signed int Winkel[3]; // nick, roll, compass in 0,1°
signed char Centroid[3];
signed char reserve[5];
};
extern struct str_Data3D Data3D;
 
struct str_ExternControl
{
unsigned char Digital[2];
unsigned char RemoteTasten;
signed char Nick;
signed char Roll;
signed char Gier;
unsigned char Gas;
signed char Hight;
unsigned char free;
unsigned char Frame;
unsigned char Config;
};
extern struct str_ExternControl ExternControl;
 
struct str_VersionInfo
{
unsigned char SWMajor;
unsigned char SWMinor;
unsigned char ProtoMajor;
unsigned char ProtoMinor;
unsigned char SWPatch;
unsigned char HardwareError[5];
};
 
extern struct str_VersionInfo VersionInfo;
 
//#define USART0_BAUD 9600
//#define USART0_BAUD 14400
//#define USART0_BAUD 28800
//#define USART0_BAUD 38400
#define USART0_BAUD 57600
 
 
#endif //_UART_H
/branches/V0.80d-Arthur-P/uart.lst
0,0 → 1,2515
1 .file "uart.c"
2 .arch atmega644p
3 __SREG__ = 0x3f
4 __SP_H__ = 0x3e
5 __SP_L__ = 0x3d
6 __tmp_reg__ = 0
7 __zero_reg__ = 1
8 .global __do_copy_data
9 .global __do_clear_bss
10 .global ANALOG_TEXT
11 .section .progmem.data,"a",@progbits
14 ANALOG_TEXT:
15 0000 416E 676C .ascii "AngleNick "
15 654E 6963
15 6B20 2020
15 2020 2020
16 0010 416E 676C .ascii "AngleRoll "
16 6552 6F6C
16 6C20 2020
16 2020 2020
17 0020 4163 634E .ascii "AccNick "
17 6963 6B20
17 2020 2020
17 2020 2020
18 0030 4163 6352 .ascii "AccRoll "
18 6F6C 6C20
18 2020 2020
18 2020 2020
19 0040 5961 7747 .ascii "YawGyro "
19 7972 6F20
19 2020 2020
19 2020 2020
20 0050 4865 6967 .ascii "Height Value "
20 6874 2056
20 616C 7565
20 2020 2020
21 0060 4163 635A .ascii "AccZ "
21 2020 2020
21 2020 2020
21 2020 2020
22 0070 4761 7320 .ascii "Gas "
22 2020 2020
22 2020 2020
22 2020 2020
23 0080 436F 6D70 .ascii "Compass Value "
23 6173 7320
23 5661 6C75
23 6520 2020
24 0090 566F 6C74 .ascii "Voltage [0.1V] "
24 6167 6520
24 5B30 2E31
24 565D 2020
25 00a0 5265 6365 .ascii "Receiver Level "
25 6976 6572
25 204C 6576
25 656C 2020
26 00b0 4779 726F .ascii "Gyro Compass "
26 2043 6F6D
26 7061 7373
26 2020 2020
27 00c0 4D6F 746F .ascii "Motor 1 "
27 7220 3120
27 2020 2020
27 2020 2020
28 00d0 4D6F 746F .ascii "Motor 2 "
28 7220 3220
28 2020 2020
28 2020 2020
29 00e0 4D6F 746F .ascii "Motor 3 "
29 7220 3320
29 2020 2020
29 2020 2020
30 00f0 4D6F 746F .ascii "Motor 4 "
30 7220 3420
30 2020 2020
30 2020 2020
31 0100 3136 2020 .ascii "16 "
31 2020 2020
31 2020 2020
31 2020 2020
32 0110 3137 2020 .ascii "17 "
32 2020 2020
32 2020 2020
32 2020 2020
33 0120 3138 2020 .ascii "18 "
33 2020 2020
33 2020 2020
33 2020 2020
34 0130 3139 2020 .ascii "19 "
34 2020 2020
34 2020 2020
34 2020 2020
35 0140 5365 7276 .ascii "Servo "
35 6F20 2020
35 2020 2020
35 2020 2020
36 0150 486F 7665 .ascii "Hovergas "
36 7267 6173
36 2020 2020
36 2020 2020
37 0160 4375 7272 .ascii "Current [0.1A] "
37 656E 7420
37 5B30 2E31
37 415D 2020
38 0170 4361 7061 .ascii "Capacity [mAh] "
38 6369 7479
38 205B 6D41
38 685D 2020
39 0180 3234 2020 .ascii "24 "
39 2020 2020
39 2020 2020
39 2020 2020
40 0190 3235 2020 .ascii "25 "
40 2020 2020
40 2020 2020
40 2020 2020
41 01a0 3236 2020 .ascii "26 "
41 2020 2020
41 2020 2020
41 2020 2020
42 01b0 3237 2020 .ascii "27 "
42 2020 2020
42 2020 2020
42 2020 2020
43 01c0 4932 432D .ascii "I2C-Error "
43 4572 726F
43 7220 2020
43 2020 2020
44 01d0 424C 204C .ascii "BL Limit "
44 696D 6974
44 2020 2020
44 2020 2020
45 01e0 4750 535F .ascii "GPS_Nick "
45 4E69 636B
45 2020 2020
45 2020 2020
46 01f0 4750 535F .ascii "GPS_Roll "
46 526F 6C6C
46 2020 2020
46 2020 2020
47 .global AboTimeOut
48 .global AboTimeOut
49 .section .bss
52 AboTimeOut:
53 0000 0000 .skip 2,0
54 .global Display_Interval
55 .global Display_Interval
58 Display_Interval:
59 0002 0000 .skip 2,0
60 .global Intervall3D
61 .global Intervall3D
64 Intervall3D:
65 0004 0000 .skip 2,0
66 .global DebugDataIntervall
67 .global DebugDataIntervall
70 DebugDataIntervall:
71 0006 0000 .skip 2,0
72 .global MeineSlaveAdresse
73 .data
76 MeineSlaveAdresse:
77 0000 01 .byte 1
78 .global PcZugriff
81 PcZugriff:
82 0001 64 .byte 100
83 .global DebugTextAnforderung
86 DebugTextAnforderung:
87 0002 FF .byte -1
88 .global PC_MotortestActive
89 .global PC_MotortestActive
90 .section .bss
93 PC_MotortestActive:
94 0008 00 .skip 1,0
95 .global PC_DebugTimeout
96 .global PC_DebugTimeout
99 PC_DebugTimeout:
100 0009 00 .skip 1,0
101 .global RxDataLen
102 .global RxDataLen
105 RxDataLen:
106 000a 00 .skip 1,0
107 .global pRxData
108 .global pRxData
111 pRxData:
112 000b 0000 .skip 2,0
113 .global AnzahlEmpfangsBytes
114 .global AnzahlEmpfangsBytes
117 AnzahlEmpfangsBytes:
118 000d 00 .skip 1,0
119 .global CntCrcError
120 .global CntCrcError
123 CntCrcError:
124 000e 00 .skip 1,0
125 .global UebertragungAbgeschlossen
126 .data
129 UebertragungAbgeschlossen:
130 0003 01 .byte 1
131 .global NeueKoordinateEmpfangen
132 .global NeueKoordinateEmpfangen
133 .section .bss
136 NeueKoordinateEmpfangen:
137 000f 00 .skip 1,0
138 .global NeuerDatensatzEmpfangen
139 .global NeuerDatensatzEmpfangen
142 NeuerDatensatzEmpfangen:
143 0010 00 .skip 1,0
144 .global SioTmp
145 .global SioTmp
148 SioTmp:
149 0011 00 .skip 1,0
150 .global DisplayLine
151 .global DisplayLine
154 DisplayLine:
155 0012 00 .skip 1,0
156 .global GetPPMChannelAnforderung
157 .global GetPPMChannelAnforderung
160 GetPPMChannelAnforderung:
161 0013 00 .skip 1,0
162 .global GetVersionAnforderung
163 .global GetVersionAnforderung
166 GetVersionAnforderung:
167 0014 00 .skip 1,0
168 .global DebugDataAnforderung
169 .global DebugDataAnforderung
172 DebugDataAnforderung:
173 0015 00 .skip 1,0
174 .global DebugDisplayAnforderung
175 .global DebugDisplayAnforderung
178 DebugDisplayAnforderung:
179 0016 00 .skip 1,0
180 .global DebugDisplayAnforderung1
181 .global DebugDisplayAnforderung1
184 DebugDisplayAnforderung1:
185 0017 00 .skip 1,0
186 .global GetExternalControl
187 .global GetExternalControl
190 GetExternalControl:
191 0018 00 .skip 1,0
192 .lcomm ptr.6,2
193 .text
194 .global __vector_22
196 __vector_22:
197 /* prologue: frame size=0 */
198 0000 1F92 push __zero_reg__
199 0002 0F92 push __tmp_reg__
200 0004 0FB6 in __tmp_reg__,__SREG__
201 0006 0F92 push __tmp_reg__
202 0008 1124 clr __zero_reg__
203 000a 8F93 push r24
204 000c 9F93 push r25
205 000e EF93 push r30
206 0010 FF93 push r31
207 /* prologue end (size=9) */
208 0012 8091 0000 lds r24,UebertragungAbgeschlossen
209 0016 8823 tst r24
210 0018 E1F4 brne .L2
211 001a 8091 0000 lds r24,ptr.6
212 001e 9091 0000 lds r25,(ptr.6)+1
213 0022 0196 adiw r24,1
214 0024 9093 0000 sts (ptr.6)+1,r25
215 0028 8093 0000 sts ptr.6,r24
216 002c FC01 movw r30,r24
217 002e E050 subi r30,lo8(-(TxdBuffer))
218 0030 F040 sbci r31,hi8(-(TxdBuffer))
219 0032 E081 ld r30,Z
220 0034 ED30 cpi r30,lo8(13)
221 0036 19F0 breq .L4
222 0038 803A cpi r24,160
223 003a 9105 cpc r25,__zero_reg__
224 003c 39F4 brne .L3
225 .L4:
226 003e 1092 0000 sts (ptr.6)+1,__zero_reg__
227 0042 1092 0000 sts ptr.6,__zero_reg__
228 0046 81E0 ldi r24,lo8(1)
229 0048 8093 0000 sts UebertragungAbgeschlossen,r24
230 .L3:
231 004c E093 C600 sts 198,r30
232 0050 04C0 rjmp .L1
233 .L2:
234 0052 1092 0000 sts (ptr.6)+1,__zero_reg__
235 0056 1092 0000 sts ptr.6,__zero_reg__
236 .L1:
237 /* epilogue: frame size=0 */
238 005a FF91 pop r31
239 005c EF91 pop r30
240 005e 9F91 pop r25
241 0060 8F91 pop r24
242 0062 0F90 pop __tmp_reg__
243 0064 0FBE out __SREG__,__tmp_reg__
244 0066 0F90 pop __tmp_reg__
245 0068 1F90 pop __zero_reg__
246 006a 1895 reti
247 /* epilogue end (size=9) */
248 /* function __vector_22 size 54 (36) */
250 .lcomm crc.1,2
251 .lcomm crc1.2,1
252 .lcomm crc2.3,1
253 .lcomm buf_ptr.4,1
254 .lcomm UartState.5,1
255 .global __vector_20
257 __vector_20:
258 /* prologue: frame size=0 */
259 006c 1F92 push __zero_reg__
260 006e 0F92 push __tmp_reg__
261 0070 0FB6 in __tmp_reg__,__SREG__
262 0072 0F92 push __tmp_reg__
263 0074 1124 clr __zero_reg__
264 0076 2F93 push r18
265 0078 3F93 push r19
266 007a 4F93 push r20
267 007c 5F93 push r21
268 007e 6F93 push r22
269 0080 7F93 push r23
270 0082 8F93 push r24
271 0084 9F93 push r25
272 0086 AF93 push r26
273 0088 BF93 push r27
274 008a CF93 push r28
275 008c EF93 push r30
276 008e FF93 push r31
277 /* prologue end (size=18) */
278 0090 90E0 ldi r25,lo8(0)
279 0092 8091 C600 lds r24,198
280 0096 8093 0000 sts SioTmp,r24
281 009a 5091 0000 lds r21,buf_ptr.4
282 009e 503A cpi r21,lo8(-96)
283 00a0 10F0 brlo .L7
284 00a2 9093 0000 sts UartState.5,r25
285 .L7:
286 00a6 8091 0000 lds r24,SioTmp
287 00aa 8D30 cpi r24,lo8(13)
288 00ac 09F0 breq .+2
289 00ae 65C0 rjmp .L8
290 00b0 8091 0000 lds r24,UartState.5
291 00b4 8230 cpi r24,lo8(2)
292 00b6 09F0 breq .+2
293 00b8 60C0 rjmp .L8
294 00ba 9093 0000 sts UartState.5,r25
295 00be 852F mov r24,r21
296 00c0 9927 clr r25
297 00c2 8050 subi r24,lo8(-(RxdBuffer))
298 00c4 9040 sbci r25,hi8(-(RxdBuffer))
299 00c6 FC01 movw r30,r24
300 00c8 3297 sbiw r30,2
301 00ca 4081 ld r20,Z
302 00cc 2091 0000 lds r18,crc.1
303 00d0 3091 0000 lds r19,(crc.1)+1
304 00d4 241B sub r18,r20
305 00d6 3109 sbc r19,__zero_reg__
306 00d8 DC01 movw r26,r24
307 00da 1197 sbiw r26,1
308 00dc 8C91 ld r24,X
309 00de 281B sub r18,r24
310 00e0 3109 sbc r19,__zero_reg__
311 00e2 C901 movw r24,r18
312 00e4 9F70 andi r25,hi8(4095)
313 00e6 9093 0000 sts (crc.1)+1,r25
314 00ea 8093 0000 sts crc.1,r24
315 00ee 46E0 ldi r20,6
316 00f0 9695 1: lsr r25
317 00f2 8795 ror r24
318 00f4 4A95 dec r20
319 00f6 E1F7 brne 1b
320 00f8 982F mov r25,r24
321 00fa 935C subi r25,lo8(-(61))
322 00fc 9093 0000 sts crc1.2,r25
323 0100 2F73 andi r18,lo8(63)
324 0102 3070 andi r19,hi8(63)
325 0104 235C subi r18,lo8(-(61))
326 0106 2093 0000 sts crc2.3,r18
327 010a 8081 ld r24,Z
328 010c 9817 cp r25,r24
329 010e 29F4 brne .L9
330 0110 8C91 ld r24,X
331 0112 2817 cp r18,r24
332 0114 11F4 brne .L9
333 0116 91E0 ldi r25,lo8(1)
334 0118 06C0 rjmp .L10
335 .L9:
336 011a 90E0 ldi r25,lo8(0)
337 011c 8091 0000 lds r24,CntCrcError
338 0120 8F5F subi r24,lo8(-(1))
339 0122 8093 0000 sts CntCrcError,r24
340 .L10:
341 0126 C091 0000 lds r28,NeuerDatensatzEmpfangen
342 012a CC23 tst r28
343 012c 09F0 breq .+2
344 012e 74C0 rjmp .L6
345 0130 9923 tst r25
346 0132 09F4 brne .+2
347 0134 71C0 rjmp .L6
348 0136 81E0 ldi r24,lo8(1)
349 0138 8093 0000 sts NeuerDatensatzEmpfangen,r24
350 013c 580F add r21,r24
351 013e 5093 0000 sts AnzahlEmpfangsBytes,r21
352 0142 5150 subi r21,lo8(-(-1))
353 0144 E52F mov r30,r21
354 0146 FF27 clr r31
355 0148 E050 subi r30,lo8(-(RxdBuffer))
356 014a F040 sbci r31,hi8(-(RxdBuffer))
357 014c 8DE0 ldi r24,lo8(13)
358 014e 8083 st Z,r24
359 0150 8091 0000 lds r24,RxdBuffer+2
360 0154 8235 cpi r24,lo8(82)
361 0156 09F0 breq .+2
362 0158 5FC0 rjmp .L6
363 015a 0E94 0000 call LcdClear
364 015e 88E1 ldi r24,lo8(24)
365 0160 90E0 ldi r25,hi8(24)
366 0162 2CE0 ldi r18,lo8(12)
367 /* #APP */
368 0164 0FB6 in __tmp_reg__,__SREG__
369 0166 F894 cli
370 0168 A895 wdr
371 016a 8093 6000 sts 96,r24
372 016e 0FBE out __SREG__,__tmp_reg__
373 0170 2093 6000 sts 96,r18
374 /* #NOAPP */
375 0174 C093 0000 sts ServoActive,r28
376 0178 4FC0 rjmp .L6
377 .L8:
378 017a 2091 0000 lds r18,UartState.5
379 017e 822F mov r24,r18
380 0180 9927 clr r25
381 0182 8130 cpi r24,1
382 0184 9105 cpc r25,__zero_reg__
383 0186 F9F0 breq .L17
384 0188 8230 cpi r24,2
385 018a 9105 cpc r25,__zero_reg__
386 018c 1CF4 brge .L22
387 018e 892B or r24,r25
388 0190 21F0 breq .L15
389 0192 40C0 rjmp .L21
390 .L22:
391 0194 0297 sbiw r24,2
392 0196 11F1 breq .L18
393 0198 3DC0 rjmp .L21
394 .L15:
395 019a 8091 0000 lds r24,SioTmp
396 019e 8332 cpi r24,lo8(35)
397 01a0 39F4 brne .L16
398 01a2 8091 0000 lds r24,NeuerDatensatzEmpfangen
399 01a6 8823 tst r24
400 01a8 19F4 brne .L16
401 01aa 81E0 ldi r24,lo8(1)
402 01ac 8093 0000 sts UartState.5,r24
403 .L16:
404 01b0 8091 0000 lds r24,SioTmp
405 01b4 8093 0000 sts RxdBuffer,r24
406 01b8 81E0 ldi r24,lo8(1)
407 01ba 8093 0000 sts buf_ptr.4,r24
408 01be 8091 0000 lds r24,SioTmp
409 01c2 9927 clr r25
410 01c4 22C0 rjmp .L23
411 .L17:
412 01c6 2F5F subi r18,lo8(-(1))
413 01c8 2093 0000 sts UartState.5,r18
414 01cc E52F mov r30,r21
415 01ce FF27 clr r31
416 01d0 E050 subi r30,lo8(-(RxdBuffer))
417 01d2 F040 sbci r31,hi8(-(RxdBuffer))
418 01d4 8091 0000 lds r24,SioTmp
419 01d8 8083 st Z,r24
420 01da 09C0 rjmp .L24
421 .L18:
422 01dc E52F mov r30,r21
423 01de FF27 clr r31
424 01e0 E050 subi r30,lo8(-(RxdBuffer))
425 01e2 F040 sbci r31,hi8(-(RxdBuffer))
426 01e4 8091 0000 lds r24,SioTmp
427 01e8 8083 st Z,r24
428 01ea 503A cpi r21,lo8(-96)
429 01ec 20F4 brsh .L19
430 .L24:
431 01ee 5F5F subi r21,lo8(-(1))
432 01f0 5093 0000 sts buf_ptr.4,r21
433 01f4 02C0 rjmp .L20
434 .L19:
435 01f6 1092 0000 sts UartState.5,__zero_reg__
436 .L20:
437 01fa 2091 0000 lds r18,SioTmp
438 01fe 8091 0000 lds r24,crc.1
439 0202 9091 0000 lds r25,(crc.1)+1
440 0206 820F add r24,r18
441 0208 911D adc r25,__zero_reg__
442 .L23:
443 020a 9093 0000 sts (crc.1)+1,r25
444 020e 8093 0000 sts crc.1,r24
445 0212 02C0 rjmp .L6
446 .L21:
447 0214 1092 0000 sts UartState.5,__zero_reg__
448 .L6:
449 /* epilogue: frame size=0 */
450 0218 FF91 pop r31
451 021a EF91 pop r30
452 021c CF91 pop r28
453 021e BF91 pop r27
454 0220 AF91 pop r26
455 0222 9F91 pop r25
456 0224 8F91 pop r24
457 0226 7F91 pop r23
458 0228 6F91 pop r22
459 022a 5F91 pop r21
460 022c 4F91 pop r20
461 022e 3F91 pop r19
462 0230 2F91 pop r18
463 0232 0F90 pop __tmp_reg__
464 0234 0FBE out __SREG__,__tmp_reg__
465 0236 0F90 pop __tmp_reg__
466 0238 1F90 pop __zero_reg__
467 023a 1895 reti
468 /* epilogue end (size=18) */
469 /* function __vector_20 size 238 (202) */
471 .global AddCRC
473 AddCRC:
474 /* prologue: frame size=0 */
475 /* prologue end (size=0) */
476 023c AC01 movw r20,r24
477 023e A0E0 ldi r26,lo8(0)
478 0240 B0E0 ldi r27,hi8(0)
479 0242 9D01 movw r18,r26
480 0244 A817 cp r26,r24
481 0246 B907 cpc r27,r25
482 0248 48F4 brsh .L31
483 024a E0E0 ldi r30,lo8(TxdBuffer)
484 024c F0E0 ldi r31,hi8(TxdBuffer)
485 .L29:
486 024e 8191 ld r24,Z+
487 0250 280F add r18,r24
488 0252 311D adc r19,__zero_reg__
489 0254 1196 adiw r26,1
490 0256 A417 cp r26,r20
491 0258 B507 cpc r27,r21
492 025a C8F3 brlo .L29
493 .L31:
494 025c 3F70 andi r19,hi8(4095)
495 025e FD01 movw r30,r26
496 0260 E050 subi r30,lo8(-(TxdBuffer))
497 0262 F040 sbci r31,hi8(-(TxdBuffer))
498 0264 C901 movw r24,r18
499 0266 56E0 ldi r21,6
500 0268 9695 1: lsr r25
501 026a 8795 ror r24
502 026c 5A95 dec r21
503 026e E1F7 brne 1b
504 0270 835C subi r24,lo8(-(61))
505 0272 8083 st Z,r24
506 0274 1196 adiw r26,1
507 0276 FD01 movw r30,r26
508 0278 E050 subi r30,lo8(-(TxdBuffer))
509 027a F040 sbci r31,hi8(-(TxdBuffer))
510 027c 2F73 andi r18,lo8(63)
511 027e 3070 andi r19,hi8(63)
512 0280 822F mov r24,r18
513 0282 835C subi r24,lo8(-(61))
514 0284 8083 st Z,r24
515 0286 A050 subi r26,lo8(-(TxdBuffer+1))
516 0288 B040 sbci r27,hi8(-(TxdBuffer+1))
517 028a 8DE0 ldi r24,lo8(13)
518 028c 8C93 st X,r24
519 028e 1092 0000 sts UebertragungAbgeschlossen,__zero_reg__
520 0292 8091 0000 lds r24,TxdBuffer
521 0296 8093 C600 sts 198,r24
522 /* epilogue: frame size=0 */
523 029a 0895 ret
524 /* epilogue end (size=1) */
525 /* function AddCRC size 49 (48) */
527 .global SendOutData
529 SendOutData:
530 /* prologue: frame size=0 */
531 029c A0E0 ldi r26,lo8(0)
532 029e B0E0 ldi r27,hi8(0)
533 02a0 E0E0 ldi r30,pm_lo8(1f)
534 02a2 F0E0 ldi r31,pm_hi8(1f)
535 02a4 0C94 0000 jmp __prologue_saves__+18
536 1:
537 /* prologue end (size=6) */
538 02a8 2C85 ldd r18,Y+12
539 02aa 9D85 ldd r25,Y+13
540 02ac 0E85 ldd r16,Y+14
541 02ae BB24 clr r11
542 02b0 83E2 ldi r24,lo8(35)
543 02b2 8093 0000 sts TxdBuffer,r24
544 02b6 9F59 subi r25,lo8(-(97))
545 02b8 9093 0000 sts TxdBuffer+1,r25
546 02bc 2093 0000 sts TxdBuffer+2,r18
547 02c0 33E0 ldi r19,lo8(3)
548 02c2 E32E mov r14,r19
549 02c4 F12C mov r15,__zero_reg__
550 02c6 0023 tst r16
551 02c8 09F4 brne .+2
552 02ca 9EC0 rjmp .L47
553 02cc CF84 ldd r12,Y+15
554 02ce D888 ldd r13,Y+16
555 02d0 BE01 movw r22,r28
556 02d2 6D5E subi r22,lo8(-(19))
557 02d4 7F4F sbci r23,hi8(-(19))
558 02d6 A989 ldd r26,Y+17
559 02d8 BA89 ldd r27,Y+18
560 02da 0150 subi r16,lo8(-(-1))
561 .L48:
562 02dc 1097 sbiw r26,0
563 02de 09F4 brne .+2
564 02e0 93C0 rjmp .L47
565 02e2 1097 sbiw r26,0
566 02e4 B9F0 breq .L36
567 02e6 F601 movw r30,r12
568 02e8 EB0D add r30,r11
569 02ea F11D adc r31,__zero_reg__
570 02ec B394 inc r11
571 02ee 9081 ld r25,Z
572 02f0 1197 sbiw r26,1
573 02f2 91F4 brne .L38
574 02f4 0023 tst r16
575 02f6 49F1 breq .L39
576 02f8 FB01 movw r30,r22
577 02fa 6E5F subi r22,lo8(-(2))
578 02fc 7F4F sbci r23,hi8(-(2))
579 02fe DB01 movw r26,r22
580 0300 C080 ld r12,Z
581 0302 D180 ldd r13,Z+1
582 0304 6E5F subi r22,lo8(-(2))
583 0306 7F4F sbci r23,hi8(-(2))
584 0308 0D90 ld __tmp_reg__,X+
585 030a BC91 ld r27,X
586 030c A02D mov r26,__tmp_reg__
587 030e BB24 clr r11
588 0310 0150 subi r16,lo8(-(-1))
589 0312 02C0 rjmp .L38
590 .L36:
591 0314 90E0 ldi r25,lo8(0)
592 0316 19C0 rjmp .L39
593 .L38:
594 0318 1097 sbiw r26,0
595 031a B9F0 breq .L39
596 031c F601 movw r30,r12
597 031e EB0D add r30,r11
598 0320 F11D adc r31,__zero_reg__
599 0322 B394 inc r11
600 0324 4081 ld r20,Z
601 0326 1197 sbiw r26,1
602 0328 91F4 brne .L41
603 032a 0023 tst r16
604 032c 41F1 breq .L42
605 032e FB01 movw r30,r22
606 0330 6E5F subi r22,lo8(-(2))
607 0332 7F4F sbci r23,hi8(-(2))
608 0334 DB01 movw r26,r22
609 0336 C080 ld r12,Z
610 0338 D180 ldd r13,Z+1
611 033a 6E5F subi r22,lo8(-(2))
612 033c 7F4F sbci r23,hi8(-(2))
613 033e 0D90 ld __tmp_reg__,X+
614 0340 BC91 ld r27,X
615 0342 A02D mov r26,__tmp_reg__
616 0344 BB24 clr r11
617 0346 0150 subi r16,lo8(-(-1))
618 0348 02C0 rjmp .L41
619 .L39:
620 034a 40E0 ldi r20,lo8(0)
621 034c 18C0 rjmp .L42
622 .L41:
623 034e 1097 sbiw r26,0
624 0350 B1F0 breq .L42
625 0352 F601 movw r30,r12
626 0354 EB0D add r30,r11
627 0356 F11D adc r31,__zero_reg__
628 0358 B394 inc r11
629 035a 1081 ld r17,Z
630 035c 1197 sbiw r26,1
631 035e 81F4 brne .L44
632 0360 0023 tst r16
633 0362 71F0 breq .L44
634 0364 FB01 movw r30,r22
635 0366 3296 adiw r30,2
636 0368 DB01 movw r26,r22
637 036a CD90 ld r12,X+
638 036c DC90 ld r13,X
639 036e BF01 movw r22,r30
640 0370 6E5F subi r22,lo8(-(2))
641 0372 7F4F sbci r23,hi8(-(2))
642 0374 A081 ld r26,Z
643 0376 B181 ldd r27,Z+1
644 0378 BB24 clr r11
645 037a 0150 subi r16,lo8(-(-1))
646 037c 01C0 rjmp .L44
647 .L42:
648 037e 10E0 ldi r17,lo8(0)
649 .L44:
650 0380 F701 movw r30,r14
651 0382 E050 subi r30,lo8(-(TxdBuffer))
652 0384 F040 sbci r31,hi8(-(TxdBuffer))
653 0386 892F mov r24,r25
654 0388 8695 lsr r24
655 038a 8695 lsr r24
656 038c 835C subi r24,lo8(-(61))
657 038e 8083 st Z,r24
658 0390 0894 sec
659 0392 E11C adc r14,__zero_reg__
660 0394 F11C adc r15,__zero_reg__
661 0396 F701 movw r30,r14
662 0398 E050 subi r30,lo8(-(TxdBuffer))
663 039a F040 sbci r31,hi8(-(TxdBuffer))
664 039c 892F mov r24,r25
665 039e 9927 clr r25
666 03a0 8370 andi r24,lo8(3)
667 03a2 9070 andi r25,hi8(3)
668 03a4 24E0 ldi r18,4
669 03a6 880F 1: lsl r24
670 03a8 991F rol r25
671 03aa 2A95 dec r18
672 03ac E1F7 brne 1b
673 03ae 5527 clr r21
674 03b0 9A01 movw r18,r20
675 03b2 94E0 ldi r25,4
676 03b4 3695 1: lsr r19
677 03b6 2795 ror r18
678 03b8 9A95 dec r25
679 03ba E1F7 brne 1b
680 03bc 822B or r24,r18
681 03be 835C subi r24,lo8(-(61))
682 03c0 8083 st Z,r24
683 03c2 0894 sec
684 03c4 E11C adc r14,__zero_reg__
685 03c6 F11C adc r15,__zero_reg__
686 03c8 F701 movw r30,r14
687 03ca E050 subi r30,lo8(-(TxdBuffer))
688 03cc F040 sbci r31,hi8(-(TxdBuffer))
689 03ce 4F70 andi r20,lo8(15)
690 03d0 5070 andi r21,hi8(15)
691 03d2 440F lsl r20
692 03d4 551F rol r21
693 03d6 440F lsl r20
694 03d8 551F rol r21
695 03da 812F mov r24,r17
696 03dc 9927 clr r25
697 03de 26E0 ldi r18,6
698 03e0 9695 1: lsr r25
699 03e2 8795 ror r24
700 03e4 2A95 dec r18
701 03e6 E1F7 brne 1b
702 03e8 842B or r24,r20
703 03ea 835C subi r24,lo8(-(61))
704 03ec 8083 st Z,r24
705 03ee 0894 sec
706 03f0 E11C adc r14,__zero_reg__
707 03f2 F11C adc r15,__zero_reg__
708 03f4 F701 movw r30,r14
709 03f6 E050 subi r30,lo8(-(TxdBuffer))
710 03f8 F040 sbci r31,hi8(-(TxdBuffer))
711 03fa 1F73 andi r17,lo8(63)
712 03fc 135C subi r17,lo8(-(61))
713 03fe 1083 st Z,r17
714 0400 0894 sec
715 0402 E11C adc r14,__zero_reg__
716 0404 F11C adc r15,__zero_reg__
717 0406 6ACF rjmp .L48
718 .L47:
719 0408 C701 movw r24,r14
720 040a 0E94 0000 call AddCRC
721 /* epilogue: frame size=0 */
722 040e E9E0 ldi r30,9
723 0410 0C94 0000 jmp __epilogue_restores__+18
724 /* epilogue end (size=3) */
725 /* function SendOutData size 191 (182) */
727 .global Decode64
729 Decode64:
730 /* prologue: frame size=0 */
731 /* prologue end (size=0) */
732 0414 A3E0 ldi r26,lo8(3)
733 0416 7A2F mov r23,r26
734 0418 4091 0000 lds r20,AnzahlEmpfangsBytes
735 041c 4650 subi r20,lo8(-(-6))
736 .L60:
737 041e 4423 tst r20
738 0420 09F4 brne .+2
739 0422 58C0 rjmp .L51
740 0424 E72F mov r30,r23
741 0426 FF27 clr r31
742 0428 E050 subi r30,lo8(-(RxdBuffer))
743 042a F040 sbci r31,hi8(-(RxdBuffer))
744 042c 8081 ld r24,Z
745 042e 8D53 subi r24,lo8(-(-61))
746 0430 7F5F subi r23,lo8(-(1))
747 0432 E72F mov r30,r23
748 0434 FF27 clr r31
749 0436 E050 subi r30,lo8(-(RxdBuffer))
750 0438 F040 sbci r31,hi8(-(RxdBuffer))
751 043a 2081 ld r18,Z
752 043c 2D53 subi r18,lo8(-(-61))
753 043e 7F5F subi r23,lo8(-(1))
754 0440 E72F mov r30,r23
755 0442 FF27 clr r31
756 0444 E050 subi r30,lo8(-(RxdBuffer))
757 0446 F040 sbci r31,hi8(-(RxdBuffer))
758 0448 3081 ld r19,Z
759 044a 3D53 subi r19,lo8(-(-61))
760 044c 7F5F subi r23,lo8(-(1))
761 044e E72F mov r30,r23
762 0450 FF27 clr r31
763 0452 E050 subi r30,lo8(-(RxdBuffer))
764 0454 F040 sbci r31,hi8(-(RxdBuffer))
765 0456 6081 ld r22,Z
766 0458 6D53 subi r22,lo8(-(-61))
767 045a 7F5F subi r23,lo8(-(1))
768 045c 9927 clr r25
769 045e 880F lsl r24
770 0460 991F rol r25
771 0462 880F lsl r24
772 0464 991F rol r25
773 0466 522F mov r21,r18
774 0468 5295 swap r21
775 046a 5F70 andi r21,0x0f
776 046c 582B or r21,r24
777 046e 822F mov r24,r18
778 0470 9927 clr r25
779 0472 8F70 andi r24,lo8(15)
780 0474 9070 andi r25,hi8(15)
781 0476 F4E0 ldi r31,4
782 0478 880F 1: lsl r24
783 047a 991F rol r25
784 047c FA95 dec r31
785 047e E1F7 brne 1b
786 0480 232F mov r18,r19
787 0482 2695 lsr r18
788 0484 2695 lsr r18
789 0486 282B or r18,r24
790 0488 832F mov r24,r19
791 048a 9927 clr r25
792 048c 8370 andi r24,lo8(3)
793 048e 9070 andi r25,hi8(3)
794 0490 E6E0 ldi r30,6
795 0492 880F 1: lsl r24
796 0494 991F rol r25
797 0496 EA95 dec r30
798 0498 E1F7 brne 1b
799 049a 682B or r22,r24
800 049c 4150 subi r20,lo8(-(-1))
801 049e 4F3F cpi r20,lo8(-1)
802 04a0 C9F0 breq .L51
803 04a2 EA2F mov r30,r26
804 04a4 FF27 clr r31
805 04a6 E050 subi r30,lo8(-(RxdBuffer))
806 04a8 F040 sbci r31,hi8(-(RxdBuffer))
807 04aa 5083 st Z,r21
808 04ac AF5F subi r26,lo8(-(1))
809 04ae 4150 subi r20,lo8(-(-1))
810 04b0 4F3F cpi r20,lo8(-1)
811 04b2 81F0 breq .L51
812 04b4 EA2F mov r30,r26
813 04b6 FF27 clr r31
814 04b8 E050 subi r30,lo8(-(RxdBuffer))
815 04ba F040 sbci r31,hi8(-(RxdBuffer))
816 04bc 2083 st Z,r18
817 04be AF5F subi r26,lo8(-(1))
818 04c0 4150 subi r20,lo8(-(-1))
819 04c2 4F3F cpi r20,lo8(-1)
820 04c4 39F0 breq .L51
821 04c6 EA2F mov r30,r26
822 04c8 FF27 clr r31
823 04ca E050 subi r30,lo8(-(RxdBuffer))
824 04cc F040 sbci r31,hi8(-(RxdBuffer))
825 04ce 6083 st Z,r22
826 04d0 AF5F subi r26,lo8(-(1))
827 04d2 A5CF rjmp .L60
828 .L51:
829 04d4 80E0 ldi r24,lo8(RxdBuffer+3)
830 04d6 90E0 ldi r25,hi8(RxdBuffer+3)
831 04d8 9093 0000 sts (pRxData)+1,r25
832 04dc 8093 0000 sts pRxData,r24
833 04e0 A350 subi r26,lo8(-(-3))
834 04e2 A093 0000 sts RxDataLen,r26
835 /* epilogue: frame size=0 */
836 04e6 0895 ret
837 /* epilogue end (size=1) */
838 /* function Decode64 size 106 (105) */
840 .global BearbeiteRxDaten
842 BearbeiteRxDaten:
843 /* prologue: frame size=2 */
844 04e8 A2E0 ldi r26,lo8(2)
845 04ea B0E0 ldi r27,hi8(2)
846 04ec E0E0 ldi r30,pm_lo8(1f)
847 04ee F0E0 ldi r31,pm_hi8(1f)
848 04f0 0C94 0000 jmp __prologue_saves__+30
849 1:
850 /* prologue end (size=6) */
851 04f4 8091 0000 lds r24,NeuerDatensatzEmpfangen
852 04f8 8823 tst r24
853 04fa 09F4 brne .+2
854 04fc C7C3 rjmp .L61
855 04fe 0E94 0000 call Decode64
856 0502 8091 0000 lds r24,RxdBuffer+1
857 0506 8236 cpi r24,lo8(98)
858 0508 09F0 breq .+2
859 050a 81C2 rjmp .L119
860 050c 8091 0000 lds r24,RxdBuffer+2
861 0510 9927 clr r25
862 0512 8137 cpi r24,113
863 0514 9105 cpc r25,__zero_reg__
864 0516 09F4 brne .+2
865 0518 C0C0 rjmp .L81
866 051a 8237 cpi r24,114
867 051c 9105 cpc r25,__zero_reg__
868 051e C4F4 brge .L116
869 0520 8D36 cpi r24,109
870 0522 9105 cpc r25,__zero_reg__
871 0524 09F4 brne .+2
872 0526 82C0 rjmp .L74
873 0528 8E36 cpi r24,110
874 052a 9105 cpc r25,__zero_reg__
875 052c 44F4 brge .L117
876 052e 8B34 cpi r24,75
877 0530 9105 cpc r25,__zero_reg__
878 0532 31F1 breq .L66
879 0534 8636 cpi r24,102
880 0536 9105 cpc r25,__zero_reg__
881 0538 09F4 brne .+2
882 053a 54C1 rjmp .L96
883 053c 68C2 rjmp .L119
884 .L117:
885 053e 8E36 cpi r24,110
886 0540 9105 cpc r25,__zero_reg__
887 0542 09F4 brne .+2
888 0544 5BC0 rjmp .L71
889 0546 8037 cpi r24,112
890 0548 9105 cpc r25,__zero_reg__
891 054a 09F4 brne .+2
892 054c 9FC0 rjmp .L80
893 054e 5FC2 rjmp .L119
894 .L116:
895 0550 8537 cpi r24,117
896 0552 9105 cpc r25,__zero_reg__
897 0554 09F4 brne .+2
898 0556 E2C1 rjmp .L103
899 0558 8637 cpi r24,118
900 055a 9105 cpc r25,__zero_reg__
901 055c 44F4 brge .L118
902 055e 8337 cpi r24,115
903 0560 9105 cpc r25,__zero_reg__
904 0562 09F4 brne .+2
905 0564 DCC0 rjmp .L89
906 0566 8437 cpi r24,116
907 0568 9105 cpc r25,__zero_reg__
908 056a 39F1 breq .L67
909 056c 50C2 rjmp .L119
910 .L118:
911 056e 8737 cpi r24,119
912 0570 9105 cpc r25,__zero_reg__
913 0572 09F4 brne .+2
914 0574 10C2 rjmp .L109
915 0576 8937 cpi r24,121
916 0578 9105 cpc r25,__zero_reg__
917 057a 09F4 brne .+2
918 057c 6AC1 rjmp .L102
919 057e 47C2 rjmp .L119
920 .L66:
921 0580 E091 0000 lds r30,pRxData
922 0584 F091 0000 lds r31,(pRxData)+1
923 0588 8081 ld r24,Z
924 058a 9181 ldd r25,Z+1
925 058c 9093 0000 sts (KompassValue)+1,r25
926 0590 8093 0000 sts KompassValue,r24
927 0594 2091 0000 lds r18,KompassStartwert
928 0598 3091 0000 lds r19,(KompassStartwert)+1
929 059c 821B sub r24,r18
930 059e 930B sbc r25,r19
931 05a0 845E subi r24,lo8(-(540))
932 05a2 9D4F sbci r25,hi8(-(540))
933 05a4 68E6 ldi r22,lo8(360)
934 05a6 71E0 ldi r23,hi8(360)
935 05a8 0E94 0000 call __divmodhi4
936 05ac 845B subi r24,lo8(-(-180))
937 05ae 9040 sbci r25,hi8(-(-180))
938 05b0 9093 0000 sts (KompassRichtung)+1,r25
939 05b4 8093 0000 sts KompassRichtung,r24
940 05b8 2AC2 rjmp .L119
941 .L67:
942 05ba 8091 0000 lds r24,AnzahlEmpfangsBytes
943 05be A091 0000 lds r26,pRxData
944 05c2 B091 0000 lds r27,(pRxData)+1
945 05c6 8531 cpi r24,lo8(21)
946 05c8 40F0 brlo .L68
947 05ca 80E1 ldi r24,lo8(16)
948 05cc E0E0 ldi r30,lo8(MotorTest)
949 05ce F0E0 ldi r31,hi8(MotorTest)
950 05d0 0D90 ld __tmp_reg__,X+
951 05d2 0192 st Z+,__tmp_reg__
952 05d4 8A95 dec r24
953 05d6 E1F7 brne .-8
954 05d8 0DC0 rjmp .L69
955 .L68:
956 05da 8D91 ld r24,X+
957 05dc 9D91 ld r25,X+
958 05de 0D90 ld __tmp_reg__,X+
959 05e0 BC91 ld r27,X
960 05e2 A02D mov r26,__tmp_reg__
961 05e4 8093 0000 sts MotorTest,r24
962 05e8 9093 0000 sts (MotorTest)+1,r25
963 05ec A093 0000 sts (MotorTest)+2,r26
964 05f0 B093 0000 sts (MotorTest)+3,r27
965 .L69:
966 05f4 80EF ldi r24,lo8(-16)
967 05f6 8093 0000 sts PC_MotortestActive,r24
968 05fa 4BC0 rjmp .L148
969 .L71:
970 05fc 8091 0000 lds r24,UebertragungAbgeschlossen
971 0600 8823 tst r24
972 0602 E1F3 breq .L71
973 0604 8DE4 ldi r24,lo8(77)
974 0606 90E0 ldi r25,hi8(77)
975 0608 9F93 push r25
976 060a 8F93 push r24
977 060c 80E0 ldi r24,lo8(Mixer)
978 060e 90E0 ldi r25,hi8(Mixer)
979 0610 9F93 push r25
980 0612 8F93 push r24
981 0614 81E0 ldi r24,lo8(1)
982 0616 8F93 push r24
983 0618 8F93 push r24
984 061a 8EE4 ldi r24,lo8(78)
985 061c 8F93 push r24
986 061e 0E94 0000 call SendOutData
987 0622 8DB7 in r24,__SP_L__
988 0624 9EB7 in r25,__SP_H__
989 0626 0796 adiw r24,7
990 0628 8DBF out __SP_L__,r24
991 062a F1C1 rjmp .L119
992 .L74:
993 062c A091 0000 lds r26,pRxData
994 0630 B091 0000 lds r27,(pRxData)+1
995 0634 1C91 ld r17,X
996 0636 1130 cpi r17,lo8(1)
997 0638 81F4 brne .L75
998 063a 8DE4 ldi r24,lo8(77)
999 063c E0E0 ldi r30,lo8(Mixer)
1000 063e F0E0 ldi r31,hi8(Mixer)
1001 0640 0D90 ld __tmp_reg__,X+
1002 0642 0192 st Z+,__tmp_reg__
1003 0644 8A95 dec r24
1004 0646 E1F7 brne .-8
1005 0648 0E94 0000 call MixerTable_WriteToEEProm
1006 064c 1983 std Y+1,r17
1007 064e 8091 0000 lds r24,VersionInfo+6
1008 0652 8F7E andi r24,lo8(-17)
1009 0654 8093 0000 sts VersionInfo+6,r24
1010 0658 01C0 rjmp .L77
1011 .L75:
1012 065a 1982 std Y+1,__zero_reg__
1013 .L77:
1014 065c 8091 0000 lds r24,UebertragungAbgeschlossen
1015 0660 8823 tst r24
1016 0662 E1F3 breq .L77
1017 0664 81E0 ldi r24,lo8(1)
1018 0666 90E0 ldi r25,hi8(1)
1019 0668 9F93 push r25
1020 066a 8F93 push r24
1021 066c CE01 movw r24,r28
1022 066e 0196 adiw r24,1
1023 0670 9F93 push r25
1024 0672 8F93 push r24
1025 0674 81E0 ldi r24,lo8(1)
1026 0676 8F93 push r24
1027 0678 8F93 push r24
1028 067a 8DE4 ldi r24,lo8(77)
1029 067c 8F93 push r24
1030 067e 0E94 0000 call SendOutData
1031 0682 ADB7 in r26,__SP_L__
1032 0684 BEB7 in r27,__SP_H__
1033 0686 1796 adiw r26,7
1034 0688 ADBF out __SP_L__,r26
1035 068a C1C1 rjmp .L119
1036 .L80:
1037 068c 81E0 ldi r24,lo8(1)
1038 068e 8093 0000 sts GetPPMChannelAnforderung,r24
1039 .L148:
1040 0692 8FEF ldi r24,lo8(-1)
1041 0694 8093 0000 sts PcZugriff,r24
1042 0698 BAC1 rjmp .L119
1043 .L81:
1044 069a E091 0000 lds r30,pRxData
1045 069e F091 0000 lds r31,(pRxData)+1
1046 06a2 8081 ld r24,Z
1047 06a4 8F3F cpi r24,lo8(-1)
1048 06a6 39F4 brne .L82
1049 06a8 0E94 0000 call GetActiveParamSet
1050 06ac E091 0000 lds r30,pRxData
1051 06b0 F091 0000 lds r31,(pRxData)+1
1052 06b4 8083 st Z,r24
1053 .L82:
1054 06b6 E091 0000 lds r30,pRxData
1055 06ba F091 0000 lds r31,(pRxData)+1
1056 06be 8081 ld r24,Z
1057 06c0 8823 tst r24
1058 06c2 11F4 brne .L83
1059 06c4 81E0 ldi r24,lo8(1)
1060 06c6 03C0 rjmp .L146
1061 .L83:
1062 06c8 8630 cpi r24,lo8(6)
1063 06ca 10F0 brlo .L84
1064 06cc 85E0 ldi r24,lo8(5)
1065 .L146:
1066 06ce 8083 st Z,r24
1067 .L84:
1068 06d0 E091 0000 lds r30,pRxData
1069 06d4 F091 0000 lds r31,(pRxData)+1
1070 06d8 8081 ld r24,Z
1071 06da 0E94 0000 call ParamSet_ReadFromEEProm
1072 06de E091 0000 lds r30,pRxData
1073 06e2 F091 0000 lds r31,(pRxData)+1
1074 06e6 8081 ld r24,Z
1075 06e8 8983 std Y+1,r24
1076 .L86:
1077 06ea 8091 0000 lds r24,UebertragungAbgeschlossen
1078 06ee 8823 tst r24
1079 06f0 E1F3 breq .L86
1080 06f2 80E7 ldi r24,lo8(112)
1081 06f4 90E0 ldi r25,hi8(112)
1082 06f6 9F93 push r25
1083 06f8 8F93 push r24
1084 06fa 80E0 ldi r24,lo8(EE_Parameter)
1085 06fc 90E0 ldi r25,hi8(EE_Parameter)
1086 06fe 9F93 push r25
1087 0700 8F93 push r24
1088 0702 81E0 ldi r24,lo8(1)
1089 0704 90E0 ldi r25,hi8(1)
1090 0706 9F93 push r25
1091 0708 8F93 push r24
1092 070a CE01 movw r24,r28
1093 070c 0196 adiw r24,1
1094 070e 9F93 push r25
1095 0710 8F93 push r24
1096 0712 82E0 ldi r24,lo8(2)
1097 0714 8F93 push r24
1098 0716 81E0 ldi r24,lo8(1)
1099 0718 8F93 push r24
1100 071a 81E5 ldi r24,lo8(81)
1101 071c 71C1 rjmp .L151
1102 .L89:
1103 071e 2091 0000 lds r18,pRxData
1104 0722 3091 0000 lds r19,(pRxData)+1
1105 0726 D901 movw r26,r18
1106 0728 8C91 ld r24,X
1107 072a 8150 subi r24,lo8(-(-1))
1108 072c 8530 cpi r24,lo8(5)
1109 072e 08F0 brlo .+2
1110 0730 40C0 rjmp .L90
1111 0732 F901 movw r30,r18
1112 0734 8181 ldd r24,Z+1
1113 0736 8435 cpi r24,lo8(84)
1114 0738 E1F5 brne .L90
1115 073a 2F5F subi r18,lo8(-(1))
1116 073c 3F4F sbci r19,hi8(-(1))
1117 073e 80E7 ldi r24,lo8(112)
1118 0740 E0E0 ldi r30,lo8(EE_Parameter)
1119 0742 F0E0 ldi r31,hi8(EE_Parameter)
1120 0744 D901 movw r26,r18
1121 0746 0D90 ld __tmp_reg__,X+
1122 0748 0192 st Z+,__tmp_reg__
1123 074a 8A95 dec r24
1124 074c E1F7 brne .-8
1125 074e F901 movw r30,r18
1126 0750 8291 ld r24,-Z
1127 0752 0E94 0000 call ParamSet_WriteToEEProm
1128 0756 8091 0000 lds r24,EE_Parameter+63
1129 075a 9927 clr r25
1130 075c AA27 clr r26
1131 075e BB27 clr r27
1132 0760 BC01 movw r22,r24
1133 0762 CD01 movw r24,r26
1134 0764 24EC ldi r18,lo8(2500)
1135 0766 39E0 ldi r19,hi8(2500)
1136 0768 40E0 ldi r20,hlo8(2500)
1137 076a 50E0 ldi r21,hhi8(2500)
1138 076c 0E94 0000 call __mulsi3
1139 0770 DC01 movw r26,r24
1140 0772 CB01 movw r24,r22
1141 0774 8093 0000 sts Umschlag180Nick,r24
1142 0778 9093 0000 sts (Umschlag180Nick)+1,r25
1143 077c A093 0000 sts (Umschlag180Nick)+2,r26
1144 0780 B093 0000 sts (Umschlag180Nick)+3,r27
1145 0784 8091 0000 lds r24,EE_Parameter+64
1146 0788 9927 clr r25
1147 078a AA27 clr r26
1148 078c BB27 clr r27
1149 078e BC01 movw r22,r24
1150 0790 CD01 movw r24,r26
1151 0792 0E94 0000 call __mulsi3
1152 0796 DC01 movw r26,r24
1153 0798 CB01 movw r24,r22
1154 079a 8093 0000 sts Umschlag180Roll,r24
1155 079e 9093 0000 sts (Umschlag180Roll)+1,r25
1156 07a2 A093 0000 sts (Umschlag180Roll)+2,r26
1157 07a6 B093 0000 sts (Umschlag180Roll)+3,r27
1158 07aa 0E94 0000 call GetActiveParamSet
1159 07ae 8983 std Y+1,r24
1160 07b0 01C0 rjmp .L92
1161 .L90:
1162 07b2 1982 std Y+1,__zero_reg__
1163 .L92:
1164 07b4 8091 0000 lds r24,UebertragungAbgeschlossen
1165 07b8 8823 tst r24
1166 07ba E1F3 breq .L92
1167 07bc 81E0 ldi r24,lo8(1)
1168 07be 90E0 ldi r25,hi8(1)
1169 07c0 9F93 push r25
1170 07c2 8F93 push r24
1171 07c4 CE01 movw r24,r28
1172 07c6 0196 adiw r24,1
1173 07c8 9F93 push r25
1174 07ca 8F93 push r24
1175 07cc 81E0 ldi r24,lo8(1)
1176 07ce 8F93 push r24
1177 07d0 8F93 push r24
1178 07d2 83E5 ldi r24,lo8(83)
1179 07d4 8F93 push r24
1180 07d6 0E94 0000 call SendOutData
1181 07da 8DB7 in r24,__SP_L__
1182 07dc 9EB7 in r25,__SP_H__
1183 07de 0796 adiw r24,7
1184 07e0 8DBF out __SP_L__,r24
1185 07e2 26C0 rjmp .L152
1186 .L96:
1187 07e4 E091 0000 lds r30,pRxData
1188 07e8 F091 0000 lds r31,(pRxData)+1
1189 07ec E081 ld r30,Z
1190 07ee 8E2F mov r24,r30
1191 07f0 8150 subi r24,lo8(-(-1))
1192 07f2 8530 cpi r24,lo8(5)
1193 07f4 18F4 brsh .L97
1194 07f6 8E2F mov r24,r30
1195 07f8 0E94 0000 call ParamSet_ReadFromEEProm
1196 .L97:
1197 07fc 0E94 0000 call GetActiveParamSet
1198 0800 8983 std Y+1,r24
1199 .L98:
1200 0802 8091 0000 lds r24,UebertragungAbgeschlossen
1201 0806 8823 tst r24
1202 0808 E1F3 breq .L98
1203 080a 81E0 ldi r24,lo8(1)
1204 080c 90E0 ldi r25,hi8(1)
1205 080e 9F93 push r25
1206 0810 8F93 push r24
1207 0812 CE01 movw r24,r28
1208 0814 0196 adiw r24,1
1209 0816 9F93 push r25
1210 0818 8F93 push r24
1211 081a 81E0 ldi r24,lo8(1)
1212 081c 8F93 push r24
1213 081e 8F93 push r24
1214 0820 86E4 ldi r24,lo8(70)
1215 0822 8F93 push r24
1216 0824 0E94 0000 call SendOutData
1217 0828 ADB7 in r26,__SP_L__
1218 082a BEB7 in r27,__SP_H__
1219 082c 1796 adiw r26,7
1220 082e ADBF out __SP_L__,r26
1221 .L152:
1222 0830 8091 0000 lds r24,MotorenEin
1223 0834 8823 tst r24
1224 0836 29F4 brne .L101
1225 0838 6EE6 ldi r22,lo8(110)
1226 083a 70E0 ldi r23,hi8(110)
1227 083c 8981 ldd r24,Y+1
1228 083e 0E94 0000 call Piep
1229 .L101:
1230 0842 80E0 ldi r24,lo8(0)
1231 0844 0E94 0000 call LipoDetection
1232 0848 8091 0000 lds r24,EE_Parameter+39
1233 084c 0E94 0000 call LIBFC_ReceiverInit
1234 0850 DEC0 rjmp .L119
1235 .L102:
1236 0852 E091 0000 lds r30,pRxData
1237 0856 F091 0000 lds r31,(pRxData)+1
1238 085a 8081 ld r24,Z
1239 085c 9927 clr r25
1240 085e 87FD sbrc r24,7
1241 0860 9095 com r25
1242 0862 9093 0000 sts (PPM_in+26)+1,r25
1243 0866 8093 0000 sts PPM_in+26,r24
1244 086a 8181 ldd r24,Z+1
1245 086c 9927 clr r25
1246 086e 87FD sbrc r24,7
1247 0870 9095 com r25
1248 0872 9093 0000 sts (PPM_in+28)+1,r25
1249 0876 8093 0000 sts PPM_in+28,r24
1250 087a 8281 ldd r24,Z+2
1251 087c 9927 clr r25
1252 087e 87FD sbrc r24,7
1253 0880 9095 com r25
1254 0882 9093 0000 sts (PPM_in+30)+1,r25
1255 0886 8093 0000 sts PPM_in+30,r24
1256 088a 8381 ldd r24,Z+3
1257 088c 9927 clr r25
1258 088e 87FD sbrc r24,7
1259 0890 9095 com r25
1260 0892 9093 0000 sts (PPM_in+32)+1,r25
1261 0896 8093 0000 sts PPM_in+32,r24
1262 089a 8481 ldd r24,Z+4
1263 089c 9927 clr r25
1264 089e 87FD sbrc r24,7
1265 08a0 9095 com r25
1266 08a2 9093 0000 sts (PPM_in+34)+1,r25
1267 08a6 8093 0000 sts PPM_in+34,r24
1268 08aa 8581 ldd r24,Z+5
1269 08ac 9927 clr r25
1270 08ae 87FD sbrc r24,7
1271 08b0 9095 com r25
1272 08b2 9093 0000 sts (PPM_in+36)+1,r25
1273 08b6 8093 0000 sts PPM_in+36,r24
1274 08ba 8681 ldd r24,Z+6
1275 08bc 9927 clr r25
1276 08be 87FD sbrc r24,7
1277 08c0 9095 com r25
1278 08c2 9093 0000 sts (PPM_in+38)+1,r25
1279 08c6 8093 0000 sts PPM_in+38,r24
1280 08ca 8781 ldd r24,Z+7
1281 08cc 9927 clr r25
1282 08ce 87FD sbrc r24,7
1283 08d0 9095 com r25
1284 08d2 9093 0000 sts (PPM_in+40)+1,r25
1285 08d6 8093 0000 sts PPM_in+40,r24
1286 08da 8085 ldd r24,Z+8
1287 08dc 9927 clr r25
1288 08de 87FD sbrc r24,7
1289 08e0 9095 com r25
1290 08e2 9093 0000 sts (PPM_in+42)+1,r25
1291 08e6 8093 0000 sts PPM_in+42,r24
1292 08ea 8185 ldd r24,Z+9
1293 08ec 9927 clr r25
1294 08ee 87FD sbrc r24,7
1295 08f0 9095 com r25
1296 08f2 9093 0000 sts (PPM_in+44)+1,r25
1297 08f6 8093 0000 sts PPM_in+44,r24
1298 08fa 8285 ldd r24,Z+10
1299 08fc 9927 clr r25
1300 08fe 87FD sbrc r24,7
1301 0900 9095 com r25
1302 0902 9093 0000 sts (PPM_in+46)+1,r25
1303 0906 8093 0000 sts PPM_in+46,r24
1304 090a 8385 ldd r24,Z+11
1305 090c 9927 clr r25
1306 090e 87FD sbrc r24,7
1307 0910 9095 com r25
1308 0912 9093 0000 sts (PPM_in+48)+1,r25
1309 0916 8093 0000 sts PPM_in+48,r24
1310 091a 79C0 rjmp .L119
1311 .L103:
1312 091c E091 0000 lds r30,pRxData
1313 0920 F091 0000 lds r31,(pRxData)+1
1314 0924 8081 ld r24,Z
1315 0926 0E94 0000 call I2C_ReadBLConfig
1316 092a 8A83 std Y+2,r24
1317 092c 8823 tst r24
1318 092e 19F4 brne .L104
1319 0930 81E0 ldi r24,lo8(1)
1320 0932 8983 std Y+1,r24
1321 0934 01C0 rjmp .L106
1322 .L104:
1323 0936 1982 std Y+1,__zero_reg__
1324 .L106:
1325 0938 8091 0000 lds r24,UebertragungAbgeschlossen
1326 093c 8823 tst r24
1327 093e E1F3 breq .L106
1328 0940 88E0 ldi r24,lo8(8)
1329 0942 90E0 ldi r25,hi8(8)
1330 0944 9F93 push r25
1331 0946 8F93 push r24
1332 0948 80E0 ldi r24,lo8(BLConfig)
1333 094a 90E0 ldi r25,hi8(BLConfig)
1334 094c 9F93 push r25
1335 094e 8F93 push r24
1336 0950 21E0 ldi r18,lo8(1)
1337 0952 30E0 ldi r19,hi8(1)
1338 0954 3F93 push r19
1339 0956 2F93 push r18
1340 0958 8091 0000 lds r24,pRxData
1341 095c 9091 0000 lds r25,(pRxData)+1
1342 0960 9F93 push r25
1343 0962 8F93 push r24
1344 0964 3F93 push r19
1345 0966 2F93 push r18
1346 0968 CE01 movw r24,r28
1347 096a 0296 adiw r24,2
1348 096c 9F93 push r25
1349 096e 8F93 push r24
1350 0970 3F93 push r19
1351 0972 2F93 push r18
1352 0974 CE01 movw r24,r28
1353 0976 820F add r24,r18
1354 0978 931F adc r25,r19
1355 097a 9F93 push r25
1356 097c 8F93 push r24
1357 097e 84E0 ldi r24,lo8(4)
1358 0980 8F93 push r24
1359 0982 81E0 ldi r24,lo8(1)
1360 0984 8F93 push r24
1361 0986 85E5 ldi r24,lo8(85)
1362 0988 8F93 push r24
1363 098a 0E94 0000 call SendOutData
1364 098e EDB7 in r30,__SP_L__
1365 0990 FEB7 in r31,__SP_H__
1366 0992 7396 adiw r30,19
1367 0994 3BC0 rjmp .L147
1368 .L109:
1369 0996 8091 0000 lds r24,RxDataLen
1370 099a 8930 cpi r24,lo8(9)
1371 099c C0F1 brlo .L119
1372 099e 2091 0000 lds r18,pRxData
1373 09a2 3091 0000 lds r19,(pRxData)+1
1374 09a6 2F5F subi r18,lo8(-(1))
1375 09a8 3F4F sbci r19,hi8(-(1))
1376 09aa 88E0 ldi r24,lo8(8)
1377 09ac A0E0 ldi r26,lo8(BLConfig)
1378 09ae B0E0 ldi r27,hi8(BLConfig)
1379 09b0 F901 movw r30,r18
1380 09b2 0190 ld __tmp_reg__,Z+
1381 09b4 0D92 st X+,__tmp_reg__
1382 09b6 8A95 dec r24
1383 09b8 E1F7 brne .-8
1384 09ba D901 movw r26,r18
1385 09bc 8E91 ld r24,-X
1386 09be 0E94 0000 call I2C_WriteBLConfig
1387 09c2 8A83 std Y+2,r24
1388 09c4 8823 tst r24
1389 09c6 19F4 brne .L111
1390 09c8 81E0 ldi r24,lo8(1)
1391 09ca 8983 std Y+1,r24
1392 09cc 01C0 rjmp .L113
1393 .L111:
1394 09ce 1982 std Y+1,__zero_reg__
1395 .L113:
1396 09d0 8091 0000 lds r24,UebertragungAbgeschlossen
1397 09d4 8823 tst r24
1398 09d6 E1F3 breq .L113
1399 09d8 21E0 ldi r18,lo8(1)
1400 09da 30E0 ldi r19,hi8(1)
1401 09dc 3F93 push r19
1402 09de 2F93 push r18
1403 09e0 CE01 movw r24,r28
1404 09e2 0296 adiw r24,2
1405 09e4 9F93 push r25
1406 09e6 8F93 push r24
1407 09e8 3F93 push r19
1408 09ea 2F93 push r18
1409 09ec CE01 movw r24,r28
1410 09ee 820F add r24,r18
1411 09f0 931F adc r25,r19
1412 09f2 9F93 push r25
1413 09f4 8F93 push r24
1414 09f6 82E0 ldi r24,lo8(2)
1415 09f8 8F93 push r24
1416 09fa 81E0 ldi r24,lo8(1)
1417 09fc 8F93 push r24
1418 09fe 87E5 ldi r24,lo8(87)
1419 .L151:
1420 0a00 8F93 push r24
1421 0a02 0E94 0000 call SendOutData
1422 0a06 EDB7 in r30,__SP_L__
1423 0a08 FEB7 in r31,__SP_H__
1424 0a0a 3B96 adiw r30,11
1425 .L147:
1426 0a0c EDBF out __SP_L__,r30
1427 .L119:
1428 0a0e 8091 0000 lds r24,RxdBuffer+2
1429 0a12 9927 clr r25
1430 0a14 8436 cpi r24,100
1431 0a16 9105 cpc r25,__zero_reg__
1432 0a18 09F4 brne .+2
1433 0a1a CDC0 rjmp .L134
1434 0a1c 8536 cpi r24,101
1435 0a1e 9105 cpc r25,__zero_reg__
1436 0a20 ACF4 brge .L143
1437 0a22 8136 cpi r24,97
1438 0a24 9105 cpc r25,__zero_reg__
1439 0a26 09F4 brne .+2
1440 0a28 81C0 rjmp .L128
1441 0a2a 8236 cpi r24,98
1442 0a2c 9105 cpc r25,__zero_reg__
1443 0a2e 2CF4 brge .L144
1444 0a30 8B34 cpi r24,75
1445 0a32 9105 cpc r25,__zero_reg__
1446 0a34 09F4 brne .+2
1447 0a36 5DC0 rjmp .L127
1448 0a38 21C1 rjmp .L63
1449 .L144:
1450 0a3a 8236 cpi r24,98
1451 0a3c 9105 cpc r25,__zero_reg__
1452 0a3e 09F4 brne .+2
1453 0a40 82C0 rjmp .L130
1454 0a42 8336 cpi r24,99
1455 0a44 9105 cpc r25,__zero_reg__
1456 0a46 09F4 brne .+2
1457 0a48 91C0 rjmp .L131
1458 0a4a 18C1 rjmp .L63
1459 .L143:
1460 0a4c 8C36 cpi r24,108
1461 0a4e 9105 cpc r25,__zero_reg__
1462 0a50 09F4 brne .+2
1463 0a52 FFC0 rjmp .L139
1464 0a54 8D36 cpi r24,109
1465 0a56 9105 cpc r25,__zero_reg__
1466 0a58 4CF4 brge .L145
1467 0a5a 8736 cpi r24,103
1468 0a5c 9105 cpc r25,__zero_reg__
1469 0a5e 09F4 brne .+2
1470 0a60 0AC1 rjmp .L141
1471 0a62 8836 cpi r24,104
1472 0a64 9105 cpc r25,__zero_reg__
1473 0a66 09F4 brne .+2
1474 0a68 C4C0 rjmp .L136
1475 0a6a 08C1 rjmp .L63
1476 .L145:
1477 0a6c 8437 cpi r24,116
1478 0a6e 9105 cpc r25,__zero_reg__
1479 0a70 29F0 breq .L121
1480 0a72 8637 cpi r24,118
1481 0a74 9105 cpc r25,__zero_reg__
1482 0a76 09F4 brne .+2
1483 0a78 FAC0 rjmp .L140
1484 0a7a 00C1 rjmp .L63
1485 .L121:
1486 0a7c 8091 0000 lds r24,AnzahlEmpfangsBytes
1487 0a80 A091 0000 lds r26,pRxData
1488 0a84 B091 0000 lds r27,(pRxData)+1
1489 0a88 8031 cpi r24,lo8(16)
1490 0a8a 40F0 brlo .L122
1491 0a8c 80E1 ldi r24,lo8(16)
1492 0a8e E0E0 ldi r30,lo8(MotorTest)
1493 0a90 F0E0 ldi r31,hi8(MotorTest)
1494 0a92 0D90 ld __tmp_reg__,X+
1495 0a94 0192 st Z+,__tmp_reg__
1496 0a96 8A95 dec r24
1497 0a98 E1F7 brne .-8
1498 0a9a 0DC0 rjmp .L124
1499 .L122:
1500 0a9c 8D91 ld r24,X+
1501 0a9e 9D91 ld r25,X+
1502 0aa0 0D90 ld __tmp_reg__,X+
1503 0aa2 BC91 ld r27,X
1504 0aa4 A02D mov r26,__tmp_reg__
1505 0aa6 8093 0000 sts MotorTest,r24
1506 0aaa 9093 0000 sts (MotorTest)+1,r25
1507 0aae A093 0000 sts (MotorTest)+2,r26
1508 0ab2 B093 0000 sts (MotorTest)+3,r27
1509 .L124:
1510 0ab6 8091 0000 lds r24,UebertragungAbgeschlossen
1511 0aba 8823 tst r24
1512 0abc E1F3 breq .L124
1513 0abe 1F92 push __zero_reg__
1514 0ac0 8091 0000 lds r24,MeineSlaveAdresse
1515 0ac4 8F93 push r24
1516 0ac6 84E5 ldi r24,lo8(84)
1517 0ac8 8F93 push r24
1518 0aca 0E94 0000 call SendOutData
1519 0ace 8AEF ldi r24,lo8(-6)
1520 0ad0 8093 0000 sts PC_MotortestActive,r24
1521 0ad4 8FEF ldi r24,lo8(-1)
1522 0ad6 8093 0000 sts PcZugriff,r24
1523 0ada 80EA ldi r24,lo8(4000)
1524 0adc 9FE0 ldi r25,hi8(4000)
1525 0ade 0E94 0000 call SetDelay
1526 0ae2 9093 0000 sts (AboTimeOut)+1,r25
1527 0ae6 8093 0000 sts AboTimeOut,r24
1528 0aea 0F90 pop __tmp_reg__
1529 0aec 0F90 pop __tmp_reg__
1530 0aee 0F90 pop __tmp_reg__
1531 0af0 C5C0 rjmp .L63
1532 .L127:
1533 0af2 E091 0000 lds r30,pRxData
1534 0af6 F091 0000 lds r31,(pRxData)+1
1535 0afa 8081 ld r24,Z
1536 0afc 9181 ldd r25,Z+1
1537 0afe 9093 0000 sts (KompassValue)+1,r25
1538 0b02 8093 0000 sts KompassValue,r24
1539 0b06 2091 0000 lds r18,KompassStartwert
1540 0b0a 3091 0000 lds r19,(KompassStartwert)+1
1541 0b0e 821B sub r24,r18
1542 0b10 930B sbc r25,r19
1543 0b12 845E subi r24,lo8(-(540))
1544 0b14 9D4F sbci r25,hi8(-(540))
1545 0b16 68E6 ldi r22,lo8(360)
1546 0b18 71E0 ldi r23,hi8(360)
1547 0b1a 0E94 0000 call __divmodhi4
1548 0b1e 845B subi r24,lo8(-(-180))
1549 0b20 9040 sbci r25,hi8(-(-180))
1550 0b22 9093 0000 sts (KompassRichtung)+1,r25
1551 0b26 8093 0000 sts KompassRichtung,r24
1552 0b2a A8C0 rjmp .L63
1553 .L128:
1554 0b2c E091 0000 lds r30,pRxData
1555 0b30 F091 0000 lds r31,(pRxData)+1
1556 0b34 8081 ld r24,Z
1557 0b36 8093 0000 sts DebugTextAnforderung,r24
1558 0b3a 8032 cpi r24,lo8(32)
1559 0b3c 98F0 brlo .L149
1560 0b3e 8FE1 ldi r24,lo8(31)
1561 0b40 8093 0000 sts DebugTextAnforderung,r24
1562 0b44 0FC0 rjmp .L149
1563 .L130:
1564 0b46 A091 0000 lds r26,pRxData
1565 0b4a B091 0000 lds r27,(pRxData)+1
1566 0b4e 8BE0 ldi r24,lo8(11)
1567 0b50 E0E0 ldi r30,lo8(ExternControl)
1568 0b52 F0E0 ldi r31,hi8(ExternControl)
1569 0b54 0D90 ld __tmp_reg__,X+
1570 0b56 0192 st Z+,__tmp_reg__
1571 0b58 8A95 dec r24
1572 0b5a E1F7 brne .-8
1573 0b5c 8091 0000 lds r24,ExternControl+9
1574 0b60 8093 0000 sts ConfirmFrame,r24
1575 .L149:
1576 0b64 8FEF ldi r24,lo8(-1)
1577 0b66 8093 0000 sts PcZugriff,r24
1578 0b6a 88C0 rjmp .L63
1579 .L131:
1580 0b6c 8091 0000 lds r24,Intervall3D
1581 0b70 9091 0000 lds r25,(Intervall3D)+1
1582 0b74 892B or r24,r25
1583 0b76 89F4 brne .L132
1584 0b78 E091 0000 lds r30,pRxData
1585 0b7c F091 0000 lds r31,(pRxData)+1
1586 0b80 E081 ld r30,Z
1587 0b82 EE23 tst r30
1588 0b84 51F0 breq .L132
1589 0b86 8AE0 ldi r24,lo8(10)
1590 0b88 E89F mul r30,r24
1591 0b8a C001 movw r24,r0
1592 0b8c 1124 clr r1
1593 0b8e 0E94 0000 call SetDelay
1594 0b92 9093 0000 sts (Timer3D)+1,r25
1595 0b96 8093 0000 sts Timer3D,r24
1596 .L132:
1597 0b9a E091 0000 lds r30,pRxData
1598 0b9e F091 0000 lds r31,(pRxData)+1
1599 0ba2 9081 ld r25,Z
1600 0ba4 8AE0 ldi r24,lo8(10)
1601 0ba6 989F mul r25,r24
1602 0ba8 C001 movw r24,r0
1603 0baa 1124 clr r1
1604 0bac 9093 0000 sts (Intervall3D)+1,r25
1605 0bb0 8093 0000 sts Intervall3D,r24
1606 0bb4 15C0 rjmp .L135
1607 .L134:
1608 0bb6 8FEF ldi r24,lo8(-1)
1609 0bb8 8093 0000 sts PcZugriff,r24
1610 0bbc E091 0000 lds r30,pRxData
1611 0bc0 F091 0000 lds r31,(pRxData)+1
1612 0bc4 9081 ld r25,Z
1613 0bc6 8AE0 ldi r24,lo8(10)
1614 0bc8 989F mul r25,r24
1615 0bca C001 movw r24,r0
1616 0bcc 1124 clr r1
1617 0bce 9093 0000 sts (DebugDataIntervall)+1,r25
1618 0bd2 8093 0000 sts DebugDataIntervall,r24
1619 0bd6 892B or r24,r25
1620 0bd8 19F0 breq .L135
1621 0bda 81E0 ldi r24,lo8(1)
1622 0bdc 8093 0000 sts DebugDataAnforderung,r24
1623 .L135:
1624 0be0 80EA ldi r24,lo8(4000)
1625 0be2 9FE0 ldi r25,hi8(4000)
1626 0be4 0E94 0000 call SetDelay
1627 0be8 9093 0000 sts (AboTimeOut)+1,r25
1628 0bec 8093 0000 sts AboTimeOut,r24
1629 0bf0 45C0 rjmp .L63
1630 .L136:
1631 0bf2 8FEF ldi r24,lo8(-1)
1632 0bf4 8093 0000 sts PcZugriff,r24
1633 0bf8 E091 0000 lds r30,pRxData
1634 0bfc F091 0000 lds r31,(pRxData)+1
1635 0c00 9081 ld r25,Z
1636 0c02 97FD sbrc r25,7
1637 0c04 08C0 rjmp .L137
1638 0c06 82E0 ldi r24,lo8(2)
1639 0c08 8093 0000 sts DisplayLine,r24
1640 0c0c 1092 0000 sts (Display_Interval)+1,__zero_reg__
1641 0c10 1092 0000 sts Display_Interval,__zero_reg__
1642 0c14 1AC0 rjmp .L138
1643 .L137:
1644 0c16 9095 com r25
1645 0c18 8091 0000 lds r24,RemoteKeys
1646 0c1c 892B or r24,r25
1647 0c1e 8093 0000 sts RemoteKeys,r24
1648 0c22 9181 ldd r25,Z+1
1649 0c24 8AE0 ldi r24,lo8(10)
1650 0c26 989F mul r25,r24
1651 0c28 C001 movw r24,r0
1652 0c2a 1124 clr r1
1653 0c2c 9093 0000 sts (Display_Interval)+1,r25
1654 0c30 8093 0000 sts Display_Interval,r24
1655 0c34 84E0 ldi r24,lo8(4)
1656 0c36 8093 0000 sts DisplayLine,r24
1657 0c3a 80EA ldi r24,lo8(4000)
1658 0c3c 9FE0 ldi r25,hi8(4000)
1659 0c3e 0E94 0000 call SetDelay
1660 0c42 9093 0000 sts (AboTimeOut)+1,r25
1661 0c46 8093 0000 sts AboTimeOut,r24
1662 .L138:
1663 0c4a 81E0 ldi r24,lo8(1)
1664 0c4c 8093 0000 sts DebugDisplayAnforderung,r24
1665 0c50 15C0 rjmp .L63
1666 .L139:
1667 0c52 8FEF ldi r24,lo8(-1)
1668 0c54 8093 0000 sts PcZugriff,r24
1669 0c58 E091 0000 lds r30,pRxData
1670 0c5c F091 0000 lds r31,(pRxData)+1
1671 0c60 8081 ld r24,Z
1672 0c62 8093 0000 sts MenuePunkt,r24
1673 0c66 81E0 ldi r24,lo8(1)
1674 0c68 8093 0000 sts DebugDisplayAnforderung1,r24
1675 0c6c 07C0 rjmp .L63
1676 .L140:
1677 0c6e 81E0 ldi r24,lo8(1)
1678 0c70 8093 0000 sts GetVersionAnforderung,r24
1679 0c74 03C0 rjmp .L63
1680 .L141:
1681 0c76 81E0 ldi r24,lo8(1)
1682 0c78 8093 0000 sts GetExternalControl,r24
1683 .L63:
1684 0c7c 1092 0000 sts NeuerDatensatzEmpfangen,__zero_reg__
1685 0c80 1092 0000 sts (pRxData)+1,__zero_reg__
1686 0c84 1092 0000 sts pRxData,__zero_reg__
1687 0c88 1092 0000 sts RxDataLen,__zero_reg__
1688 .L61:
1689 /* epilogue: frame size=2 */
1690 0c8c E3E0 ldi r30,3
1691 0c8e CE5F subi r28,-2
1692 0c90 0C94 0000 jmp __epilogue_restores__+30
1693 /* epilogue end (size=4) */
1694 /* function BearbeiteRxDaten size 982 (972) */
1696 .global uart_putchar
1698 uart_putchar:
1699 /* prologue: frame size=0 */
1700 /* prologue end (size=0) */
1701 0c94 982F mov r25,r24
1702 .L154:
1703 0c96 8091 C000 lds r24,192
1704 0c9a 85FF sbrs r24,5
1705 0c9c FCCF rjmp .L154
1706 0c9e 9093 C600 sts 198,r25
1707 /* epilogue: frame size=0 */
1708 0ca2 0895 ret
1709 /* epilogue end (size=1) */
1710 /* function uart_putchar size 8 (7) */
1712 .global UART_Init
1714 UART_Init:
1715 /* prologue: frame size=0 */
1716 0ca4 0F93 push r16
1717 0ca6 1F93 push r17
1718 /* prologue end (size=2) */
1719 0ca8 88E1 ldi r24,lo8(24)
1720 0caa 8093 C100 sts 193,r24
1721 0cae 8091 C000 lds r24,192
1722 0cb2 8260 ori r24,lo8(2)
1723 0cb4 8093 C000 sts 192,r24
1724 0cb8 8091 C100 lds r24,193
1725 0cbc 8068 ori r24,lo8(-128)
1726 0cbe 8093 C100 sts 193,r24
1727 0cc2 8091 C100 lds r24,193
1728 0cc6 8064 ori r24,lo8(64)
1729 0cc8 8093 C100 sts 193,r24
1730 0ccc 00E0 ldi r16,lo8(0)
1731 0cce 10E0 ldi r17,hi8(0)
1732 0cd0 0093 C500 sts 197,r16
1733 0cd4 8AE2 ldi r24,lo8(42)
1734 0cd6 90E0 ldi r25,hi8(42)
1735 0cd8 8093 C400 sts 196,r24
1736 0cdc 8091 0000 lds r24,DebugDataIntervall
1737 0ce0 9091 0000 lds r25,(DebugDataIntervall)+1
1738 0ce4 0E94 0000 call SetDelay
1739 0ce8 9093 0000 sts (Debug_Timer)+1,r25
1740 0cec 8093 0000 sts Debug_Timer,r24
1741 0cf0 8CED ldi r24,lo8(220)
1742 0cf2 90E0 ldi r25,hi8(220)
1743 0cf4 0E94 0000 call SetDelay
1744 0cf8 9093 0000 sts (Kompass_Timer)+1,r25
1745 0cfc 8093 0000 sts Kompass_Timer,r24
1746 0d00 1092 0000 sts VersionInfo,__zero_reg__
1747 0d04 80E5 ldi r24,lo8(80)
1748 0d06 8093 0000 sts VersionInfo+1,r24
1749 0d0a 83E0 ldi r24,lo8(3)
1750 0d0c 8093 0000 sts VersionInfo+4,r24
1751 0d10 8BE0 ldi r24,lo8(11)
1752 0d12 8093 0000 sts VersionInfo+2,r24
1753 0d16 1092 0000 sts VersionInfo+3,__zero_reg__
1754 0d1a 1093 0000 sts (pRxData)+1,r17
1755 0d1e 0093 0000 sts pRxData,r16
1756 0d22 1092 0000 sts RxDataLen,__zero_reg__
1757 /* epilogue: frame size=0 */
1758 0d26 1F91 pop r17
1759 0d28 0F91 pop r16
1760 0d2a 0895 ret
1761 /* epilogue end (size=3) */
1762 /* function UART_Init size 68 (63) */
1764 .section .progmem.data
1767 __c.0:
1768 0200 2121 2120 .string "!!! INCOMPATIBLE !!!"
1768 494E 434F
1768 4D50 4154
1768 4942 4C45
1768 2021 2121
1769 .text
1770 .global DatenUebertragung
1772 DatenUebertragung:
1773 /* prologue: frame size=16 */
1774 0d2c A0E1 ldi r26,lo8(16)
1775 0d2e B0E0 ldi r27,hi8(16)
1776 0d30 E0E0 ldi r30,pm_lo8(1f)
1777 0d32 F0E0 ldi r31,pm_hi8(1f)
1778 0d34 0C94 0000 jmp __prologue_saves__+24
1779 1:
1780 /* prologue end (size=6) */
1781 0d38 8091 0000 lds r24,UebertragungAbgeschlossen
1782 0d3c 8823 tst r24
1783 0d3e 09F4 brne .+2
1784 0d40 C1C2 rjmp .L158
1785 0d42 8091 0000 lds r24,AboTimeOut
1786 0d46 9091 0000 lds r25,(AboTimeOut)+1
1787 0d4a 0E94 0000 call CheckDelay
1788 0d4e 8823 tst r24
1789 0d50 61F0 breq .L160
1790 0d52 1092 0000 sts (Display_Interval)+1,__zero_reg__
1791 0d56 1092 0000 sts Display_Interval,__zero_reg__
1792 0d5a 1092 0000 sts (DebugDataIntervall)+1,__zero_reg__
1793 0d5e 1092 0000 sts DebugDataIntervall,__zero_reg__
1794 0d62 1092 0000 sts (Intervall3D)+1,__zero_reg__
1795 0d66 1092 0000 sts Intervall3D,__zero_reg__
1796 .L160:
1797 0d6a 8091 0000 lds r24,Display_Interval
1798 0d6e 9091 0000 lds r25,(Display_Interval)+1
1799 0d72 892B or r24,r25
1800 0d74 41F0 breq .L163
1801 0d76 8091 0000 lds r24,Display_Timer
1802 0d7a 9091 0000 lds r25,(Display_Timer)+1
1803 0d7e 0E94 0000 call CheckDelay
1804 0d82 8823 tst r24
1805 0d84 29F4 brne .L162
1806 .L163:
1807 0d86 8091 0000 lds r24,DebugDisplayAnforderung
1808 0d8a 8823 tst r24
1809 0d8c 09F4 brne .+2
1810 0d8e 60C0 rjmp .L161
1811 .L162:
1812 0d90 8091 0000 lds r24,UebertragungAbgeschlossen
1813 0d94 8823 tst r24
1814 0d96 09F4 brne .+2
1815 0d98 5BC0 rjmp .L161
1816 0d9a 8091 0000 lds r24,DisplayLine
1817 0d9e 00E0 ldi r16,lo8(DisplayBuff)
1818 0da0 10E0 ldi r17,hi8(DisplayBuff)
1819 0da2 8430 cpi r24,lo8(4)
1820 0da4 A8F0 brlo .L164
1821 0da6 0E94 0000 call Menu
1822 0daa 80E5 ldi r24,lo8(80)
1823 0dac 90E0 ldi r25,hi8(80)
1824 0dae 9F93 push r25
1825 0db0 8F93 push r24
1826 0db2 1F93 push r17
1827 0db4 0F93 push r16
1828 0db6 81E0 ldi r24,lo8(1)
1829 0db8 8F93 push r24
1830 0dba 8F93 push r24
1831 0dbc 88E4 ldi r24,lo8(72)
1832 0dbe 8F93 push r24
1833 0dc0 0E94 0000 call SendOutData
1834 0dc4 2DB7 in r18,__SP_L__
1835 0dc6 3EB7 in r19,__SP_H__
1836 0dc8 295F subi r18,lo8(-(7))
1837 0dca 3F4F sbci r19,hi8(-(7))
1838 0dcc 2DBF out __SP_L__,r18
1839 0dce 34C0 rjmp .L165
1840 .L164:
1841 0dd0 1092 0000 sts DispPtr,__zero_reg__
1842 0dd4 80E0 ldi r24,lo8(__c.0)
1843 0dd6 90E0 ldi r25,hi8(__c.0)
1844 0dd8 9F93 push r25
1845 0dda 8F93 push r24
1846 0ddc 80E0 ldi r24,lo8(pm(Menu_Putchar))
1847 0dde 90E0 ldi r25,hi8(pm(Menu_Putchar))
1848 0de0 9F93 push r25
1849 0de2 8F93 push r24
1850 0de4 E091 0000 lds r30,_printf_P
1851 0de8 F091 0000 lds r31,(_printf_P)+1
1852 0dec 0995 icall
1853 0dee 84E1 ldi r24,lo8(20)
1854 0df0 90E0 ldi r25,hi8(20)
1855 0df2 9F93 push r25
1856 0df4 8F93 push r24
1857 0df6 1F93 push r17
1858 0df8 0F93 push r16
1859 0dfa 81E0 ldi r24,lo8(1)
1860 0dfc 90E0 ldi r25,hi8(1)
1861 0dfe 9F93 push r25
1862 0e00 8F93 push r24
1863 0e02 80E0 ldi r24,lo8(DisplayLine)
1864 0e04 90E0 ldi r25,hi8(DisplayLine)
1865 0e06 9F93 push r25
1866 0e08 8F93 push r24
1867 0e0a 82E0 ldi r24,lo8(2)
1868 0e0c 8F93 push r24
1869 0e0e 81E0 ldi r24,lo8(1)
1870 0e10 8F93 push r24
1871 0e12 88E4 ldi r24,lo8(72)
1872 0e14 8F93 push r24
1873 0e16 0E94 0000 call SendOutData
1874 0e1a 8091 0000 lds r24,DisplayLine
1875 0e1e 982F mov r25,r24
1876 0e20 8F5F subi r24,lo8(-(1))
1877 0e22 8093 0000 sts DisplayLine,r24
1878 0e26 2DB7 in r18,__SP_L__
1879 0e28 3EB7 in r19,__SP_H__
1880 0e2a 215F subi r18,lo8(-(15))
1881 0e2c 3F4F sbci r19,hi8(-(15))
1882 0e2e 2DBF out __SP_L__,r18
1883 0e30 9430 cpi r25,lo8(4)
1884 0e32 10F0 brlo .L165
1885 0e34 1092 0000 sts DisplayLine,__zero_reg__
1886 .L165:
1887 0e38 8091 0000 lds r24,Display_Interval
1888 0e3c 9091 0000 lds r25,(Display_Interval)+1
1889 0e40 0E94 0000 call SetDelay
1890 0e44 9093 0000 sts (Display_Timer)+1,r25
1891 0e48 8093 0000 sts Display_Timer,r24
1892 0e4c 1092 0000 sts DebugDisplayAnforderung,__zero_reg__
1893 .L161:
1894 0e50 8091 0000 lds r24,DebugDisplayAnforderung1
1895 0e54 8823 tst r24
1896 0e56 51F1 breq .L167
1897 0e58 8091 0000 lds r24,UebertragungAbgeschlossen
1898 0e5c 8823 tst r24
1899 0e5e 31F1 breq .L167
1900 0e60 0E94 0000 call Menu
1901 0e64 80E5 ldi r24,lo8(80)
1902 0e66 90E0 ldi r25,hi8(80)
1903 0e68 9F93 push r25
1904 0e6a 8F93 push r24
1905 0e6c 80E0 ldi r24,lo8(DisplayBuff)
1906 0e6e 90E0 ldi r25,hi8(DisplayBuff)
1907 0e70 9F93 push r25
1908 0e72 8F93 push r24
1909 0e74 21E0 ldi r18,lo8(1)
1910 0e76 30E0 ldi r19,hi8(1)
1911 0e78 3F93 push r19
1912 0e7a 2F93 push r18
1913 0e7c 80E0 ldi r24,lo8(MaxMenue)
1914 0e7e 90E0 ldi r25,hi8(MaxMenue)
1915 0e80 9F93 push r25
1916 0e82 8F93 push r24
1917 0e84 3F93 push r19
1918 0e86 2F93 push r18
1919 0e88 80E0 ldi r24,lo8(MenuePunkt)
1920 0e8a 90E0 ldi r25,hi8(MenuePunkt)
1921 0e8c 9F93 push r25
1922 0e8e 8F93 push r24
1923 0e90 83E0 ldi r24,lo8(3)
1924 0e92 8F93 push r24
1925 0e94 81E0 ldi r24,lo8(1)
1926 0e96 8F93 push r24
1927 0e98 8CE4 ldi r24,lo8(76)
1928 0e9a 8F93 push r24
1929 0e9c 0E94 0000 call SendOutData
1930 0ea0 1092 0000 sts DebugDisplayAnforderung1,__zero_reg__
1931 0ea4 8DB7 in r24,__SP_L__
1932 0ea6 9EB7 in r25,__SP_H__
1933 0ea8 0F96 adiw r24,15
1934 0eaa 8DBF out __SP_L__,r24
1935 .L167:
1936 0eac 8091 0000 lds r24,GetVersionAnforderung
1937 0eb0 8823 tst r24
1938 0eb2 D1F0 breq .L168
1939 0eb4 8091 0000 lds r24,UebertragungAbgeschlossen
1940 0eb8 8823 tst r24
1941 0eba B1F0 breq .L168
1942 0ebc 8AE0 ldi r24,lo8(10)
1943 0ebe 90E0 ldi r25,hi8(10)
1944 0ec0 9F93 push r25
1945 0ec2 8F93 push r24
1946 0ec4 80E0 ldi r24,lo8(VersionInfo)
1947 0ec6 90E0 ldi r25,hi8(VersionInfo)
1948 0ec8 9F93 push r25
1949 0eca 8F93 push r24
1950 0ecc 81E0 ldi r24,lo8(1)
1951 0ece 8F93 push r24
1952 0ed0 8F93 push r24
1953 0ed2 86E5 ldi r24,lo8(86)
1954 0ed4 8F93 push r24
1955 0ed6 0E94 0000 call SendOutData
1956 0eda 1092 0000 sts GetVersionAnforderung,__zero_reg__
1957 0ede 2DB7 in r18,__SP_L__
1958 0ee0 3EB7 in r19,__SP_H__
1959 0ee2 295F subi r18,lo8(-(7))
1960 0ee4 3F4F sbci r19,hi8(-(7))
1961 0ee6 2DBF out __SP_L__,r18
1962 .L168:
1963 0ee8 8091 0000 lds r24,GetExternalControl
1964 0eec 8823 tst r24
1965 0eee D9F0 breq .L169
1966 0ef0 8091 0000 lds r24,UebertragungAbgeschlossen
1967 0ef4 8823 tst r24
1968 0ef6 B9F0 breq .L169
1969 0ef8 8BE0 ldi r24,lo8(11)
1970 0efa 90E0 ldi r25,hi8(11)
1971 0efc 9F93 push r25
1972 0efe 8F93 push r24
1973 0f00 80E0 ldi r24,lo8(ExternControl)
1974 0f02 90E0 ldi r25,hi8(ExternControl)
1975 0f04 9F93 push r25
1976 0f06 8F93 push r24
1977 0f08 81E0 ldi r24,lo8(1)
1978 0f0a 8F93 push r24
1979 0f0c 8091 0000 lds r24,MeineSlaveAdresse
1980 0f10 8F93 push r24
1981 0f12 87E4 ldi r24,lo8(71)
1982 0f14 8F93 push r24
1983 0f16 0E94 0000 call SendOutData
1984 0f1a 1092 0000 sts GetExternalControl,__zero_reg__
1985 0f1e 8DB7 in r24,__SP_L__
1986 0f20 9EB7 in r25,__SP_H__
1987 0f22 0796 adiw r24,7
1988 0f24 8DBF out __SP_L__,r24
1989 .L169:
1990 0f26 8091 0000 lds r24,Kompass_Timer
1991 0f2a 9091 0000 lds r25,(Kompass_Timer)+1
1992 0f2e 0E94 0000 call CheckDelay
1993 0f32 8823 tst r24
1994 0f34 09F4 brne .+2
1995 0f36 61C0 rjmp .L170
1996 0f38 8091 0000 lds r24,UebertragungAbgeschlossen
1997 0f3c 8823 tst r24
1998 0f3e 09F4 brne .+2
1999 0f40 5CC0 rjmp .L170
2000 0f42 8091 0000 lds r24,EE_Parameter+28
2001 0f46 9927 clr r25
2002 0f48 880F lsl r24
2003 0f4a 991F rol r25
2004 0f4c 880F lsl r24
2005 0f4e 991F rol r25
2006 0f50 7C01 movw r14,r24
2007 0f52 0027 clr r16
2008 0f54 F7FC sbrc r15,7
2009 0f56 0095 com r16
2010 0f58 102F mov r17,r16
2011 0f5a 8091 0000 lds r24,IntegralNick
2012 0f5e 9091 0000 lds r25,(IntegralNick)+1
2013 0f62 A091 0000 lds r26,(IntegralNick)+2
2014 0f66 B091 0000 lds r27,(IntegralNick)+3
2015 0f6a BC01 movw r22,r24
2016 0f6c CD01 movw r24,r26
2017 0f6e A801 movw r20,r16
2018 0f70 9701 movw r18,r14
2019 0f72 0E94 0000 call __divmodsi4
2020 0f76 3093 0000 sts (WinkelOut)+1,r19
2021 0f7a 2093 0000 sts WinkelOut,r18
2022 0f7e 8091 0000 lds r24,IntegralRoll
2023 0f82 9091 0000 lds r25,(IntegralRoll)+1
2024 0f86 A091 0000 lds r26,(IntegralRoll)+2
2025 0f8a B091 0000 lds r27,(IntegralRoll)+3
2026 0f8e BC01 movw r22,r24
2027 0f90 CD01 movw r24,r26
2028 0f92 A801 movw r20,r16
2029 0f94 9701 movw r18,r14
2030 0f96 0E94 0000 call __divmodsi4
2031 0f9a 3093 0000 sts (WinkelOut+2)+1,r19
2032 0f9e 2093 0000 sts WinkelOut+2,r18
2033 0fa2 8091 0000 lds r24,Parameter_UserParam1
2034 0fa6 8093 0000 sts WinkelOut+4,r24
2035 0faa 8091 0000 lds r24,Parameter_UserParam2
2036 0fae 8093 0000 sts WinkelOut+5,r24
2037 0fb2 88E0 ldi r24,lo8(8)
2038 0fb4 90E0 ldi r25,hi8(8)
2039 0fb6 9F93 push r25
2040 0fb8 8F93 push r24
2041 0fba 80E0 ldi r24,lo8(WinkelOut)
2042 0fbc 90E0 ldi r25,hi8(WinkelOut)
2043 0fbe 9F93 push r25
2044 0fc0 8F93 push r24
2045 0fc2 81E0 ldi r24,lo8(1)
2046 0fc4 8F93 push r24
2047 0fc6 83E0 ldi r24,lo8(3)
2048 0fc8 8F93 push r24
2049 0fca 8BE6 ldi r24,lo8(107)
2050 0fcc 8F93 push r24
2051 0fce 0E94 0000 call SendOutData
2052 0fd2 8091 0000 lds r24,WinkelOut+6
2053 0fd6 2DB7 in r18,__SP_L__
2054 0fd8 3EB7 in r19,__SP_H__
2055 0fda 295F subi r18,lo8(-(7))
2056 0fdc 3F4F sbci r19,hi8(-(7))
2057 0fde 2DBF out __SP_L__,r18
2058 0fe0 8530 cpi r24,lo8(5)
2059 0fe2 18F0 brlo .L171
2060 0fe4 86E0 ldi r24,lo8(6)
2061 0fe6 8093 0000 sts WinkelOut+6,r24
2062 .L171:
2063 0fea 83E6 ldi r24,lo8(99)
2064 0fec 90E0 ldi r25,hi8(99)
2065 0fee 0E94 0000 call SetDelay
2066 0ff2 9093 0000 sts (Kompass_Timer)+1,r25
2067 0ff6 8093 0000 sts Kompass_Timer,r24
2068 .L170:
2069 0ffa 8091 0000 lds r24,DebugDataIntervall
2070 0ffe 9091 0000 lds r25,(DebugDataIntervall)+1
2071 1002 892B or r24,r25
2072 1004 41F0 breq .L174
2073 1006 8091 0000 lds r24,Debug_Timer
2074 100a 9091 0000 lds r25,(Debug_Timer)+1
2075 100e 0E94 0000 call CheckDelay
2076 1012 8823 tst r24
2077 1014 21F4 brne .L173
2078 .L174:
2079 1016 8091 0000 lds r24,DebugDataAnforderung
2080 101a 8823 tst r24
2081 101c 39F1 breq .L172
2082 .L173:
2083 101e 8091 0000 lds r24,UebertragungAbgeschlossen
2084 1022 8823 tst r24
2085 1024 19F1 breq .L172
2086 1026 0E94 0000 call CopyDebugValues
2087 102a 82E4 ldi r24,lo8(66)
2088 102c 90E0 ldi r25,hi8(66)
2089 102e 9F93 push r25
2090 1030 8F93 push r24
2091 1032 80E0 ldi r24,lo8(DebugOut)
2092 1034 90E0 ldi r25,hi8(DebugOut)
2093 1036 9F93 push r25
2094 1038 8F93 push r24
2095 103a 81E0 ldi r24,lo8(1)
2096 103c 8F93 push r24
2097 103e 8F93 push r24
2098 1040 84E4 ldi r24,lo8(68)
2099 1042 8F93 push r24
2100 1044 0E94 0000 call SendOutData
2101 1048 1092 0000 sts DebugDataAnforderung,__zero_reg__
2102 104c 8DB7 in r24,__SP_L__
2103 104e 9EB7 in r25,__SP_H__
2104 1050 0796 adiw r24,7
2105 1052 8DBF out __SP_L__,r24
2106 1054 8091 0000 lds r24,DebugDataIntervall
2107 1058 9091 0000 lds r25,(DebugDataIntervall)+1
2108 105c 0097 sbiw r24,0
2109 105e 31F0 breq .L172
2110 1060 0E94 0000 call SetDelay
2111 1064 9093 0000 sts (Debug_Timer)+1,r25
2112 1068 8093 0000 sts Debug_Timer,r24
2113 .L172:
2114 106c 8091 0000 lds r24,Intervall3D
2115 1070 9091 0000 lds r25,(Intervall3D)+1
2116 1074 892B or r24,r25
2117 1076 09F4 brne .+2
2118 1078 B8C0 rjmp .L176
2119 107a 8091 0000 lds r24,Timer3D
2120 107e 9091 0000 lds r25,(Timer3D)+1
2121 1082 0E94 0000 call CheckDelay
2122 1086 8823 tst r24
2123 1088 09F4 brne .+2
2124 108a AFC0 rjmp .L176
2125 108c 8091 0000 lds r24,UebertragungAbgeschlossen
2126 1090 8823 tst r24
2127 1092 09F4 brne .+2
2128 1094 AAC0 rjmp .L176
2129 1096 8091 0000 lds r24,EE_Parameter+28
2130 109a 9927 clr r25
2131 109c 880F lsl r24
2132 109e 991F rol r25
2133 10a0 880F lsl r24
2134 10a2 991F rol r25
2135 10a4 7C01 movw r14,r24
2136 10a6 0027 clr r16
2137 10a8 F7FC sbrc r15,7
2138 10aa 0095 com r16
2139 10ac 102F mov r17,r16
2140 10ae 8091 0000 lds r24,IntegralNick
2141 10b2 9091 0000 lds r25,(IntegralNick)+1
2142 10b6 A091 0000 lds r26,(IntegralNick)+2
2143 10ba B091 0000 lds r27,(IntegralNick)+3
2144 10be BC01 movw r22,r24
2145 10c0 CD01 movw r24,r26
2146 10c2 A801 movw r20,r16
2147 10c4 9701 movw r18,r14
2148 10c6 0E94 0000 call __divmodsi4
2149 10ca 3093 0000 sts (Data3D)+1,r19
2150 10ce 2093 0000 sts Data3D,r18
2151 10d2 8091 0000 lds r24,IntegralRoll
2152 10d6 9091 0000 lds r25,(IntegralRoll)+1
2153 10da A091 0000 lds r26,(IntegralRoll)+2
2154 10de B091 0000 lds r27,(IntegralRoll)+3
2155 10e2 BC01 movw r22,r24
2156 10e4 CD01 movw r24,r26
2157 10e6 A801 movw r20,r16
2158 10e8 9701 movw r18,r14
2159 10ea 0E94 0000 call __divmodsi4
2160 10ee 3093 0000 sts (Data3D+2)+1,r19
2161 10f2 2093 0000 sts Data3D+2,r18
2162 10f6 2091 0000 lds r18,ErsatzKompass
2163 10fa 3091 0000 lds r19,(ErsatzKompass)+1
2164 10fe 4091 0000 lds r20,(ErsatzKompass)+2
2165 1102 5091 0000 lds r21,(ErsatzKompass)+3
2166 1106 DA01 movw r26,r20
2167 1108 C901 movw r24,r18
2168 110a 63E0 ldi r22,3
2169 110c 880F 1: lsl r24
2170 110e 991F rol r25
2171 1110 AA1F rol r26
2172 1112 BB1F rol r27
2173 1114 6A95 dec r22
2174 1116 D1F7 brne 1b
2175 1118 820F add r24,r18
2176 111a 931F adc r25,r19
2177 111c A41F adc r26,r20
2178 111e B51F adc r27,r21
2179 1120 820F add r24,r18
2180 1122 931F adc r25,r19
2181 1124 A41F adc r26,r20
2182 1126 B51F adc r27,r21
2183 1128 2091 0000 lds r18,GIER_GRAD_FAKTOR
2184 112c 3091 0000 lds r19,(GIER_GRAD_FAKTOR)+1
2185 1130 4091 0000 lds r20,(GIER_GRAD_FAKTOR)+2
2186 1134 5091 0000 lds r21,(GIER_GRAD_FAKTOR)+3
2187 1138 BC01 movw r22,r24
2188 113a CD01 movw r24,r26
2189 113c 0E94 0000 call __divmodsi4
2190 1140 3093 0000 sts (Data3D+4)+1,r19
2191 1144 2093 0000 sts Data3D+4,r18
2192 1148 8091 0000 lds r24,SummeNick
2193 114c 9091 0000 lds r25,(SummeNick)+1
2194 1150 A091 0000 lds r26,(SummeNick)+2
2195 1154 B091 0000 lds r27,(SummeNick)+3
2196 1158 39E0 ldi r19,9
2197 115a B595 1: asr r27
2198 115c A795 ror r26
2199 115e 9795 ror r25
2200 1160 8795 ror r24
2201 1162 3A95 dec r19
2202 1164 D1F7 brne 1b
2203 1166 8093 0000 sts Data3D+6,r24
2204 116a 8091 0000 lds r24,SummeRoll
2205 116e 9091 0000 lds r25,(SummeRoll)+1
2206 1172 A091 0000 lds r26,(SummeRoll)+2
2207 1176 B091 0000 lds r27,(SummeRoll)+3
2208 117a 29E0 ldi r18,9
2209 117c B595 1: asr r27
2210 117e A795 ror r26
2211 1180 9795 ror r25
2212 1182 8795 ror r24
2213 1184 2A95 dec r18
2214 1186 D1F7 brne 1b
2215 1188 8093 0000 sts Data3D+7,r24
2216 118c 8091 0000 lds r24,Mess_Integral_Gier
2217 1190 9091 0000 lds r25,(Mess_Integral_Gier)+1
2218 1194 A091 0000 lds r26,(Mess_Integral_Gier)+2
2219 1198 B091 0000 lds r27,(Mess_Integral_Gier)+3
2220 119c 09E0 ldi r16,9
2221 119e B595 1: asr r27
2222 11a0 A795 ror r26
2223 11a2 9795 ror r25
2224 11a4 8795 ror r24
2225 11a6 0A95 dec r16
2226 11a8 D1F7 brne 1b
2227 11aa 8093 0000 sts Data3D+8,r24
2228 11ae 8EE0 ldi r24,lo8(14)
2229 11b0 90E0 ldi r25,hi8(14)
2230 11b2 9F93 push r25
2231 11b4 8F93 push r24
2232 11b6 80E0 ldi r24,lo8(Data3D)
2233 11b8 90E0 ldi r25,hi8(Data3D)
2234 11ba 9F93 push r25
2235 11bc 8F93 push r24
2236 11be 81E0 ldi r24,lo8(1)
2237 11c0 8F93 push r24
2238 11c2 8F93 push r24
2239 11c4 83E4 ldi r24,lo8(67)
2240 11c6 8F93 push r24
2241 11c8 0E94 0000 call SendOutData
2242 11cc 8091 0000 lds r24,Intervall3D
2243 11d0 9091 0000 lds r25,(Intervall3D)+1
2244 11d4 0E94 0000 call SetDelay
2245 11d8 9093 0000 sts (Timer3D)+1,r25
2246 11dc 8093 0000 sts Timer3D,r24
2247 11e0 2DB7 in r18,__SP_L__
2248 11e2 3EB7 in r19,__SP_H__
2249 11e4 295F subi r18,lo8(-(7))
2250 11e6 3F4F sbci r19,hi8(-(7))
2251 11e8 2DBF out __SP_L__,r18
2252 .L176:
2253 11ea 8091 0000 lds r24,DebugTextAnforderung
2254 11ee 8F3F cpi r24,lo8(-1)
2255 11f0 71F1 breq .L177
2256 11f2 9927 clr r25
2257 11f4 14E0 ldi r17,4
2258 11f6 880F 1: lsl r24
2259 11f8 991F rol r25
2260 11fa 1A95 dec r17
2261 11fc E1F7 brne 1b
2262 11fe 8050 subi r24,lo8(-(ANALOG_TEXT))
2263 1200 9040 sbci r25,hi8(-(ANALOG_TEXT))
2264 1202 40E1 ldi r20,lo8(16)
2265 1204 50E0 ldi r21,hi8(16)
2266 1206 BC01 movw r22,r24
2267 1208 CE01 movw r24,r28
2268 120a 0196 adiw r24,1
2269 120c 0E94 0000 call memcpy_P
2270 1210 80E1 ldi r24,lo8(16)
2271 1212 90E0 ldi r25,hi8(16)
2272 1214 9F93 push r25
2273 1216 8F93 push r24
2274 1218 CE01 movw r24,r28
2275 121a 0196 adiw r24,1
2276 121c 9F93 push r25
2277 121e 8F93 push r24
2278 1220 81E0 ldi r24,lo8(1)
2279 1222 90E0 ldi r25,hi8(1)
2280 1224 9F93 push r25
2281 1226 8F93 push r24
2282 1228 80E0 ldi r24,lo8(DebugTextAnforderung)
2283 122a 90E0 ldi r25,hi8(DebugTextAnforderung)
2284 122c 9F93 push r25
2285 122e 8F93 push r24
2286 1230 82E0 ldi r24,lo8(2)
2287 1232 8F93 push r24
2288 1234 81E0 ldi r24,lo8(1)
2289 1236 8F93 push r24
2290 1238 81E4 ldi r24,lo8(65)
2291 123a 8F93 push r24
2292 123c 0E94 0000 call SendOutData
2293 1240 8FEF ldi r24,lo8(-1)
2294 1242 8093 0000 sts DebugTextAnforderung,r24
2295 1246 8DB7 in r24,__SP_L__
2296 1248 9EB7 in r25,__SP_H__
2297 124a 0B96 adiw r24,11
2298 124c 8DBF out __SP_L__,r24
2299 .L177:
2300 124e 8091 0000 lds r24,ConfirmFrame
2301 1252 8823 tst r24
2302 1254 D1F0 breq .L178
2303 1256 8091 0000 lds r24,UebertragungAbgeschlossen
2304 125a 8823 tst r24
2305 125c B1F0 breq .L178
2306 125e 81E0 ldi r24,lo8(1)
2307 1260 90E0 ldi r25,hi8(1)
2308 1262 9F93 push r25
2309 1264 8F93 push r24
2310 1266 80E0 ldi r24,lo8(ConfirmFrame)
2311 1268 90E0 ldi r25,hi8(ConfirmFrame)
2312 126a 9F93 push r25
2313 126c 8F93 push r24
2314 126e 81E0 ldi r24,lo8(1)
2315 1270 8F93 push r24
2316 1272 8F93 push r24
2317 1274 82E4 ldi r24,lo8(66)
2318 1276 8F93 push r24
2319 1278 0E94 0000 call SendOutData
2320 127c 1092 0000 sts ConfirmFrame,__zero_reg__
2321 1280 2DB7 in r18,__SP_L__
2322 1282 3EB7 in r19,__SP_H__
2323 1284 295F subi r18,lo8(-(7))
2324 1286 3F4F sbci r19,hi8(-(7))
2325 1288 2DBF out __SP_L__,r18
2326 .L178:
2327 128a 8091 0000 lds r24,GetPPMChannelAnforderung
2328 128e 8823 tst r24
2329 1290 C9F0 breq .L158
2330 1292 8091 0000 lds r24,UebertragungAbgeschlossen
2331 1296 8823 tst r24
2332 1298 A9F0 breq .L158
2333 129a 84E3 ldi r24,lo8(52)
2334 129c 90E0 ldi r25,hi8(52)
2335 129e 9F93 push r25
2336 12a0 8F93 push r24
2337 12a2 80E0 ldi r24,lo8(PPM_in)
2338 12a4 90E0 ldi r25,hi8(PPM_in)
2339 12a6 9F93 push r25
2340 12a8 8F93 push r24
2341 12aa 81E0 ldi r24,lo8(1)
2342 12ac 8F93 push r24
2343 12ae 8F93 push r24
2344 12b0 80E5 ldi r24,lo8(80)
2345 12b2 8F93 push r24
2346 12b4 0E94 0000 call SendOutData
2347 12b8 1092 0000 sts GetPPMChannelAnforderung,__zero_reg__
2348 12bc 8DB7 in r24,__SP_L__
2349 12be 9EB7 in r25,__SP_H__
2350 12c0 0796 adiw r24,7
2351 12c2 8DBF out __SP_L__,r24
2352 .L158:
2353 /* epilogue: frame size=16 */
2354 12c4 E6E0 ldi r30,6
2355 12c6 C05F subi r28,-16
2356 12c8 0C94 0000 jmp __epilogue_restores__+24
2357 /* epilogue end (size=4) */
2358 /* function DatenUebertragung size 720 (710) */
2360 .comm Debug_Timer,2,1
2361 .comm Kompass_Timer,2,1
2362 .comm MotorTest,16,1
2363 .comm DebugOut,66,1
2364 .comm WinkelOut,8,1
2365 .comm Data3D,14,1
2366 .comm ExternControl,11,1
2367 .comm VersionInfo,10,1
2368 .comm TxdBuffer,160,1
2369 .comm RxdBuffer,160,1
2370 .comm ConfirmFrame,1,1
2371 .comm Display_Timer,2,1
2372 .comm Timer3D,2,1
2373 /* File "uart.c": code 2416 = 0x0970 (2325), prologues 47, epilogues 44 */
DEFINED SYMBOLS
*ABS*:00000000 uart.c
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:3 *ABS*:0000003f __SREG__
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:4 *ABS*:0000003e __SP_H__
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:5 *ABS*:0000003d __SP_L__
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:7 *ABS*:00000001 __zero_reg__
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:14 .progmem.data:00000000 ANALOG_TEXT
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:52 .bss:00000000 AboTimeOut
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:58 .bss:00000002 Display_Interval
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:64 .bss:00000004 Intervall3D
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:70 .bss:00000006 DebugDataIntervall
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:76 .data:00000000 MeineSlaveAdresse
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:81 .data:00000001 PcZugriff
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:86 .data:00000002 DebugTextAnforderung
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:93 .bss:00000008 PC_MotortestActive
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:99 .bss:00000009 PC_DebugTimeout
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:105 .bss:0000000a RxDataLen
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:111 .bss:0000000b pRxData
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:117 .bss:0000000d AnzahlEmpfangsBytes
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:123 .bss:0000000e CntCrcError
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:129 .data:00000003 UebertragungAbgeschlossen
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:136 .bss:0000000f NeueKoordinateEmpfangen
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:142 .bss:00000010 NeuerDatensatzEmpfangen
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:148 .bss:00000011 SioTmp
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:154 .bss:00000012 DisplayLine
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:160 .bss:00000013 GetPPMChannelAnforderung
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:166 .bss:00000014 GetVersionAnforderung
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:172 .bss:00000015 DebugDataAnforderung
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:178 .bss:00000016 DebugDisplayAnforderung
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:184 .bss:00000017 DebugDisplayAnforderung1
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:190 .bss:00000018 GetExternalControl
.bss:00000019 ptr.6
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:196 .text:00000000 __vector_22
*COM*:000000a0 TxdBuffer
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:192 .bss:0000001b crc.1
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:250 .bss:0000001d crc1.2
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:251 .bss:0000001e crc2.3
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:252 .bss:0000001f buf_ptr.4
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:253 .bss:00000020 UartState.5
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:257 .text:0000006c __vector_20
*COM*:000000a0 RxdBuffer
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:473 .text:0000023c AddCRC
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:529 .text:0000029c SendOutData
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:729 .text:00000414 Decode64
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:842 .text:000004e8 BearbeiteRxDaten
*COM*:00000010 MotorTest
*COM*:0000000a VersionInfo
*COM*:0000000b ExternControl
*COM*:00000001 ConfirmFrame
*COM*:00000002 Timer3D
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1698 .text:00000c94 uart_putchar
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1714 .text:00000ca4 UART_Init
*COM*:00000002 Debug_Timer
*COM*:00000002 Kompass_Timer
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1767 .progmem.data:00000200 __c.0
C:\Users\Arthur-P\AppData\Local\Temp/ccCEaaaa.s:1772 .text:00000d2c DatenUebertragung
*COM*:00000002 Display_Timer
*COM*:00000008 WinkelOut
*COM*:00000042 DebugOut
*COM*:0000000e Data3D
 
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
LcdClear
ServoActive
__prologue_saves__
__epilogue_restores__
KompassValue
KompassStartwert
__divmodhi4
KompassRichtung
Mixer
MixerTable_WriteToEEProm
GetActiveParamSet
ParamSet_ReadFromEEProm
EE_Parameter
ParamSet_WriteToEEProm
__mulsi3
Umschlag180Nick
Umschlag180Roll
MotorenEin
Piep
LipoDetection
LIBFC_ReceiverInit
PPM_in
I2C_ReadBLConfig
BLConfig
I2C_WriteBLConfig
SetDelay
RemoteKeys
MenuePunkt
CheckDelay
DisplayBuff
Menu
DispPtr
Menu_Putchar
_printf_P
MaxMenue
IntegralNick
__divmodsi4
IntegralRoll
Parameter_UserParam1
Parameter_UserParam2
CopyDebugValues
ErsatzKompass
GIER_GRAD_FAKTOR
SummeNick
SummeRoll
Mess_Integral_Gier
memcpy_P
/branches/V0.80d-Arthur-P/version.txt
0,0 → 1,420
 
-------
V0.53 27.04.2007 H.Buss
- erste öffentliche Version
 
V0.53b 29.04.2007 H.Buss
- der FAKTOR_I war versehentlich auf Null, dann liegt der MikroKopter nicht so hart in der Luft
 
V0.53c 29.04.2007 H.Buss
- es gib ein Menü, in dem die Werte der Kanäle nach Nick, Roll, Gas,... sortiert sind.
Die angezeigten Werte waren nicht die Werte der Funke
 
V0.54 01.05.2007 H.Buss
- die Paramtersätze können jetzt vor dem Start ausgewählt werden
Dazu wird beim Kalibrieren der Messwerte (Gashebel oben links) der Nick-Rollhebel abgefragt:
2 3 4
1 x 5
- - -
Bedeutet: Nick-Rollhebel Links Mitte = Setting:1 Links Oben = Setting:2 usw.
- der Faktor_I für den Hauptregler ist hinzugekommen. Im Heading-Hold-Modus sollte er vergössert werden, was Stabilität bringt
 
V0.55 14.05.2007 H.Buss
- es können nun Servos an J3,J4,J5 mit den Kanälen 5-7 gesteuert werden
 
V0.56 14.05.2007 H.Buss
- es gab Probleme mit Funken, die mehr als 8 Kanäle haben, wenn mehrere Kanäle dann auf Null waren
- Funken, die nicht bis +-120 aussteuern können, sollten jetzt auch gehen
V0.57 24.05.2007 H.Buss
- Der Höhenregler kann nun auch mittels Schalter bedient werden
- Bug im Gier-Algorithmus behoben; Schnelles Gieren fürhrte dazu, dass der MK zu weit gedreht hat
- Kompass-Einfluss dämpfen bei Neigung
- Man kann zwischen Kompass FIX (Richtung beim Kalibrieren) und Variabel (einstellbar per Gier) wählen
- Der Motortest vom Kopter-Tool geht jetzt
- Man kann den Parametersätzen einen Namen geben
- Das Kamerasetting ist unter Setting 2 defaultmässig integriert
V0.58 30.05.2007 H.Buss
- Der Höhenregler-Algorithmus wird nun umgangen, wenn der Höhenreglerschalter aus ist
 
V0.60 17.08.2007 H.Buss
- "Schwindel-Bug" behoben
- Die Poti-Werte werden jetzt auf Unterlauf (<0) überprüft
- Poti4 zugefügt
- Es werden jetzt 8 Kanäle ausgewertet
- Kamera-Servo (an J7)
- Die Settings müssen überschrieben werden
V0.61 - V0.63 H.Buss 27.09.2007
- Poti 4 und Kanal 8 werden im Menü angezeigt
- ein paar Kleinigkeiten bei den DefaultKonstanten2 bereinigt
- Analog.c: Aktuell_ax korrigiert
- auf 32 Debug-Kanäle erweitert
- Loopings sind jetzt möglich und einzeln im KopterTool freischaltbar
- leichte Anpassungen im Gier - Geschwindigkeit und Drift
- die Hardwareversion V1.1 wird erkannt und das Programm stellt sich auf die geänderte Gyroverstärkung und die geänderten Portpins ein
- die Software startet nach dem Einschalten schneller, weil der Luftdruckoffset schneller gefunden wird
- die PPM-Ausgänge liegen wieder an den Pins an
- Details an der Sensordatenverarbeitung -> es fliegt sich geringfügig anders
- der MK ist bei wenig Gas nicht mehr so giftig -> soll das Landen vereinfachen
- I2C-Bus läuft jetzt sicher nach einer Störung wieder an
- Sticksignale werden präziser ausgewertet
- Stick-Kanäle werden ans Kopter-Tool übertragen
- Es muss die Version V1.47 des Kopter-Tool verwendet werden
- Die Settings werden auf Default zurückgesetzt
- am Piepen kann man die Fehlerart unterscheiden
1. einzelnes Piepen beim Einschalten und Kalibrieren
2. langsames Intervall mindestens 1 Sek -> Empfangsausfall
3. schnelleres Intervall mindestens 1 Sek -> Akku
4. sehr schnelles Intervall mindestens 1 Sek -> Kommunikation zu den Reglern gestört
V0.64 H.Buss 30.09.2007
- beim Gieren wurden die Achsen nicht hart genug geregelt
V0.65a H.Buss 15.10.2007
- Integral im Mischer wieder integriert
- Feinabstimmung im ACC/Gyro Abgleich -> 1/32 & 100
- ACC/Gyro Abgleich auch bei HH
 
V0.66a H.Buss 3.11.2007
- Messwertverarbeitung aus dem Analog-Interrupt entfernt
- Analogmessung hängt jetzt am FC-Timing
- Looping-Stick-Hysterese eingebaut
- Looping-180°-Umschlag einstellbar
- Achsenkopplung: Gierbewegung verkoppelt Nick und Roll
- Lageregelung nach ACC-Sensor verbessert
- zusätzlicher I-Anteil in der Lageregelung verbessert die Neutrallage
- Gyrodriftkompensation überarbeitet
- Bug in der Gier-Stick-Berechnung behoben
- Gyro-Messung auf 1kHz beschleunigt
V0.67a H.Buss 16.11.2007
- der Hauptregler-I-Anteil wirkt jetzt nur noch auf den Winkel (ausser im HH-Mode)
- Gyro-Acc-Abgleich jetzt wieder in jedem Zyklus
- Feinabstimmung
- Beim HH-Modus gab es noch Bugs
 
V0.67e H.Buss 29.11.2007
- Parameter: Dynamic Stability und Driftfaktor eingeführt
- Die Namen der Analogwerte werden jetzt zum Koptertool übertragen
- Kompatibilität zum Koptertool erhöht
 
V0.67f H.Buss 04.12.2007
- Das Integral des Hauptreglers wird jetzt linear entladen und nicht mehr proportional
- Schub für Gier wird jetzt auf den Gaswert begrenzt, dadurch steigt der MK nicht mehr beim Gieren. Gier ist allerdings nicht mehr so agressiv
- Die ACC-Nullwerte können jetzt dauerhaft im EEPROM gespeichert werden (Stick:Vollgas und Gier rechts)
V0.68a I.Busker 28.12.2007
- SPI.c & SPI.h ins Projekt aufgenommen
SPI-Kommuikation kann in SPI.h aktiviert/deaktivert werden
 
V0.68c H.Buss 05.01.2008
- Stickauswertung verbessert -> träger und präziser
- Alle Settings angepasst
 
V0.69e H.Buss 05.05.2008
- kleinere Bugs beseitigt
- Schneller Sinkflug jetzt möglich
- Min- und Maxgas in den Settings geändert
- Lagewinkel wird jetzt in 0,1 Grad an Kompass und Navi gesendet
- Kalibrierung für MK3Mag -> Nick unten beim Kalibrieren
- Kompassroutine um den Ersatzkompass (Gyro unterstützt Kompasswert) erweitert
V0.69h H.Buss 21.05.2008
- STICK_GAIN = 4 eingeführt. Das erhöht die Auflösung der Sollwerte. Stick_P und Stick_I müssen nun um Faktor 4 erhöht werden
- SenderOkay auch an das Naviboard übertragen
- Bessere Parameter bei Senderausfall
V0.69j H.Buss 30.05.2008
- Höhere Präzision der Achsenkopplung
 
V0.69k H.Buss 31.05.2008
- Bug in SPI.C behoben
- in 0.69h war ein Bug, der zu ungewollten Loopings führen konnte
 
V0.69L H.Buss 14.06.2008
- feinere Cam-Servo-Auflösung
V0.70a H.Buss 01.07.2008
- Unterstützung der V1.3-Hardware mit automatischem Hardware-Gyro-Abgleich
 
V0.70b H.Buss 14.07.2008
- flexible Einstellungsmöglichkeit von J16 und J17 (Transistorausgänge)
- eigene Parameter für GPS-Naviboard
- eigener Parameter für ExternalControl (war vorher UserParameter1 bzw. 8)
- neue Parameter im EEPROM-Datensatz: J16Bitmask, J16Timing, ExternalControl, Navi...
- MikroKopterFlags eingeführt, damit das Navi den Status des MKs kennt
- KopterTool-Kompatibilität auf 8 erhöht
V0.70c H.Buss 30.07.2008
- Parameter der Datenfusion leicht modifiziert
- EEPROM-Parameter für Looping-Umschlag angepasst (von 100 auf 85)
- MaxStick wird auf 100 begrenzt
 
V0.70d H.Buss 02.08.2008
- Transistorausgänge: das oberste Bit der Blinkmaske (im KopterTool linkes Bit) gibt nun den Zustand des Ausgangs im Schalterbetrieb an
0.71b: H.Buss 19.10.2008
Kommunikation zum Navi erweitert:
- Beeptime jetzt 32Bit
- Datenfusion und Driftkopensation wird durch NaviBoard unterstützt
0.71c: H.Buss 20.10.2008
- LoopConfig heisst jetzt BitConfig
- 3-Fach-Schalter für Höhensteuerung möglich -> kann man mit GPS-Schalter zusammenlegen
- bei den Settings wurde Setting[0] mit abgespeichert, welches es nicht gab.
- in Zukunft werden bei neuen EEPROM-Settings die Kanäle von Setting 1 übernommen
- Variablen NaviWindCorrection, NaviSpeedCompensation, NaviOperatingRadius eingeführt
 
0.71f: H.Buss 15.11.2008
- Ausschalten der Höhenregelung per Schalter um 0,3 sek verzögert
- bei der seriellen Übertragung hat die FC jetzt als SlaveAdresse die 1
- VersionInfo.NaviKompatibel eingeführt
- wenn manuell gegiert wird, wird der GyroKompass-Wert auf den Kompasswert gesetzt
- Luftdruckwert wird an das Navi übertragen
- Der Baro-Offset wird jetzt nachgeführt, um den Messbereich zu erweitern. Geht nur bei Höhenregler mit Schalter
- Debugdaten können jetzt mit 'f' gepollt werden
0.71g: Gregor 09.12.2008
- Kommunikation überarbeitet
Infos hier: http://www.mikrokopter.de/ucwiki/en/SerialCommands
0.71h: H.Buss 15.12.2008
- Freigegebene Version
- NaviAngleLimitation als Parameter zum Navi implementiert
- Antwort auf CMD: 't' entfernt
0.72d: H.Buss 22.01.2009
- OCTO als Compilerschalter
- Unterstützung der FC 2.0 (ME)
- GYRO_D eingeführt
- Achsenkopplung jetzt auch auf Nick/Roll-Bewegung
0.72e: H.Buss 27.01.2009
- die 0.72d hatte kein Integral im Gier
- Parameter eingeführt:
EE_Parameter.NaviGpsPLimit
EE_Parameter.NaviGpsILimit
EE_Parameter.NaviGpsDLimit
EE_Parameter.NaviPH_LoginTime
EE_Parameter.AchsKopplung2
EE_Parameter.CouplingYawCorrection
 
0.72f: H.Buss 28.01.2009
- Bug im Ersatzkompass entfernt
 
0.72h: H.Buss 05.02.2009
- Algorithmen beschleunigt -> Floats durch Fixkomma ersetzt
- Achsentkopplung weiter verbessert
- Nick- und Roll im Octo-Mischer auf jeweils vier Motoren aufgeteilt
 
0.72i: H.Buss 07.02.2009
- Abtastrate von 1kHz auf 2kHz erhöht
 
0.72j: H.Buss 09.02.2009
- neue Implementierung der Servoausgänge
 
0.72k: H.Buss 10.02.2009
- Abtastrate auf 5kHz erhöht
 
0.72L: H.Buss 13.02.2009
- Signalfilterung überarbeitet
- OCTO2 implementiert
 
0.72M: H.Buss 13.02.2009
- Code Cleanup
 
0.72o: H.Buss 24.02.2009
- Abtastrate auf 2kHz
- HW-Version an Navi
- neuer Datensatz 'c' -> Lagedaten für 3D-Grafik
- Auswerteroutine für Spectrum-Satteliten implementiert
- Kanalsettings werden beim Parameterreset nicht mehr gelöscht
- die Driftkompensation wird jetzt feiner aufgelöst --> EE_Parameter.Driftkomp muss mal 8 genommen werden
- die Integrale und ACC-Werte werden jetzt im Scope in ca. 0,1° angezeigt (wie beim NaviBrd)
0.72p: H.Buss 01.03.2009
- Octo3 erstellt
- Analogwerte umbenannt
 
0.73a-d: H.Buss 05.04.2009
- MixerTabelle implementiert
- I2C-Bus auf bis zu 12 Motoren erweitert
- die Busfehler der BL-Regler werden im Menü angezeigt
- Revision der MixerTabelle eingeführt
- MixerTabelle wird bei Parameterreset neu initialisiert
- Motortest auf [12] erweitert
- Motorschalter nicht mehr 3-Stufig
 
0.74a
- Datenfusion im Flug auch, wenn ACC-Z < 512
- Wert für die Luftdruck-Messbereichserweiterung abgefangen
 
0.74d
- Die Driftkompensation ist jetzt dreistufig -> 0,5% pro sekunde zusätzlich eingeführts
0.75a G.Stobrawa 22.5.2009
- Extern Control also received from NC via SPI
 
0.75b H.Buss 27.05.2009
- Spektrum-Singale schalten den PPM-Eingang aus
- max. 2 Sekunden nach dem Start auf die BL-Regler warten
- Automatische Zellenerkennung, wenn Spannungswarnung < 5,0V
- Bei automatischer Zellenerkennung piept es je nach Zellenzahl
- EE_DATENREVISION auf 76 erhöht
- Servo:
- Roll-Servo für FC ME implementiert
- Update-Cmd stoppt Servos
- Servos werden erst nach dem ersten Kalibrieren aktiviert
 
0.75c G.Stobrawa 25.7.2009
- Übertragung der Servo-Settings zur NC
- RSSI wird an NC gesendet, derzeit wird der Wert nicht gesetzt
- Bugfix Messbereichsumschaltung des Luftdrucksensors springt
- Auflösung des Luftdrucks nun bis auf 1 cm (5mal feiner) zur genaueren Berechnung des D-Anteils
- Unterstützung von Warnings-Bitmasks für die J16, J17-Outputs bei Unterspannung
- Unterspannung für einzelne Zelle´n von 3.2V auf 3.3V angehoben (9.6V --> 9.9V für 3S)
0.75d H.Buss 13.8.2009
- RC-Routine: Empfangsausfall soll sicherer erkannt werden
- Zellenerkennung nun auch beim Speichern der Settings
- Warnungs-Blinkmaske auch bei Empfangsausfall
 
0.75e H.Buss 18.8.2009
- LED-Blinken kann an die Motoren gekoppelt werden
- Feinabstimmung des Höhenreglers
0.75f H.Buss 27.8.2009
- D-Anteil des Höhenreglers jetzt mit Quadratischer Komponente
- Lagewinkel wirkt jetzt mit 1/Cos(x) mit in den Höhenregler
- leichte Modifikation der RC-Empfangroutine
 
0.75g H.Buss 31.08.2009
- die Akkuspannung geht jetzt antiproportional ins Gas ein
 
0.75h H.Buss 3.09.2009
- im Höhenregler werden jetzt die Stellwerte begrenzt --> max +- 16% vom geschätzten Schwebegas
 
0.75i H.Buss 7.09.2009
- GpsZ vom Navi zur FC für den Höhenregler
- "hoovergas-Variation" als Parameter
- Kompatibilität zu NC und PC erhöht
 
0.75j H.Buss 17.09.2009
- Laufzeitzähler eingebaut
 
0.75k H.Buss 22.09.2009
- zweite Variante (Gregor) der Höhenregelung implementiert
- umschaltbare RC-Routine
 
0.75L H.Buss 23.09.2009
- SollHoehe und Gas geht nun auch an die NC
 
0.75M H.Buss 29.09.2009
- Spektrum-Timing wird nun überwacht
- die FC kann nun stand-Alone als Kamera-Stabilizer eingesetzt werden, weil die Servos aktiviert werden, wenn I2C fehlt
0.75N H.Buss 29.09.2009
- Hoover-Stickpunkt wird bei aktivem Höhenregler nicht nachgeführt
- Hoover-Stickpunkt kann per Parameter fest eingestellt werden
- Baro-Messbereichserweiterung auch bei aktiviertem Höhenregler
- Gyro_Gier_P und Gyro_Gier_I eingeführt
- I2C_fehler-Zähler jetzt in den Analogdaten
 
0.75o H.Buss 01.10.2009
- der Höhenregler wird jetzt nur alle 10ms bearbeitet
- Baro-Messbereichserweiterung auch bei Poti als Sollwert
 
0.76d H.Buss 10.10.2009
- bei aktiver Messbereichserweiterung wird die aktuelle Höhe übernommen
 
0.76e H.Buss 27.10.2009
- es werden beim Start einmal alle BL-Regler angesprochen, damit BL-Regler#8 auch einen Selbsttest macht
- S3D-ACT-Summensignal als Compilerschalter
 
0.76f H.Buss 05.11.2009
- untere Spannungsgrenze der Unterspannungswarnung (9,3V) entfernt
0.76g H.Buss 10.11.2009
- Casting-Fehler in der Gas-Berechnung
 
0.77a H.Buss 11.11.2009
- Erweiterung auf 12 Kanäle
- Bei Koptertool-Kanalabfrage kein Empfangsausfall-Piepsen
- serielle Kanalerweiterung eingebaut -> PPM_in auf 25 erweitert
- Servos3-5 einstellbar
- neues Kommando "f" -> schaltet auf anderen Parametersatz um
 
0.77b H.Buss 09.12.2009
- JetiBox: Menü wird übertragen
- neu: FCFlags |= FCFLAG_I2CERR;
- LED-Warn-Blinken nun mit festem Timing und abschaltbar
0.77c H.Buss 07.01.2010
- zwei weitere Spektrum-Varianten implementiert
 
0.77d H.Buss 25.01.2010
- Strom-Messung eingebaut
0.78a H.Buss 03.02.2010
- Bugfix: Settingsumschaltung im Flug
 
0.78b H.Buss
- veröffentlichte Version
 
0.78c H.Buss + G.Stobrawa 22.2.2010
- Bewegungsbegrenzung an Servo 3 to 5 der FC 2.0
- Theoretischer Variablenüberlauf bei Vario-Höhenregler
- Anzeige des "SPI RX communication error" wenn GPS Option nicht aktiv
- LED-Schwellwerte fürs Blinken waren unterschiedlich
 
0.78c H.Buss + G.Stobrawa 04.3.2010
- Code cosmetics
 
0.78f H.Buss + I.Busker 23.3.2010
- Unterstützung für Jeti-Expander
- Begrenzung des Vario-Höhenreglers auf ein 10m-Fenster um Überläufe zu verhindern
- Einführung eines Vario-Zeichens (+/-/ ) auf der Jetibox
- BL-Timeout beim Start erhöht
 
0.80a H. Buss + G.Stobrawa 20.5.2010 - 22.7.2010
- Motoren Starten nicht ohne Kalibrierung
- Unterstützung der BL2.0-Regler
- statt 8 nun 10 Bit Auflösung der Lageregekung
- Unterstützung der BL2.0-Regler Konfiguration via MK-Tool
- Parametersätze werden per I2C an die BL-Regler durchgereicht
- "Care-Free" implementiert
- Freie Belegung der "Vorne"-Richtung
- nur wenn Motoren laufen: Beepen, wenn Carefree ohne Navi oder ohne gültigen MK3Mag-Wert
- nur wenn Motoren laufen: Beepen wenn NC plötzlich ausfällt
- #define RECEIVER_SPEKTRUM_EXP eingeführt
- #define SWITCH_LEARNS_CAREFREE eingeführt
- Schwerpunktanzeige in den 3D-Daten
- Checksummen gesicherte Datenablage im EEProm
- Fehlerdiagnose implementiert (Wiki: ErrorCodes)
- ErrorCode aufs Jeti-Display
 
- JetiMenü: bis acht Temperaturen der BL-Regler
- GPSInfo.Speed im Jeti-Display
- Compass-Richtung nun im Jeti-menü
 
- diverse Änderungen im Höhenregler
- P wirkt schwächer
- D wirkt stärker
- Anpassung der Höhenregelung auf Level des Hoovergases
- AccZ schneller nachführen
 
Parameter modifiziert:
- EEPROM-Kompatibilität auf 84 -> Parameter werden resettet
- EE_Parameter.Hoehe_ACC_Wirkung = 0; // war 30
- EE_Parameter.Hoehe_HoverBand = 8; // war 5
- Notgas = 45
- NotgasZeit = 90
- Beginnersetting: EE_Parameter.DynamicStability = 70;
- Neu: GyroStability = 6
- GPS-Login-Time auf 2 reduziert