Skip to content

Experimental serial support for atmega 328p #24

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 48 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 47 commits
Commits
Show all changes
48 commits
Select commit Hold shift + click to select a range
9c664c0
Optimised MakeFile, saved ~250 bytes
JadinAndrews Jul 29, 2016
2f45609
removed stk500 reference
JadinAndrews Jul 29, 2016
a509b5f
updated main.c
JadinAndrews Jul 29, 2016
a5f2544
Update main.c
JadinAndrews Jul 29, 2016
0095d57
Merge branch 'master' of https://github.com/JadinAndrews/avr_boot
JadinAndrews Jul 29, 2016
674616c
updated main.c
JadinAndrews Jul 29, 2016
8d01d8a
Added stk500v1
JadinAndrews Jul 29, 2016
61001a8
added compiled bootloader for 328p, for testing. Not working yet.
JadinAndrews Apr 25, 2017
62dcafe
A few small changes, removed dead code
JadinAndrews Apr 25, 2017
4a63368
added delay between stkv500 anc checkfile calls
JadinAndrews Apr 25, 2017
a12c7cc
added FRIMWARE.BIN for testing
JadinAndrews Apr 28, 2017
dd93e07
Added working bootloader with serial and mmc flashing :)
JadinAndrews Apr 28, 2017
5ef50d2
Delete FIRMWARE.BIN
JadinAndrews Apr 28, 2017
57f35b2
Delete avr_boot_328p.bin
JadinAndrews Apr 28, 2017
fc510d3
stk500v1 now returns a value on failure or success
JadinAndrews Apr 29, 2017
49355a7
Merge branch 'master' of https://github.com/JadinAndrews/avr_boot
JadinAndrews Apr 29, 2017
19c814f
new build, with a few tweaks
JadinAndrews Apr 29, 2017
768f2da
added a check to only try mmc if uart fails
JadinAndrews Apr 29, 2017
d0b6b19
added a few cable select options
JadinAndrews Apr 29, 2017
917552b
Changed baud rate to 19200
JadinAndrews Apr 29, 2017
37a80c8
Now Serial can be enabled in the makefile
JadinAndrews Apr 29, 2017
2d96390
serial enabled by default
JadinAndrews Apr 29, 2017
248e554
Renamed a few things for clarity
JadinAndrews Apr 29, 2017
a7e4b80
updated gitignore to ignore .sh files
JadinAndrews Apr 29, 2017
6f69542
Delete flashBoot328p.sh
JadinAndrews Apr 30, 2017
6668ffd
a few corrections
JadinAndrews Apr 30, 2017
f531757
Merge branch 'master' of https://github.com/JadinAndrews/avr_boot
JadinAndrews Apr 30, 2017
5c365ce
Merged with zevero:master
JadinAndrews Apr 30, 2017
38d959a
Merge remote-tracking branch 'upstream/master'
JadinAndrews Apr 30, 2017
2d94fac
modified makefile
JadinAndrews Apr 30, 2017
848ffa2
modified Makefile
JadinAndrews Apr 30, 2017
7bf992d
small changes
JadinAndrews Apr 30, 2017
371b995
updated git ignore
JadinAndrews Apr 30, 2017
95bdbd7
removed os file
JadinAndrews Apr 30, 2017
fbce5e6
updated readme
JadinAndrews Apr 30, 2017
971af66
small change
JadinAndrews Apr 30, 2017
3094766
Updated Makefile, default is not serial.
JadinAndrews Apr 30, 2017
b5fb472
removed tabs
JadinAndrews Apr 30, 2017
4278b63
Made fat32 the default
JadinAndrews May 1, 2017
1e9c949
New builds with fat32 support only
JadinAndrews May 1, 2017
80c6dd4
Added options in makefile for Fat16/32 support.
JadinAndrews May 1, 2017
9f3a3a2
Added new builds
JadinAndrews May 2, 2017
2e5f34a
Added 1284p definitions?
JadinAndrews May 4, 2017
6296062
Added build for 1284
JadinAndrews May 4, 2017
ada77ea
Uodated Makefile CSRC section
JadinAndrews May 13, 2017
6f06fec
Added 644P defs + fixed USART port numbering
JadinAndrews May 13, 2017
e17b142
Builds for Atmega644P
JadinAndrews May 13, 2017
2c99a6c
Fixed BOOT_ADR for Atmega644p, and rebuit
JadinAndrews May 13, 2017
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,31 @@
#------------------------------------------------------------------
# Change these defs for the target device

MCU_TARGET = atmega1284p # Target device to be used (32K or larger)
BOOT_ADR = 0x1F000 # Boot loader start address [byte] NOT [word] as in http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega1284p
MCU_TARGET = atmega644p # Target device to be used (32K or larger)
BOOT_ADR = 0x7000 # Boot loader start address [byte] NOT [word] as in http://eleccelerator.com/fusecalc/fusecalc.php?chip=atmega644p
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct value for BOOT_ADR is 0xF000

F_CPU = 16000000 # CPU clock frequency [Hz] NOT critical: it just should be higher than the actual Hz
SD_CS_PORT = PORTB # Data Register of the SD CS pin
SD_CS_DDR = DDRB # Data Direction Register of the SD CS pin
SD_CS_BIT = 4 # Bit of the SD CS pin
USE_LED = 0 # Debug with two (defined in asmfunc.S)
USE_UART = 0 # Debug on Serial. 0 ... deactivate or divider of http://wormfood.net/avrbaudcalc.php for baud rate!
USE_SERIAL_FLASHING = 1 # Enable experimental serial flashing support. Currently only atmega328p is supported.
USE_FAT16 = 0 # Enable Fat16 support, disabled by default. If enabled, disable Fat32 to keep size of bootloader within limits
USE_FAT32 = 1 # Enable Fat32 support, enabled by default to allow the use of sd cards > 2GB
#------------------------------------------------------------------
ifeq ($(strip $(USE_UART)),0)

CSRC = main.c pff/src/pff.c diskio.c
else
CSRC = main.c pff/src/pff.c diskio.c uart/uart.c
ifneq ($(strip $(USE_UART)),0)
CSRC += uart/uart.c
endif
ifneq ($(strip $(USE_SERIAL_FLASHING)),0)
CSRC += uart/uart.c stk500v1.c prog_flash.c
endif

TARGET = avr_boot
ASRC = asmfunc.S
OPTIMIZE = -Os -mcall-prologues -ffunction-sections -fdata-sections
DEFS = -DBOOT_ADR=$(BOOT_ADR) -DF_CPU=$(F_CPU) -DUSE_LED=$(USE_LED) -DUSE_UART=$(USE_UART) -DSD_CS_PORT=$(SD_CS_PORT) -DSD_CS_DDR=$(SD_CS_DDR) -DSD_CS_BIT=$(SD_CS_BIT)
OPTIMIZE = -Os -mcall-prologues -ffunction-sections -fdata-sections -fwhole-file -flto -funsigned-char -fno-split-wide-types -fno-inline-small-functions -ffreestanding -fno-jump-tables
DEFS = -DBOOT_ADR=$(BOOT_ADR) -DF_CPU=$(F_CPU) -DUSE_LED=$(USE_LED) -DUSE_UART=$(USE_UART) -DSD_CS_PORT=$(SD_CS_PORT) -DSD_CS_DDR=$(SD_CS_DDR) -DSD_CS_BIT=$(SD_CS_BIT) -DUSE_SERIAL_FLASHING=$(USE_SERIAL_FLASHING) -DUSE_FAT16=$(USE_FAT16) -DUSE_FAT32=$(USE_FAT32)
LIBS =
DEBUG = dwarf-2

Expand Down
63 changes: 63 additions & 0 deletions board-arduino.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
/**********************************************************/
/* board-arduino.h */
/* Copyright (c) 2010 by thomas seiler */
/* -------------------------------------------------------*/
/* */
/* This program 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 of the License, or */
/* (at your option) any later version. */
/* */
/* This program 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 program; if not, write */
/* to the Free Software Foundation, Inc., */
/* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
/* */
/* Licence can be viewed at */
/* http://www.fsf.org/licenses/gpl.txt */
/**********************************************************/


#ifndef _board_h_
#define _board_h_

/* define BAUD_RATE
* This is the baud rate for the serial port.
* The original Makefile seemed to use 19200 by default, and
* 57600 if the target was a atmega328p or atmega1280
*/
#if defined(__AVR_ATmega328P__) || defined(__AVR_ATmega1280__)
#define BAUD_RATE 19200
#if F_CPU <= 8000000L
#define DOUBLE_SPEED
#endif
#else
#define BAUD_RATE 19200
#endif


/* define MAX_TIME_COUNT
* This is the maximum amount of time that the bootloader waits for
* serial activity before launching the main_app.
* The original Makefile seemed to use F_CPU>>4 in all cases, except for
* ng and lillypad, where F_CPU>>1 was used. (which is longer!)
* I think using F_CPU>>4 for all board is ok for this generic arduino header.
*/
#define MAX_TIME_COUNT F_CPU>>4

/* LED
* This will be used to blink a LED during flashing
*
*/

#define LED_PORT
#define LED_PIN

#endif
253 changes: 253 additions & 0 deletions build/atmega1284p_cs4_16000000L_serial_fat32.hex
Original file line number Diff line number Diff line change
@@ -0,0 +1,253 @@
:020000021000EC
:10F000000C9446F80C9465F80C9465F80C9465F82B
:10F010000C9465F80C9465F80C9465F80C9465F8FC
:10F020000C9465F80C9465F80C9465F80C9465F8EC
:10F030000C9465F80C9465F80C9465F80C9465F8DC
:10F040000C9465F80C9465F80C9465F80C9465F8CC
:10F050000C9465F80C9465F80C9465F80C9465F8BC
:10F060000C9465F80C9465F80C9465F80C9465F8AC
:10F070000C9465F80C9465F80C9465F80C9465F89C
:10F080000C9465F80C9465F80C9465F811241FBE77
:10F09000CFEFD0E4DEBFCDBF11E0A0E0B1E0EEE8FD
:10F0A000FFEF01E00BBF02C007900D92AE30B10739
:10F0B000D9F723E0AEE0B1E001C01D92A034B20761
:10F0C000E1F70E9447FA0C94C5FF0C9400F8559A9A
:10F0D000569A08955D9A08955D9808955E9A0895E8
:10F0E0005E9808955E9B0C946EF80C9470F85D9B8E
:10F0F0000C946AF80C946CF8249A259A279A2E9A04
:10F10000089580EA31973197319700008A95D1F7B9
:10F11000089502D02C9801C02C9A8FEF98E087FDBB
:10F120002D9A87FF2D98880F1E9983952F9A2F98D7
:10F130009A95A9F70895FB018BBF83E08093570050
:10F14000E8958091570080FDFCCF81E180935700C6
:10F15000E89508950F921F928BBFFB01DA0190E8AA
:10F160000D901D9081E080935700E89532969A9516
:10F17000B9F7FB0185E080935700E895809157002F
:10F1800080FDFCCF81E180935700E8951F900F90A0
:10F19000089581E492E4AFE0B0E02091C00027FF41
:10F1A00003C08091C60008950197A109B109A9F78C
:10F1B0008FEF08959091C00095FFFCCF8093C6001B
:10F1C00008950F931F93E0913D03F0913E039B013F
:10F1D000AC01225031094109510986819781A085EE
:10F1E000B1850297A109B109281739074A075B07BA
:10F1F00078F4A281B0E00E9474FF02891389248907
:10F200003589600F711F821F931F1F910F91089501
:10F2100060E070E0CB01F9CF0F931F93CF93DF93A2
:10F22000EC01E0913D03F0913E03198218826C815C
:10F230007D818E819F81613071058105910519F174
:10F240000681178120853185601771078207930732
:10F25000D0F4611571058105910521F466857785E6
:10F2600080899189688779878A879B870E94E1F8DE
:10F270006C877D878E879F8780E090E0DF91CF91BC
:10F280001F910F91089581E090E0F8CFCF92DF9227
:10F29000EF92FF92CF93C82F6A017B0187FF09C0CD
:10F2A00040E050E0BA0187E70E9446F9823000F55D
:10F2B000CF770E9489F88C2F0E948EF88F2D0E94A4
:10F2C0008EF88E2D0E948EF88D2D0E948EF88C2D3A
:10F2D0000E948EF8C03491F0C83491F487E80E94FF
:10F2E0008EF8CAE00E948DF887FF02C0C150D1F7A6
:10F2F000CF91FF90EF90DF90CF90089585E9EFCF09
:10F3000081E0EDCFA0E0B0E0E8E8F9EF0C9489FFF0
:10F310006C01790180913F0383FD07C089E0440FB0
:10F32000551F661F771F8A95D1F781E50E9446F920
:10F33000882351F0C1E0D0E00E948CF8CE01CDB717
:10F34000DEB7E8E00C94A5FFC0E4DCE90E948DF88C
:10F350008F3F19F42197D1F7EDCF8E3F59F7C2E0D7
:10F36000D2E0C01BD10BCE19DF09E114F10431F05A
:10F370000E948DF881E0E81AF108F7CF0E948DF81D
:10F38000F60181936F0101501109C1F70E948DF8B8
:10F390002197E1F7C0E0D0E0CFCFA0E0B0E0E3ED0F
:10F3A000F9EF0C9489FFEC016A017B0102E010E0A7
:10F3B0002EEF31E00E9482F9892BD1F48881998166
:10F3C00085359A4AB9F422E530E0B701A601CE01AD
:10F3D0000E9482F9892B81F481E0288139812634C9
:10F3E000314409F480E0CDB7DEB7E8E00C94A5FF26
:10F3F00083E0F9CF82E0F7CF81E0F5CFA4E0B0E081
:10F40000E4E0FAEF0C9489FF623071058105910503
:10F4100028F461E070E080E090E035C0E0913D03C9
:10F42000F0913E03C680D780E084F1846C157D05A1
:10F430008E059F0570F72081233059F79B012F77A8
:10F440003327220F331F220F331FAB01BC01A7E06C
:10F450007695679557954795AA95D1F7C284D38439
:10F46000E484F5844C0D5D1D6E1D7F1D04E010E0ED
:10F47000CE0101960E9482F9892B59F669817A8121
:10F480008B819C819F702496E8E00C94A5FFA2E4F8
:10F49000B0E0EDE4FAEF0C947FFF83E38093C400C7
:10F4A0001092C5001092C00086E08093C20088E1EF
:10F4B0008093C10000E0F12CDD24D394A3E0CA2E98
:10F4C000B5E0BB2E11E1A12E0E94C9F8182F8033A0
:10F4D000F1F08F3F09F414C1FF2009F40BC181350D
:10F4E00009F408C1813409F446C0853509F447C0E0
:10F4F000863509F4B6C4823451F0853441F085373D
:10F5000031F08F7E843631F0103509F05EC0E12C89
:10F51000F12C16C00E94C9F8809312020E94C9F80B
:10F52000809311020E94C9F891E0853409F090E0BF
:10F5300090931002143671F4E0901102F0901202D0
:10F5400070E1872E71E0972EC401805191408E1595
:10F550009F05C8F00E94C9F88032E1F784E10E945B
:10F56000DAF8113411F580911001803891F482E0BD
:10F570000E94DAF826C0EE24E394F12CE1CFE2E019
:10F58000EE2EF12CDDCF0E94C9F8F40181934F01DA
:10F59000DBCF813811F481E0EBCF823811F480E1C8
:10F5A000E7CF883939F583E0E3CF153589F48091C9
:10F5B000100190911101880F991F90930F01809372
:10F5C0000E0180E10E94DAF801E0FF24F3947CCF81
:10F5D000163509F030C480911001803359F48091C0
:10F5E0001201811102C08EE1C3CF813009F02CC419
:10F5F00087E9BECF80E0BCCF143609F027C48091E4
:10F6000010028823F9F010E0812F90E02091110280
:10F610003091120282179307A0F6805F9E4FFC0183
:10F62000608180910E0190910F010E9444FF8091B2
:10F630000E0190910F01019690930F0180930E019E
:10F640001F5FE2CFF999FECF20910E0130910F019B
:10F65000790100E010E0F70100935B00C0925700D1
:10F66000E89507B600FCFDCFA0E1B1E080E090E0B6
:10F670004D915D912901480E591E612C712C0A0192
:10F68000F20160925B00D0925700E8951124029637
:10F690008115F1E09F0761F7F70100935B00B092DD
:10F6A0005700E89507B600FCFDCFA0925700E895FB
:10F6B00088CF8091100200910E0110910F018823D4
:10F6C000B1F0C8010E943CFF0E94DAF80F5F1F4FA3
:10F6D00010930F0100930E01FFEFEF1AFF0A8091C4
:10F6E000110290911202E816F90618F36ACFF80198
:10F6F0008491EACF84E10E94DAF880E10E94DAF88E
:10F70000013051F480E090E0FC01259134912F3FCD
:10F710003F4F11F0FC010995CE01059623969FAF4E
:10F720008EAF23973E0195E3690E711C10923E0344
:10F7300010923D030E947CF814E60E9481F811505B
:10F74000E1F71AE00E948CF81150E1F740E050E038
:10F75000BA0180E40E9446F9182F813009F081C077
:10F760004AEA51E060E070E088E40E9446F98130A6
:10F7700009F079C0FE0131967F018F010E948DF85A
:10F78000F80181938F0123968EAD9FAD23978E173D
:10F790009F07A1F78B81813009F063C08C818A3A81
:10F7A00009F05FC050E1C52E57E2D52E40E050E091
:10F7B00060E070E489EE0E9446F981114BC040E0A0
:10F7C00050E0BA018AE70E9446F981114AC00E94BE
:10F7D0008DF8F70181937F010E171F07C1F789810B
:10F7E00086FF6AC01CE010933F030E948CF811232F
:10F7F00009F41AC140E050E0BA01CE0101960E941E
:10F80000CDF9813009F00CC100E110E02EEB31E0C0
:10F8100040E050E0BA01CE0101960E9482F9892BA6
:10F8200009F44CC081E090E0892B09F400C180E02C
:10F8300090E0FC01259134912F3F3F4F09F0EDC23C
:10F8400080E593EC20E931E0F9013197F1F7019778
:10F85000D9F76CCF0E9481F891E0C91AD10809F05C
:10F86000A5CF10E0C0CF40E050E0BA0189EE0E9481
:10F8700046F98230C0F412E009EE40E1E42E47E29E
:10F88000F42E40E050E0BA01802F0E9446F9811129
:10F890000CC040E052E060E070E080E50E9446F974
:10F8A0008111DFCFA0CF01E4E8CF0E9481F8F1E021
:10F8B000EF1AF10831F7D5CF14E095CF8D81811182
:10F8C00003C086E090E0B0CFC984DA84EB84FC8486
:10F8D000B701A601CE0101960E94CDF9833009F44B
:10F8E000A1CF8111EECF04E210E02DE030E0B701AE
:10F8F000A601CE0101960E9482F9892B09F092CFD0
:10F900002A853B8540E050E0211531054105510530
:10F9100021F4288D398D4A8D5B8DAC81B0E00E9439
:10F9200074FF4B015C018A819B81A0E0B0E0C80EAE
:10F93000D91EEA1EFB1EC0921D03D0921E03E09248
:10F940001F03F09220032981209315032D803E8010
:10F9500030921803209217034F81588560E070E0C1
:10F96000411551056105710521F44C895D896E8948
:10F970007F8934E0369427943A95E1F7412C512C55
:10F98000481B590B6A0B7B0BCB01BA01681979092B
:10F990008A099B09621973098409950930E040E0DE
:10F9A00050E00E9452FFDA01C9010296A11DB11D6B
:10F9B0008093190390931A03A0931B03B0931C0325
:10F9C000873F9F4FA105B10508F47BCF83E080936B
:10F9D000130388A199A1AAA1BBA1809321039093AD
:10F9E0002203A0932303B0932403C20CD31CE41C72
:10F9F000F51C8C0C9D1CAE1CBF1C809225039092A4
:10FA00002603A0922703B09228031092140383E1E7
:10FA100093E090933E0380933D0380E090E004CF19
:10FA2000C12CD12C76015ACF82E090E0FDCEE0903F
:10FA30003D03F0903E03E114F10409F49CC1F70189
:10FA4000118278A66FA219A61AA61BA61CA610E002
:10FA5000A12E11E0B12E00E2502EEFA1F8A5DF019A
:10FA6000CF010B968A179B07E9F420E090E088E02D
:10FA700041E0490FD501A90FB11D9C919132A0F031
:10FA80009F3291F09E3209F4E7C1281768F4DF0134
:10FA9000A20FB11D9C93382F81E0820F282F942F45
:10FAA000832FE6CF5D92DECFA40EB11C81E09132B0
:10FAB00008F080E08387CE0185960E940CF96C01E6
:10FAC000892BC9F42DA13EA12F703327B5E0220F59
:10FAD000331FBA95E1F749A95AA96BA97CA900E29D
:10FAE00010E0CE0101960E9482F9892B09F487C0AB
:10FAF000CC24C394D12CC1109ACE212C312C2101BD
:10FB000040E051E06FEF70E083E192E00E9435FF4A
:10FB1000E0903D03F0903E03E114F10409F450C07D
:10FB2000F701818180FF4CC0828D938DA48DB58DAE
:10FB300046895789608D718D841B950BA60BB70B79
:10FB40008F3F9105A105B10529F020F080E091E0FB
:10FB5000A0E0B0E06C0133E1832E32E0932EC114BB
:10FB6000D10471F1F70186899789A08DB18DAC011F
:10FB7000BD01517066277727452B462B472B09F08F
:10FB800021C112811150AC01BD0129E07695679524
:10FB9000579547952A95D1F7142309F0FCC0892B76
:10FBA0008A2B8B2B09F0EBC0668D778D80A191A1FC
:10FBB000F701623071058105910508F0E8C01182F6
:10FBC000A3E1B2E0B201A1016BBFFA0197918D915F
:10FBD000981326C14F5F5F4F6F4F7F4FF3E0A33104
:10FBE000BF0791F72FEF321A420A520A211440EF51
:10FBF000340641E04406510409F082CF18CE8981D1
:10FC0000811104C0F3E0CF2ED12C75CF8C8583FDFC
:10FC100013C00FA118A59E012F5F3F4FD801A80167
:10FC2000455F5F4FA417B50709F463C0F9016191FF
:10FC30009F019D916917B1F30DA11EA10F5F1F4F89
:10FC400009F389A99AA9ABA9BCA90097A105B10597
:10FC5000C9F298012F703327232BD9F480903D03EC
:10FC600090903E030196A11DB11D89AB9AABABAB41
:10FC7000BCAB6DA57EA58FA598A9F4016115710592
:10FC80008105910549F4848195810817190708F0C9
:10FC9000B9CF1EA30DA316CF228130E0A901415098
:10FCA00051099801E4E036952795EA95E1F7242378
:10FCB0003523232B71F70E94FEF96230710581050F
:10FCC000910508F415CFF4012681378140855185CF
:10FCD000621773078407950708F094CF6DA77EA776
:10FCE0008FA798AB0E94E1F869AB7AAB8BAB9CAB6A
:10FCF000D0CFF80193858071911117C009F482CF9C
:10FD00008D899E89A0E0B0E0DC01992788272B8DA2
:10FD10003C8DA90160E070E0842B952BA62BB72BBE
:10FD200089A79AA7ABA7BCA798CE81116BCF8D8965
:10FD30009E89A0E0B0E0DC01992788272B8D3C8DBF
:10FD4000A90160E070E0842B952BA62BB72BF7015F
:10FD5000868F978FA0A3B1A38D8D9E8DAF8DB8A1F7
:10FD6000828F938FA48FB58F168A178A108E118E6B
:10FD700081E08183C0CE45E0C42ED12CBCCEF701FA
:10FD800062A173A184A195A10E94FEF911CF62A383
:10FD900073A384A395A3F70162A173A184A195A184
:10FDA0000E94E1F8611571058105910511F4F701D3
:10FDB00006CF610F711D811D911DF70166A377A309
:10FDC00080A791A7F701268937893170A12C92E08D
:10FDD000B92EA21AB30ACA14DB0408F45601F701BB
:10FDE00046A157A160A571A58501C4010E9482F9B1
:10FDF000F701892B09F0E3CE86899789A08DB18D13
:10FE00008A0D9B1DA11DB11D868B978BA08FB18F75
:10FE10008A0C9B1CCA18DB08A2CEFC01099510CDE8
:10FE2000C201B1010E949BF843E152E0C201B1015D
:10FE30000E94AAF8D7CE153709F0DECB8EE10E94DA
:10FE4000DAF887E90E94DAF886E092CB143709F0F5
:10FE5000B8CBE12CF12C43CC883009F025CE3BE027
:10FE60001DCE84E0E82EF12C6BCBDC0101C06D933C
:10FE700041505040E0F70895F999FECF92BD81BD01
:10FE8000F89A992780B50895262FF999FECF1FBAC1
:10FE900092BD81BD20BD0FB6F894FA9AF99A0FBEB3
:10FEA00001960895A1E21A2EAA1BBB1BFD010DC0ED
:10FEB000AA1FBB1FEE1FFF1FA217B307E407F5071A
:10FEC00020F0A21BB30BE40BF50B661F771F881FF6
:10FED000991F1A9469F760957095809590959B018C
:10FEE000AC01BD01CF0108950E94B6FFA59F900D02
:10FEF000B49F900DA49F800D911D112408952F9201
:10FF00003F924F925F926F927F928F929F92AF92A9
:10FF1000BF92CF92DF92EF92FF920F931F93CF93F6
:10FF2000DF93CDB7DEB7CA1BDB0B0FB6F894DEBF8D
:10FF30000FBECDBF09942A88398848885F846E84B3
:10FF40007D848C849B84AA84B984C884DF80EE80FD
:10FF5000FD800C811B81AA81B981CE0FD11D0FB606
:10FF6000F894DEBF0FBECDBFED010895A29FB00192
:10FF7000B39FC001A39F700D811D1124911DB29FDD
:0EFF8000700D811D1124911D0895F894FFCF7E
:0EFF8E004649524D574152452E42494E000001
:040000031000F000F9
:00000001FF
Loading