初始版本
This commit is contained in:
268
components/softdevice/mbr/headers/nrf_mbr.h
Normal file
268
components/softdevice/mbr/headers/nrf_mbr.h
Normal file
@@ -0,0 +1,268 @@
|
||||
/*
|
||||
* Copyright (c) 2014 - 2017, Nordic Semiconductor ASA
|
||||
* 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, except as embedded into a Nordic
|
||||
* Semiconductor ASA integrated circuit in a product or a software update for
|
||||
* such product, 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. Neither the name of Nordic Semiconductor ASA nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
*
|
||||
* 4. This software, with or without modification, must only be used with a
|
||||
* Nordic Semiconductor ASA integrated circuit.
|
||||
*
|
||||
* 5. Any software provided in binary form under this license must not be reverse
|
||||
* engineered, decompiled, modified and/or disassembled.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA 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.
|
||||
*/
|
||||
|
||||
/**
|
||||
@defgroup nrf_mbr_api Master Boot Record API
|
||||
@{
|
||||
|
||||
@brief APIs for updating SoftDevice and BootLoader
|
||||
|
||||
*/
|
||||
|
||||
#ifndef NRF_MBR_H__
|
||||
#define NRF_MBR_H__
|
||||
|
||||
#include "nrf_svc.h"
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** @addtogroup NRF_MBR_DEFINES Defines
|
||||
* @{ */
|
||||
|
||||
/**@brief MBR SVC Base number. */
|
||||
#define MBR_SVC_BASE (0x18)
|
||||
|
||||
/**@brief Page size in words. */
|
||||
#define MBR_PAGE_SIZE_IN_WORDS (1024)
|
||||
|
||||
/** @brief The size that must be reserved for the MBR when a SoftDevice is written to flash.
|
||||
This is the offset where the first byte of the SoftDevice hex file is written. */
|
||||
#define MBR_SIZE (0x1000)
|
||||
|
||||
/** @brief Location (in the flash memory) of the bootloader address. */
|
||||
#define MBR_BOOTLOADER_ADDR (0xFF8)
|
||||
|
||||
/** @brief Location (in UICR) of the bootloader address. */
|
||||
#define MBR_UICR_BOOTLOADER_ADDR (&(NRF_UICR->NRFFW[0]))
|
||||
|
||||
/** @brief Location (in the flash memory) of the address of the MBR parameter page. */
|
||||
#define MBR_PARAM_PAGE_ADDR (0xFFC)
|
||||
|
||||
/** @brief Location (in UICR) of the address of the MBR parameter page. */
|
||||
#define MBR_UICR_PARAM_PAGE_ADDR (&(NRF_UICR->NRFFW[1]))
|
||||
|
||||
|
||||
/** @} */
|
||||
|
||||
/** @addtogroup NRF_MBR_ENUMS Enumerations
|
||||
* @{ */
|
||||
|
||||
/**@brief nRF Master Boot Record API SVC numbers. */
|
||||
enum NRF_MBR_SVCS
|
||||
{
|
||||
SD_MBR_COMMAND = MBR_SVC_BASE, /**< ::sd_mbr_command */
|
||||
};
|
||||
|
||||
/**@brief Possible values for ::sd_mbr_command_t.command */
|
||||
enum NRF_MBR_COMMANDS
|
||||
{
|
||||
SD_MBR_COMMAND_COPY_BL, /**< Copy a new BootLoader. @see ::sd_mbr_command_copy_bl_t*/
|
||||
SD_MBR_COMMAND_COPY_SD, /**< Copy a new SoftDevice. @see ::sd_mbr_command_copy_sd_t*/
|
||||
SD_MBR_COMMAND_INIT_SD, /**< Initialize forwarding interrupts to SD, and run reset function in SD. Does not require any parameters in ::sd_mbr_command_t params.*/
|
||||
SD_MBR_COMMAND_COMPARE, /**< This command works like memcmp. @see ::sd_mbr_command_compare_t*/
|
||||
SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET, /**< Change the address the MBR starts after a reset. @see ::sd_mbr_command_vector_table_base_set_t*/
|
||||
SD_MBR_COMMAND_RESERVED,
|
||||
SD_MBR_COMMAND_IRQ_FORWARD_ADDRESS_SET, /**< Start forwarding all interrupts to this address. @see ::sd_mbr_command_irq_forward_address_set_t*/
|
||||
};
|
||||
|
||||
/** @} */
|
||||
|
||||
/** @addtogroup NRF_MBR_TYPES Types
|
||||
* @{ */
|
||||
|
||||
/**@brief This command copies part of a new SoftDevice
|
||||
*
|
||||
* The destination area is erased before copying.
|
||||
* If dst is in the middle of a flash page, that whole flash page will be erased.
|
||||
* If (dst+len) is in the middle of a flash page, that whole flash page will be erased.
|
||||
*
|
||||
* The user of this function is responsible for setting the BPROT registers.
|
||||
*
|
||||
* @retval ::NRF_SUCCESS indicates that the contents of the memory blocks where copied correctly.
|
||||
* @retval ::NRF_ERROR_INTERNAL indicates that the contents of the memory blocks where not verified correctly after copying.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t *src; /**< Pointer to the source of data to be copied.*/
|
||||
uint32_t *dst; /**< Pointer to the destination where the content is to be copied.*/
|
||||
uint32_t len; /**< Number of 32 bit words to copy. Must be a multiple of @ref MBR_PAGE_SIZE_IN_WORDS words.*/
|
||||
} sd_mbr_command_copy_sd_t;
|
||||
|
||||
|
||||
/**@brief This command works like memcmp, but takes the length in words.
|
||||
*
|
||||
* @retval ::NRF_SUCCESS indicates that the contents of both memory blocks are equal.
|
||||
* @retval ::NRF_ERROR_NULL indicates that the contents of the memory blocks are not equal.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t *ptr1; /**< Pointer to block of memory. */
|
||||
uint32_t *ptr2; /**< Pointer to block of memory. */
|
||||
uint32_t len; /**< Number of 32 bit words to compare.*/
|
||||
} sd_mbr_command_compare_t;
|
||||
|
||||
|
||||
/**@brief This command copies a new BootLoader.
|
||||
*
|
||||
* The MBR assumes that either @ref MBR_BOOTLOADER_ADDR or @ref MBR_UICR_BOOTLOADER_ADDR is set to
|
||||
* the address where the bootloader will be copied. If both addresses are set, the MBR will prioritize
|
||||
* @ref MBR_BOOTLOADER_ADDR.
|
||||
*
|
||||
* The bootloader destination is erased by this function.
|
||||
* If (destination+bl_len) is in the middle of a flash page, that whole flash page will be erased.
|
||||
*
|
||||
* This command requires that @ref MBR_PARAM_PAGE_ADDR or @ref MBR_UICR_PARAM_PAGE_ADDR is set,
|
||||
* see @ref sd_mbr_command.
|
||||
*
|
||||
* This command will use the flash protect peripheral (BPROT or ACL) to protect the flash that is
|
||||
* not intended to be written.
|
||||
*
|
||||
* On success, this function will not return. It will start the new bootloader from reset-vector as normal.
|
||||
*
|
||||
* @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen.
|
||||
* @retval ::NRF_ERROR_FORBIDDEN if the bootloader address is not set.
|
||||
* @retval ::NRF_ERROR_INVALID_LENGTH if parameters attempts to read or write outside flash area.
|
||||
* @retval ::NRF_ERROR_NO_MEM No MBR parameter page is provided. See @ref sd_mbr_command.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t *bl_src; /**< Pointer to the source of the bootloader to be be copied.*/
|
||||
uint32_t bl_len; /**< Number of 32 bit words to copy for BootLoader. */
|
||||
} sd_mbr_command_copy_bl_t;
|
||||
|
||||
/**@brief Change the address the MBR starts after a reset
|
||||
*
|
||||
* Once this function has been called, this address is where the MBR will start to forward
|
||||
* interrupts to after a reset.
|
||||
*
|
||||
* To restore default forwarding, this function should be called with @ref address set to 0. If a
|
||||
* bootloader is present, interrupts will be forwarded to the bootloader. If not, interrupts will
|
||||
* be forwarded to the SoftDevice.
|
||||
*
|
||||
* The location of a bootloader can be specified in @ref MBR_BOOTLOADER_ADDR or
|
||||
* @ref MBR_UICR_BOOTLOADER_ADDR. If both addresses are set, the MBR will prioritize
|
||||
* @ref MBR_BOOTLOADER_ADDR.
|
||||
*
|
||||
* This command requires that @ref MBR_PARAM_PAGE_ADDR or @ref MBR_UICR_PARAM_PAGE_ADDR is set,
|
||||
* see @ref sd_mbr_command.
|
||||
*
|
||||
* On success, this function will not return. It will reset the device.
|
||||
*
|
||||
* @retval ::NRF_ERROR_INTERNAL indicates an internal error that should not happen.
|
||||
* @retval ::NRF_ERROR_INVALID_ADDR if parameter address is outside of the flash size.
|
||||
* @retval ::NRF_ERROR_NO_MEM No MBR parameter page is provided. See @ref sd_mbr_command.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/
|
||||
} sd_mbr_command_vector_table_base_set_t;
|
||||
|
||||
/**@brief Sets the base address of the interrupt vector table for interrupts forwarded from the MBR
|
||||
*
|
||||
* Unlike sd_mbr_command_vector_table_base_set_t, this function does not reset, and it does not
|
||||
* change where the MBR starts after reset.
|
||||
*
|
||||
* @retval ::NRF_SUCCESS
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t address; /**< The base address of the interrupt vector table for forwarded interrupts.*/
|
||||
} sd_mbr_command_irq_forward_address_set_t;
|
||||
|
||||
/**@brief Input structure containing data used when calling ::sd_mbr_command
|
||||
*
|
||||
* Depending on what command value that is set, the corresponding params value type must also be
|
||||
* set. See @ref NRF_MBR_COMMANDS for command types and corresponding params value type. If command
|
||||
* @ref SD_MBR_COMMAND_INIT_SD is set, it is not necessary to set any values under params.
|
||||
*/
|
||||
typedef struct
|
||||
{
|
||||
uint32_t command; /**< Type of command to be issued. See @ref NRF_MBR_COMMANDS. */
|
||||
union
|
||||
{
|
||||
sd_mbr_command_copy_sd_t copy_sd; /**< Parameters for copy SoftDevice.*/
|
||||
sd_mbr_command_compare_t compare; /**< Parameters for verify.*/
|
||||
sd_mbr_command_copy_bl_t copy_bl; /**< Parameters for copy BootLoader. Requires parameter page. */
|
||||
sd_mbr_command_vector_table_base_set_t base_set; /**< Parameters for vector table base set. Requires parameter page.*/
|
||||
sd_mbr_command_irq_forward_address_set_t irq_forward_address_set; /**< Parameters for irq forward address set*/
|
||||
} params; /**< Command parameters. */
|
||||
} sd_mbr_command_t;
|
||||
|
||||
/** @} */
|
||||
|
||||
/** @addtogroup NRF_MBR_FUNCTIONS Functions
|
||||
* @{ */
|
||||
|
||||
/**@brief Issue Master Boot Record commands
|
||||
*
|
||||
* Commands used when updating a SoftDevice and bootloader.
|
||||
*
|
||||
* The @ref SD_MBR_COMMAND_COPY_BL and @ref SD_MBR_COMMAND_VECTOR_TABLE_BASE_SET requires
|
||||
* parameters to be retained by the MBR when resetting the IC. This is done in a separate flash
|
||||
* page. The location of the flash page should be provided by the application in either
|
||||
* @ref MBR_PARAM_PAGE_ADDR or @ref MBR_UICR_PARAM_PAGE_ADDR. If both addresses are set, the MBR
|
||||
* will prioritize @ref MBR_PARAM_PAGE_ADDR. This page will be cleared by the MBR and is used to
|
||||
* store the command before reset. When an address is specified, the page it refers to must not be
|
||||
* used by the application. If no address is provided by the application, i.e. both
|
||||
* @ref MBR_PARAM_PAGE_ADDR and @ref MBR_UICR_PARAM_PAGE_ADDR is 0xFFFFFFFF, MBR commands which use
|
||||
* flash will be unavailable and return @ref NRF_ERROR_NO_MEM.
|
||||
*
|
||||
* @param[in] param Pointer to a struct describing the command.
|
||||
*
|
||||
* @note For a complete set of return values, see ::sd_mbr_command_copy_sd_t,
|
||||
* ::sd_mbr_command_copy_bl_t, ::sd_mbr_command_compare_t,
|
||||
* ::sd_mbr_command_vector_table_base_set_t, ::sd_mbr_command_irq_forward_address_set_t
|
||||
*
|
||||
* @retval ::NRF_ERROR_NO_MEM No MBR parameter page provided
|
||||
* @retval ::NRF_ERROR_INVALID_PARAM if an invalid command is given.
|
||||
*/
|
||||
SVCALL(SD_MBR_COMMAND, uint32_t, sd_mbr_command(sd_mbr_command_t* param));
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // NRF_MBR_H__
|
||||
|
||||
/**
|
||||
@}
|
||||
*/
|
||||
100
components/softdevice/mbr/headers/nrf_svc.h
Normal file
100
components/softdevice/mbr/headers/nrf_svc.h
Normal file
@@ -0,0 +1,100 @@
|
||||
/*
|
||||
* Copyright (c) 2012 - 2019, Nordic Semiconductor ASA
|
||||
* 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, except as embedded into a Nordic
|
||||
* Semiconductor ASA integrated circuit in a product or a software update for
|
||||
* such product, 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. Neither the name of Nordic Semiconductor ASA nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from this
|
||||
* software without specific prior written permission.
|
||||
*
|
||||
* 4. This software, with or without modification, must only be used with a
|
||||
* Nordic Semiconductor ASA integrated circuit.
|
||||
*
|
||||
* 5. Any software provided in binary form under this license must not be reverse
|
||||
* engineered, decompiled, modified and/or disassembled.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
||||
* OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
* OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA 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 NRF_SVC__
|
||||
#define NRF_SVC__
|
||||
|
||||
#include "stdint.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/** @brief Supervisor call declaration.
|
||||
*
|
||||
* A call to a function marked with @ref SVCALL, will trigger a Supervisor Call (SVC) Exception.
|
||||
* The SVCs with SVC numbers 0x00-0x0F are forwared to the application. All other SVCs are handled by the SoftDevice.
|
||||
*
|
||||
* @param[in] number The SVC number to be used.
|
||||
* @param[in] return_type The return type of the SVC function.
|
||||
* @param[in] signature Function signature. The function can have at most four arguments.
|
||||
*/
|
||||
|
||||
#ifdef SVCALL_AS_NORMAL_FUNCTION
|
||||
#define SVCALL(number, return_type, signature) return_type signature
|
||||
#else
|
||||
|
||||
#ifndef SVCALL
|
||||
#if defined (__CC_ARM)
|
||||
#define SVCALL(number, return_type, signature) return_type __svc(number) signature
|
||||
#elif defined (__GNUC__)
|
||||
#ifdef __cplusplus
|
||||
#define GCC_CAST_CPP (uint16_t)
|
||||
#else
|
||||
#define GCC_CAST_CPP
|
||||
#endif
|
||||
#define SVCALL(number, return_type, signature) \
|
||||
_Pragma("GCC diagnostic push") \
|
||||
_Pragma("GCC diagnostic ignored \"-Wreturn-type\"") \
|
||||
__attribute__((naked)) \
|
||||
__attribute__((unused)) \
|
||||
static return_type signature \
|
||||
{ \
|
||||
__asm( \
|
||||
"svc %0\n" \
|
||||
"bx r14" : : "I" (GCC_CAST_CPP number) : "r0" \
|
||||
); \
|
||||
} \
|
||||
_Pragma("GCC diagnostic pop")
|
||||
|
||||
#elif defined (__ICCARM__)
|
||||
#define PRAGMA(x) _Pragma(#x)
|
||||
#define SVCALL(number, return_type, signature) \
|
||||
PRAGMA(swi_number = (number)) \
|
||||
__swi return_type signature;
|
||||
#else
|
||||
#define SVCALL(number, return_type, signature) return_type signature
|
||||
#endif
|
||||
#endif // SVCALL
|
||||
|
||||
#endif // SVCALL_AS_NORMAL_FUNCTION
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif // NRF_SVC__
|
||||
@@ -0,0 +1,35 @@
|
||||
Copyright (c) 2007 - 2020, Nordic Semiconductor ASA
|
||||
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, except as embedded into a Nordic
|
||||
Semiconductor ASA integrated circuit in a product or a software update for
|
||||
such product, 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. Neither the name of Nordic Semiconductor ASA nor the names of its
|
||||
contributors may be used to endorse or promote products derived from this
|
||||
software without specific prior written permission.
|
||||
|
||||
4. This software, with or without modification, must only be used with a
|
||||
Nordic Semiconductor ASA integrated circuit.
|
||||
|
||||
5. Any software provided in binary form under this license must not be reverse
|
||||
engineered, decompiled, modified and/or disassembled.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY NORDIC SEMICONDUCTOR ASA "AS IS" AND ANY EXPRESS
|
||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY, NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL NORDIC SEMICONDUCTOR ASA 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.
|
||||
179
components/softdevice/mbr/hex/mbr_nrf52_2.4.1_mbr.hex
Normal file
179
components/softdevice/mbr/hex/mbr_nrf52_2.4.1_mbr.hex
Normal file
@@ -0,0 +1,179 @@
|
||||
:020000040000FA
|
||||
:1000000000040020810A000015070000610A0000BA
|
||||
:100010001F07000029070000330700000000000050
|
||||
:10002000000000000000000000000000A50A000021
|
||||
:100030003D070000000000004707000051070000D6
|
||||
:100040005B070000650700006F07000079070000EC
|
||||
:10005000830700008D07000097070000A10700003C
|
||||
:10006000AB070000B5070000BF070000C90700008C
|
||||
:10007000D3070000DD070000E7070000F1070000DC
|
||||
:10008000FB070000050800000F0800001908000029
|
||||
:10009000230800002D080000370800004108000078
|
||||
:1000A0004B080000550800005F08000069080000C8
|
||||
:1000B000730800007D080000870800009108000018
|
||||
:1000C0009B080000A5080000AF080000B908000068
|
||||
:1000D000C3080000CD080000D7080000E1080000B8
|
||||
:1000E000EB080000F5080000FF0800000909000007
|
||||
:1000F000130900001D090000270900003109000054
|
||||
:100100003B0900001FB500F003F88DE80F001FBD8C
|
||||
:1001100000F0ACBC40F6FC7108684FF01022401CA7
|
||||
:1001200008D00868401C09D00868401C04D0086842
|
||||
:1001300000F037BA9069F5E79069F9E7704770B554
|
||||
:100140000B46010B184400F6FF70040B4FF0805073
|
||||
:100150000022090303692403406943431D1B104621
|
||||
:1001600000F048FA29462046BDE8704000F042BA47
|
||||
:10017000F0B54FF6FF734FF4B4751A466E1E11E0DA
|
||||
:10018000A94201D3344600E00C46091B30F8027B3B
|
||||
:10019000641E3B441A44F9D19CB204EB134394B25D
|
||||
:1001A00004EB12420029EBD198B200EB134002EBB2
|
||||
:1001B000124140EA0140F0BDF34992B00446D1E952
|
||||
:1001C0000001CDE91001FF224021684600F0F4FB58
|
||||
:1001D00094E80F008DE80F00684610A902E004C8FB
|
||||
:1001E00041F8042D8842FAD110216846FFF7C0FF7C
|
||||
:1001F0001090AA208DF8440000F099F9FFF78AFFCB
|
||||
:1002000040F6FC7420684FF01025401C0FD0206889
|
||||
:1002100010226946803000F078F92068401C08D030
|
||||
:100220002068082210A900F070F900F061F9A869AF
|
||||
:10023000EEE7A869F5E74FF080500369406940F6A2
|
||||
:10024000FC71434308684FF01022401C06D0086838
|
||||
:1002500000F58050834203D2092070479069F7E788
|
||||
:100260000868401C04D00868401C03D00020704778
|
||||
:100270009069F9E70420704770B504460068C34DE3
|
||||
:10028000072876D2DFE800F033041929631E250021
|
||||
:10029000D4E9026564682946304600F062F92A46CE
|
||||
:1002A0002146304600F031F9AA002146304600F0E0
|
||||
:1002B00057FB002800D0032070BD00F009FC4FF46C
|
||||
:1002C000805007E0201D00F040F90028F4D100F034
|
||||
:1002D000FFFB60682860002070BD241D94E80700C3
|
||||
:1002E000920000F03DFB0028F6D00E2070BDFFF715
|
||||
:1002F000A2FF0028FAD1D4E901034FF0805100EBAE
|
||||
:10030000830208694D69684382420ED840F6F8704E
|
||||
:1003100005684FF010226D1C09D0056805EB8305B8
|
||||
:100320000B6949694B439D4203D9092070BD55694A
|
||||
:10033000F4E70168491C03D00068401C02D003E0C8
|
||||
:100340005069FAE70F2070BD2046FFF735FFFFF731
|
||||
:1003500072FF0028F7D1201D00F0F7F80028F2D135
|
||||
:1003600060680028F0D100F0E2F8FFF7D3FE00F05B
|
||||
:10037000BFF8072070BD10B50C46182802D0012028
|
||||
:10038000086010BD2068FFF777FF206010BD41684E
|
||||
:10039000054609B1012700E0002740F6F8742068FF
|
||||
:1003A0004FF01026401C2BD02068AA68920000F065
|
||||
:1003B000D7FA38B3A86881002068401C27D020688D
|
||||
:1003C000FFF7BDFED7B12068401C22D026684FF051
|
||||
:1003D0008050AC686D68016942695143A9420DD9EA
|
||||
:1003E000016940694143A14208D92146304600F0E5
|
||||
:1003F000B8F822462946304600F087F800F078F831
|
||||
:100400007069D2E700F093F8FFF784FEF6E77069B1
|
||||
:10041000D6E77669DBE740F6FC7420684FF01026DB
|
||||
:10042000401C23D02068401C0CD02068401C1FD0EA
|
||||
:100430002568206805F18005401C1BD027683879A5
|
||||
:10044000AA2819D040F6F8700168491C42D001680A
|
||||
:10045000491C45D00168491C3ED001680968491C07
|
||||
:100460003ED00168491C39D000683EE0B069DAE747
|
||||
:10047000B569DEE7B769E2E710212846FFF778FEA5
|
||||
:100480003968814222D12068401C05D0D4F8001080
|
||||
:1004900001F18002C03107E0B169F9E730B108CA63
|
||||
:1004A00051F8040D984201D1012000E000208A4259
|
||||
:1004B000F4D158B1286810B1042803D0FEE72846CB
|
||||
:1004C000FFF765FF3149686808600EE0FFF722FE1C
|
||||
:1004D00000F00EF87169BBE77169BFE7706904E06D
|
||||
:1004E0004FF480500168491C01D000F0CBFAFEE7C0
|
||||
:1004F000BFF34F8F26480168264A01F4E06111439B
|
||||
:100500000160BFF34F8F00BFFDE72DE9F0411746B3
|
||||
:100510000D460646002406E03046296800F054F8EF
|
||||
:10052000641C2D1D361DBC42F6D3BDE8F08140F69B
|
||||
:10053000FC700168491C04D0D0F800004FF48051D1
|
||||
:10054000FDE54FF010208069F8E74FF080510A690F
|
||||
:10055000496900684A43824201D810207047002050
|
||||
:10056000704770B50C4605464FF4806608E0284693
|
||||
:1005700000F017F8B44205D3A4F5806405F5805562
|
||||
:10058000002CF4D170BD0000F40A0000000000202F
|
||||
:100590000CED00E00400FA05144801680029FCD0C5
|
||||
:1005A0007047134A0221116010490B68002BFCD0E0
|
||||
:1005B0000F4B1B1D186008680028FCD0002010603D
|
||||
:1005C00008680028FCD07047094B10B501221A605A
|
||||
:1005D000064A1468002CFCD0016010680028FCD08A
|
||||
:1005E0000020186010680028FCD010BD00E4014015
|
||||
:1005F00004E5014070B50C46054600F073F810B9EB
|
||||
:1006000000F07EF828B121462846BDE8704000F091
|
||||
:1006100007B821462846BDE8704000F037B8000012
|
||||
:100620007FB5002200920192029203920A0B000B06
|
||||
:100630006946012302440AE0440900F01F0651F80C
|
||||
:10064000245003FA06F6354341F82450401C8242F8
|
||||
:10065000F2D80D490868009A10430860081D016827
|
||||
:10066000019A1143016000F03DF800280AD00649C4
|
||||
:1006700010310868029A10430860091D0868039A3F
|
||||
:10068000104308607FBD00000006004030B50F4CED
|
||||
:10069000002200BF04EB0213D3F800582DB9D3F8A1
|
||||
:1006A000045815B9D3F808581DB1521C082AF1D3C3
|
||||
:1006B00030BD082AFCD204EB0212C2F80008C3F8CD
|
||||
:1006C00004180220C3F8080830BD000000E0014013
|
||||
:1006D0004FF08050D0F83001082801D0002070473A
|
||||
:1006E000012070474FF08050D0F83011062905D016
|
||||
:1006F000D0F83001401C01D0002070470120704725
|
||||
:100700004FF08050D0F830010A2801D00020704707
|
||||
:100710000120704708208F490968095808471020B0
|
||||
:100720008C4909680958084714208A4909680958FA
|
||||
:100730000847182087490968095808473020854923
|
||||
:100740000968095808473820824909680958084744
|
||||
:100750003C20804909680958084740207D490968BC
|
||||
:100760000958084744207B49096809580847482028
|
||||
:1007700078490968095808474C207649096809589A
|
||||
:10078000084750207349096809580847542071499F
|
||||
:1007900009680958084758206E49096809580847E8
|
||||
:1007A0005C206C4909680958084760206949096854
|
||||
:1007B00009580847642067490968095808476820AC
|
||||
:1007C00064490968095808476C2062490968095852
|
||||
:1007D000084770205F4909680958084774205D4937
|
||||
:1007E00009680958084778205A490968095808478C
|
||||
:1007F0007C205849096809580847802055490968EC
|
||||
:10080000095808478420534909680958084788202F
|
||||
:1008100050490968095808478C204E490968095809
|
||||
:10082000084790204B4909680958084794204949CE
|
||||
:10083000096809580847982046490968095808472F
|
||||
:100840009C204449096809580847A0204149096883
|
||||
:1008500009580847A4203F49096809580847A820B3
|
||||
:100860003C49096809580847AC203A4909680958C1
|
||||
:100870000847B0203749096809580847B420354966
|
||||
:10088000096809580847B8203249096809580847D3
|
||||
:10089000BC203049096809580847C0202D4909681B
|
||||
:1008A00009580847C4202B49096809580847C82037
|
||||
:1008B0002849096809580847CC2026490968095879
|
||||
:1008C0000847D0202349096809580847D4202149FE
|
||||
:1008D000096809580847D8201E4909680958084777
|
||||
:1008E000DC201C49096809580847E02019490968B3
|
||||
:1008F00009580847E4201749096809580847E820BB
|
||||
:100900001449096809580847EC2012490968095830
|
||||
:100910000847F0200F49096809580847F4200D4995
|
||||
:10092000096809580847F8200A490968095808471A
|
||||
:10093000FC2008490968095808475FF48070054998
|
||||
:10094000096809580847000003480449024A034B54
|
||||
:100950007047000000000020000B0000000B0000AA
|
||||
:1009600040EA010310B59B070FD1042A0DD310C82C
|
||||
:1009700008C9121F9C42F8D020BA19BA884201D97E
|
||||
:10098000012010BD4FF0FF3010BD1AB1D30703D0C6
|
||||
:10099000521C07E0002010BD10F8013B11F8014B7C
|
||||
:1009A0001B1B07D110F8013B11F8014B1B1B01D198
|
||||
:1009B000921EF1D1184610BD02F0FF0343EA032254
|
||||
:1009C00042EA024200F005B87047704770474FF0A6
|
||||
:1009D00000020429C0F0128010F0030C00F01B800C
|
||||
:1009E000CCF1040CBCF1020F18BF00F8012BA8BF1A
|
||||
:1009F00020F8022BA1EB0C0100F00DB85FEAC17CDE
|
||||
:100A000024BF00F8012B00F8012B48BF00F8012B90
|
||||
:100A100070474FF0000200B51346944696462039C1
|
||||
:100A200022BFA0E80C50A0E80C50B1F12001BFF4A7
|
||||
:100A3000F7AF090728BFA0E80C5048BF0CC05DF80D
|
||||
:100A400004EB890028BF40F8042B08BF704748BF5B
|
||||
:100A500020F8022B11F0804F18BF00F8012B7047CF
|
||||
:100A6000014B1B68DB6818470000002009480A4951
|
||||
:100A70007047FFF7FBFFFFF745FB00BD20BFFDE719
|
||||
:100A8000064B1847064A1060016881F308884068E1
|
||||
:100A900000470000000B0000000B000017040000DE
|
||||
:100AA000000000201EF0040F0CBFEFF30881EFF3ED
|
||||
:100AB0000981886902380078182803D100E0000015
|
||||
:100AC000074A1047074A12682C3212681047000084
|
||||
:100AD00000B5054B1B68054A9B58984700BD0000B0
|
||||
:100AE0007703000000000020F00A0000040000006E
|
||||
:100AF000001000000000000000FFFFFF0090D00386
|
||||
:0400000500000A816C
|
||||
:00000001FF
|
||||
Reference in New Issue
Block a user